Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue

Forgot reply-all sending to ovirt-users as well. -DHC On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse <deadhorseconsulting@gmail.com>wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika <emesika@redhat.com> wrote:
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.conf /etc/pki/ovirt-engine/certs/01.pem /etc/pki/ovirt-engine/certs/02.pem /etc/pki/ovirt-engine/certs/ca.der /etc/pki/ovirt-engine/certs/engine.cer /etc/pki/ovirt-engine/certs/engine.der /etc/pki/ovirt-engine/database.txt /etc/pki/ovirt-engine/database.txt.attr /etc/pki/ovirt-engine/database.txt.attr.old /etc/pki/ovirt-engine/database.txt.old /etc/pki/ovirt-engine/keys/engine_id_rsa /etc/pki/ovirt-engine/keys/engine.ssh.key.txt /etc/pki/ovirt-engine/private/ca.pem /etc/pki/ovirt-engine/requests/ca.csr /etc/pki/ovirt-engine/requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_table.sql psql:upgrade/03_01_0260_add_job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_at,ended_at,state,current,comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.conf /etc/pki/ovirt-engine/certs/01.pem /etc/pki/ovirt-engine/certs/02.pem /etc/pki/ovirt-engine/certs/ca.der /etc/pki/ovirt-engine/certs/engine.cer /etc/pki/ovirt-engine/certs/engine.der /etc/pki/ovirt-engine/database.txt /etc/pki/ovirt-engine/database.txt.attr /etc/pki/ovirt-engine/database.txt.attr.old /etc/pki/ovirt-engine/database.txt.old /etc/pki/ovirt-engine/keys/engine_id_rsa /etc/pki/ovirt-engine/keys/engine.ssh.key.txt /etc/pki/ovirt-engine/private/ca.pem /etc/pki/ovirt-engine/requests/ca.csr /etc/pki/ovirt-engine/requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine
Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting then , createdb will create the db & schema and your engine.sql will include only "insert" Eli
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_table.sql psql:upgrade/03_01_0260_add_job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_at,ended_at,state,current,comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Thursday, July 19, 2012 11:10:53 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.conf /etc/pki/ovirt-engine/certs/01.pem /etc/pki/ovirt-engine/certs/02.pem /etc/pki/ovirt-engine/certs/ca.der /etc/pki/ovirt-engine/certs/engine.cer /etc/pki/ovirt-engine/certs/engine.der /etc/pki/ovirt-engine/database.txt /etc/pki/ovirt-engine/database.txt.attr /etc/pki/ovirt-engine/database.txt.attr.old /etc/pki/ovirt-engine/database.txt.old /etc/pki/ovirt-engine/keys/engine_id_rsa /etc/pki/ovirt-engine/keys/engine.ssh.key.txt /etc/pki/ovirt-engine/private/ca.pem /etc/pki/ovirt-engine/requests/ca.csr /etc/pki/ovirt-engine/requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine
Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
Another important thing, after you complete those steps please run upgrade_db.sh -u postgres -d engine The script is under the dbscripts directory This is mandatory in order to install 3.1 upgrade scripts
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_table.sql psql:upgrade/03_01_0260_add_job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_at,ended_at,state,current,comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.conf /etc/pki/ovirt-engine/certs/01.pem /etc/pki/ovirt-engine/certs/02.pem /etc/pki/ovirt-engine/certs/ca.der /etc/pki/ovirt-engine/certs/engine.cer /etc/pki/ovirt-engine/certs/engine.der /etc/pki/ovirt-engine/database.txt /etc/pki/ovirt-engine/database.txt.attr /etc/pki/ovirt-engine/database.txt.attr.old /etc/pki/ovirt-engine/database.txt.old /etc/pki/ovirt-engine/keys/engine_id_rsa /etc/pki/ovirt-engine/keys/engine.ssh.key.txt /etc/pki/ovirt-engine/private/ca.pem /etc/pki/ovirt-engine/requests/ca.csr /etc/pki/ovirt-engine/requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do : echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli
I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme. Thanks Robert
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql" Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_table.sql psql:upgrade/03_01_0260_add_job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_at,ended_at,state,current,comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine. I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database Similarly I am using "/bin/dropdb" to destroy/delete the engine database. Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh". - DHC On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net> wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com**> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/**stable/fedora/16/<http://www.ovirt.org/releases/stable/fedora/16/> Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.**conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.**conf /etc/pki/ovirt-engine/certs/**01.pem /etc/pki/ovirt-engine/certs/**02.pem /etc/pki/ovirt-engine/certs/**ca.der /etc/pki/ovirt-engine/certs/**engine.cer /etc/pki/ovirt-engine/certs/**engine.der /etc/pki/ovirt-engine/**database.txt /etc/pki/ovirt-engine/**database.txt.attr /etc/pki/ovirt-engine/**database.txt.attr.old /etc/pki/ovirt-engine/**database.txt.old /etc/pki/ovirt-engine/keys/**engine_id_rsa /etc/pki/ovirt-engine/keys/**engine.ssh.key.txt /etc/pki/ovirt-engine/private/**ca.pem /etc/pki/ovirt-engine/**requests/ca.csr /etc/pki/ovirt-engine/**requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/**beta/fedora/17/<http://www.ovirt.org/releases/beta/fedora/17/>
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine
Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1
Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli
I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database:
psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via
/usr/share/ovirt-engine/**dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_**table.sql psql:upgrade/03_01_0260_add_**job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_**at,ended_at,state,current,**comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>

If it helps here is the contents of "upgrade.sh.log": ********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) ); insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if; END; $procedure$ LANGUAGE plpgsql; ************************** CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); ************************** ********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); ************************** DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN -- Add the job table. CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS; END IF; END; $function$ LANGUAGE plpgsql; ************************** CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); ************************** ********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); ************************** DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); ************************** ********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) ); insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if; END; $procedure$ LANGUAGE plpgsql; ************************** CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); ************************** ********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); ************************** DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN -- Add the job table. CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS; END IF; END; $function$ LANGUAGE plpgsql; ************************** CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); ************************** ********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); ************************** DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); ************************** On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse <deadhorseconsulting@gmail.com>wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net> wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com**> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/**stable/fedora/16/<http://www.ovirt.org/releases/stable/fedora/16/> Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.**conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.**conf /etc/pki/ovirt-engine/certs/**01.pem /etc/pki/ovirt-engine/certs/**02.pem /etc/pki/ovirt-engine/certs/**ca.der /etc/pki/ovirt-engine/certs/**engine.cer /etc/pki/ovirt-engine/certs/**engine.der /etc/pki/ovirt-engine/**database.txt /etc/pki/ovirt-engine/**database.txt.attr /etc/pki/ovirt-engine/**database.txt.attr.old /etc/pki/ovirt-engine/**database.txt.old /etc/pki/ovirt-engine/keys/**engine_id_rsa /etc/pki/ovirt-engine/keys/**engine.ssh.key.txt /etc/pki/ovirt-engine/private/**ca.pem /etc/pki/ovirt-engine/**requests/ca.csr /etc/pki/ovirt-engine/**requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/**beta/fedora/17/<http://www.ovirt.org/releases/beta/fedora/17/>
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine
Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1
Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli
I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database:
psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via
/usr/share/ovirt-engine/**dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_**table.sql psql:upgrade/03_01_0260_add_**job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_**at,ended_at,state,current,**comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>

Any thoughts here on this, should I file a bug? Per: http://wiki.ovirt.org/wiki/Second_Release Working upgrade is one of the release criteria. I will help in any way possible to get a 3.0 to 3.1 upgrade path working. - DHC On Thu, Jul 19, 2012 at 3:40 PM, Dead Horse <deadhorseconsulting@gmail.com>wrote:
If it helps here is the contents of "upgrade.sh.log":
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); **************************
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); **************************
On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse <deadhorseconsulting@gmail.com
wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net> wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com**> To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/**stable/fedora/16/<http://www.ovirt.org/releases/stable/fedora/16/> Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert.**conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert.**conf /etc/pki/ovirt-engine/certs/**01.pem /etc/pki/ovirt-engine/certs/**02.pem /etc/pki/ovirt-engine/certs/**ca.der /etc/pki/ovirt-engine/certs/**engine.cer /etc/pki/ovirt-engine/certs/**engine.der /etc/pki/ovirt-engine/**database.txt /etc/pki/ovirt-engine/**database.txt.attr /etc/pki/ovirt-engine/**database.txt.attr.old /etc/pki/ovirt-engine/**database.txt.old /etc/pki/ovirt-engine/keys/**engine_id_rsa /etc/pki/ovirt-engine/keys/**engine.ssh.key.txt /etc/pki/ovirt-engine/private/**ca.pem /etc/pki/ovirt-engine/**requests/ca.csr /etc/pki/ovirt-engine/**requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/**beta/fedora/17/<http://www.ovirt.org/releases/beta/fedora/17/>
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine
Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1
Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli
I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database:
psql -U postgres -d engine -w < "/temp/engine.sql"
Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via
/usr/share/ovirt-engine/**dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_**table.sql psql:upgrade/03_01_0260_add_**job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_**at,ended_at,state,current,**comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>
______________________________**_________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/**mailman/listinfo/users<http://lists.ovirt.org/mailman/listinfo/users>

----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: "Robert Middleswarth" <robert@middleswarth.net> Cc: "Eli Mesika" <emesika@redhat.com>, users@ovirt.org Sent: Friday, July 20, 2012 6:04:26 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Any thoughts here on this, should I file a bug? Per: http://wiki.ovirt.org/wiki/Second_Release Working upgrade is one of the release criteria. I will help in any way possible to get a 3.0 to 3.1 upgrade path working.
- DHC
On Thu, Jul 19, 2012 at 3:40 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
If it helps here is the contents of "upgrade.sh.log":
I had succeeded to simulate the problem, will update you ASAP. Thanks
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); **************************
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); **************************
On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net > wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/ stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert. conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert. conf /etc/pki/ovirt-engine/certs/ 01.pem /etc/pki/ovirt-engine/certs/ 02.pem /etc/pki/ovirt-engine/certs/ ca.der /etc/pki/ovirt-engine/certs/ engine.cer /etc/pki/ovirt-engine/certs/ engine.der /etc/pki/ovirt-engine/ database.txt /etc/pki/ovirt-engine/ database.txt.attr /etc/pki/ovirt-engine/ database.txt.attr.old /etc/pki/ovirt-engine/ database.txt.old /etc/pki/ovirt-engine/keys/ engine_id_rsa /etc/pki/ovirt-engine/keys/ engine.ssh.key.txt /etc/pki/ovirt-engine/private/ ca.pem /etc/pki/ovirt-engine/ requests/ca.csr /etc/pki/ovirt-engine/ requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/ beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql" Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/ dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_ table.sql psql:upgrade/03_01_0260_add_ job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_ at,ended_at,state,current, comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users

----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Sunday, July 22, 2012 10:46:48 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: "Robert Middleswarth" <robert@middleswarth.net> Cc: "Eli Mesika" <emesika@redhat.com>, users@ovirt.org Sent: Friday, July 20, 2012 6:04:26 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Any thoughts here on this, should I file a bug? Per: http://wiki.ovirt.org/wiki/Second_Release Working upgrade is one of the release criteria. I will help in any way possible to get a 3.0 to 3.1 upgrade path working.
- DHC
On Thu, Jul 19, 2012 at 3:40 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
If it helps here is the contents of "upgrade.sh.log":
I had succeeded to simulate the problem, will update you ASAP.
Hi again Problem was resolved 1) pre-upgrade scripts did not run because no md5 change was found in files after restore 2) pre-upgrade scripts did not run in the correct order after fixing 1) I will issue a patch upstream for that, please let me know if you want me to send you the patch before if you want to test it on your environment.
Thanks
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); **************************
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); **************************
On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net > wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com > wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/ stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert. conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert. conf /etc/pki/ovirt-engine/certs/ 01.pem /etc/pki/ovirt-engine/certs/ 02.pem /etc/pki/ovirt-engine/certs/ ca.der /etc/pki/ovirt-engine/certs/ engine.cer /etc/pki/ovirt-engine/certs/ engine.der /etc/pki/ovirt-engine/ database.txt /etc/pki/ovirt-engine/ database.txt.attr /etc/pki/ovirt-engine/ database.txt.attr.old /etc/pki/ovirt-engine/ database.txt.old /etc/pki/ovirt-engine/keys/ engine_id_rsa /etc/pki/ovirt-engine/keys/ engine.ssh.key.txt /etc/pki/ovirt-engine/private/ ca.pem /etc/pki/ovirt-engine/ requests/ca.csr /etc/pki/ovirt-engine/ requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/ beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql" Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/ dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_ table.sql psql:upgrade/03_01_0260_add_ job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_ at,ended_at,state,current, comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

------=_Part_107483_796891437.1342952672740 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit ----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Sunday, July 22, 2012 12:41:36 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Sunday, July 22, 2012 10:46:48 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: "Robert Middleswarth" <robert@middleswarth.net> Cc: "Eli Mesika" <emesika@redhat.com>, users@ovirt.org Sent: Friday, July 20, 2012 6:04:26 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Any thoughts here on this, should I file a bug? Per: http://wiki.ovirt.org/wiki/Second_Release Working upgrade is one of the release criteria. I will help in any way possible to get a 3.0 to 3.1 upgrade path working.
- DHC
On Thu, Jul 19, 2012 at 3:40 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
If it helps here is the contents of "upgrade.sh.log":
I had succeeded to simulate the problem, will update you ASAP.
Hi again Problem was resolved 1) pre-upgrade scripts did not run because no md5 change was found in files after restore 2) pre-upgrade scripts did not run in the correct order after fixing 1)
I will issue a patch upstream for that, please let me know if you want me to send you the patch before if you want to test it on your environment.
Opened BZ 842119 patch attached
Thanks
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); **************************
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); **************************
On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net > wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com
wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/ stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert. conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert. conf /etc/pki/ovirt-engine/certs/ 01.pem /etc/pki/ovirt-engine/certs/ 02.pem /etc/pki/ovirt-engine/certs/ ca.der /etc/pki/ovirt-engine/certs/ engine.cer /etc/pki/ovirt-engine/certs/ engine.der /etc/pki/ovirt-engine/ database.txt /etc/pki/ovirt-engine/ database.txt.attr /etc/pki/ovirt-engine/ database.txt.attr.old /etc/pki/ovirt-engine/ database.txt.old /etc/pki/ovirt-engine/keys/ engine_id_rsa /etc/pki/ovirt-engine/keys/ engine.ssh.key.txt /etc/pki/ovirt-engine/private/ ca.pem /etc/pki/ovirt-engine/ requests/ca.csr /etc/pki/ovirt-engine/ requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/ beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql" Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/ dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_ table.sql psql:upgrade/03_01_0260_add_ job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_ at,ended_at,state,current, comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
------=_Part_107483_796891437.1342952672740 Content-Type: text/x-patch; name=0001-core-pre-upgrade-scripts-will-not-run-.-842119.patch Content-Disposition: attachment; filename=0001-core-pre-upgrade-scripts-will-not-run-.-842119.patch Content-Transfer-Encoding: base64 RnJvbSA4YTk0NjA3NWVmNDQ5YzEyN2E1ZTk2MWI0OTY0ZDViYzBlMGI0NDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFbGkgTWVzaWthIDxlbWVzaWthQHJlZGhhdC5jb20+CkRhdGU6 IFN1biwgMjIgSnVsIDIwMTIgMTM6MDU6NDggKzAzMDAKU3ViamVjdDogW1BBVENIXSBjb3JlOnBy ZSB1cGdyYWRlIHNjcmlwdHMgd2lsbCBub3QgcnVuIC4uLigjODQyMTE5KQoKcHJlIHVwZ3JhZGUg c2NyaXB0cyB3aWxsIG5vdCBydW4gY29ycmVjdGx5IHVwb24gMy4wIERCIHJlc3RvcmUKCmh0dHBz Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9ODQyMTE5CgpSZXN0b3JlIGEg My4wIGRhdGFiYXNlIGFuZCBydW5uaW5nIHRoZSAzLjEgdXBncmFkZSBzY3JpcHRzIG9uIGl0IGlz IG5vdAp3b3JraW5nLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0gYnkgOgoxKSBmb3Jj ZSBwcmUtdXBncmFkZSBzY3JpcHRzIHRvIHJ1biBpZiBhbnkgdXBncmFkZSBmaWxlIGlzIGFib3V0 IHRvIHJ1bgosIHRoaXMgd2lsbCBiZSBkb25lIGV2ZW4gaWYgbm8gY2hhbmdlIHdhcyBkZXRlY3Rl ZCBpbiB2aWV3cywgc3AgJgp1cGdyYWRlIGZpbGVzIGFzIGl0IG1heSBvY2N1ciB3aGVuIHRoZSBk YXRhYmFzZSBpcyByZXN0b3JlZC4KCjIpIG1ha2UgcHJlLXVwZ3JhZGUgYW5kIHBvc3QgdXBncmFk ZSBzY3JpcHRzIG9yZGVyZWQgc2luY2UgdGhlCmNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIHNv bWUgZml4ZXMgaW4gdGhlIGN1c3RvbSBzcWwgZmlsZSBtdXN0IHJ1bgpmaXJzdC4gVGhpcyBpcyBk b25lIGJ5IHByZWZpeGluZyB0aGUgc2NyaXB0IG5hbWUgd2l0aCBhIDQgZGlnaXQgbnVtYmVyLgoo MDAwMCAwMDAxMCAwMDAyMCBldGMuKQoKQ2hhbmdlLUlkOiBJZTIzZmJhNjNjZWU4MWM1YTViM2Yx YWQ0MDc2ZDYyN2EwNjYxNGZjMApTaWduZWQtb2ZmLWJ5OiBFbGkgTWVzaWthIDxlbWVzaWthQHJl ZGhhdC5jb20+Ci0tLQogYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy9kYmZ1bmN0aW9ucy5zaCAg ICAgICAgICAgfCAgIDEyICstCiAuLi4vMDAxMF9hZGRfb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0 X3RhYmxlLnNxbCAgICB8ICAgNzIgKysrCiAuLi4vYWRkX29iamVjdF9jb2x1bW5fd2hpdGVfbGlz dF90YWJsZS5zcWwgICAgICAgICB8ICAgNzIgLS0tCiAuLi4vZGJzY3JpcHRzL3VwZ3JhZGUvcHJl X3VwZ3JhZGUvMDAwMF9jb25maWcuc3FsICB8ICA2MTkgKysrKysrKysrKysrKysrKysrKysKIC4u Li9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS8wMDEwX2N1c3RvbS5zcWwgIHwgICAxOSAr CiAuLi4vMDAyMF9hZGRfY29tbWVudF9jb2xfdG9fc2NoZW1hX3ZlcnNpb24uc3FsICAgICB8ICAg IDIgKwogLi4uL2FkZF9jb21tZW50X2NvbF90b19zY2hlbWFfdmVyc2lvbi5zcWwgICAgICAgICAg fCAgICAyIC0KIC4uLi9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS9jb25maWcuc3FsICAg ICAgIHwgIDYxOSAtLS0tLS0tLS0tLS0tLS0tLS0tLQogLi4uL2Ric2NyaXB0cy91cGdyYWRlL3By ZV91cGdyYWRlL2N1c3RvbS5zcWwgICAgICAgfCAgIDE5IC0KIDkgZmlsZXMgY2hhbmdlZCwgNzIx IGluc2VydGlvbnMoKyksIDcxNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBiYWNr ZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcG9zdF91cGdyYWRlLzAwMTBfYWRkX29iamVj dF9jb2x1bW5fd2hpdGVfbGlzdF90YWJsZS5zcWwKIGRlbGV0ZSBtb2RlIDEwMDY0NCBiYWNrZW5k L21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcG9zdF91cGdyYWRlL2FkZF9vYmplY3RfY29sdW1u X3doaXRlX2xpc3RfdGFibGUuc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgYmFja2VuZC9tYW5hZ2Vy L2Ric2NyaXB0cy91cGdyYWRlL3ByZV91cGdyYWRlLzAwMDBfY29uZmlnLnNxbAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGJhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS8w MDEwX2N1c3RvbS5zcWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBiYWNrZW5kL21hbmFnZXIvZGJzY3Jp cHRzL3VwZ3JhZGUvcHJlX3VwZ3JhZGUvMDAyMF9hZGRfY29tbWVudF9jb2xfdG9fc2NoZW1hX3Zl cnNpb24uc3FsCiBkZWxldGUgbW9kZSAxMDA2NDQgYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91 cGdyYWRlL3ByZV91cGdyYWRlL2FkZF9jb21tZW50X2NvbF90b19zY2hlbWFfdmVyc2lvbi5zcWwK IGRlbGV0ZSBtb2RlIDEwMDY0NCBiYWNrZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcHJl X3VwZ3JhZGUvY29uZmlnLnNxbAogZGVsZXRlIG1vZGUgMTAwNjQ0IGJhY2tlbmQvbWFuYWdlci9k YnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS9jdXN0b20uc3FsCgpkaWZmIC0tZ2l0IGEvYmFj a2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy9kYmZ1bmN0aW9ucy5zaCBiL2JhY2tlbmQvbWFuYWdlci9k YnNjcmlwdHMvZGJmdW5jdGlvbnMuc2gKaW5kZXggZmZlYjQwOS4uYTc2YjJlNCAxMDA3NTUKLS0t IGEvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy9kYmZ1bmN0aW9ucy5zaAorKysgYi9iYWNrZW5k L21hbmFnZXIvZGJzY3JpcHRzL2RiZnVuY3Rpb25zLnNoCkBAIC0xMzQsOSArMTM0LDkgQEAgcnVu X3Bvc3RfdXBncmFkZSgpIHsKICMgVGhlIHNlY29uZCBhcmd1bWVudCBpcyB0aGUgbGFiZWwgdG8g dXNlIHdoaWxlIG5vdGlmeWluZwogIyB0aGUgdXNlciBhYm91dCB0aGUgcnVubmluZyBvZiB0aGUg c2NyaXB0CiBleGVjdXRlX2NvbW1hbmRzX2luX2RpcigpIHsKLSAgICBmb3IgZmlsZSBpbiAkKGxz IC0xIHVwZ3JhZGUvJDEvKi5zcWwpOyBkbwotICAgICAgIGVjaG8gIlJ1bm5pbmcgJDIgc2NyaXB0 ICRmaWxlIC4uLiIKLSAgICAgICBleGVjdXRlX2ZpbGUgJGZpbGUgJHtEQVRBQkFTRX0gJHtTRVJW RVJOQU1FfSAke1BPUlR9ID4gL2Rldi9udWxsCisgICAgZm9yIHNxbGZpbGUgaW4gJChscyAtMSB1 cGdyYWRlLyQxLyouc3FsKTsgZG8KKyAgICAgICBlY2hvICJSdW5uaW5nICQyIHNjcmlwdCAkc3Fs ZmlsZSAuLi4iCisgICAgICAgZXhlY3V0ZV9maWxlICRzcWxmaWxlICR7REFUQUJBU0V9ICR7U0VS VkVSTkFNRX0gJHtQT1JUfSA+IC9kZXYvbnVsbAogICAgIGRvbmUKIH0KIApAQCAtMjQ4LDYgKzI0 OCwxMiBAQCBydW5fdXBncmFkZV9maWxlcygpIHsKICAgICAgICAgICAgICAgICAgICAgbGFzdD0k eHZlcgogICAgICAgICAgICAgICAgICAgICBjb21tZW50PSJJbnN0YWxsZWQgYWxyZWFkeSBieSAk e2luc3RhbGxlZF92ZXJzaW9ufSIKICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg ICAgICAgICMgZm9yY2UgcHJlIHVwZ3JhZGUgdG8gcnVuIGluIGNhc2Ugbm8gbWQ1IGNoYW5nZSB3 YXMgCisgICAgICAgICAgICAgICAgICAgICMgZm91bmQgYnV0IHdlIHN0aWxsIHVwZ3JhZGUsIGxp a2UgaW4gZGIgcmVzdG9yZS4KKyAgICAgICAgICAgICAgICAgICAgaWYgWyAkdXBkYXRlZCAtZXEg MCBdOyB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9wcmVfdXBncmFkZQorICAgICAg ICAgICAgICAgICAgICAgICB1cGRhdGVkPTEKKyAgICAgICAgICAgICAgICAgICAgZmkKICAgICAg ICAgICAgICAgICAgICAgZWNobyAiUnVubmluZyB1cGdyYWRlIHNjcmlwdCAkZmlsZSAiCiAgICAg ICAgICAgICAgICAgICAgIGV4ZWN1dGVfZmlsZSAkZmlsZSAke0RBVEFCQVNFfSAke1NFUlZFUk5B TUV9ICR7UE9SVH0gMSA+IC9kZXYvbnVsbAogICAgICAgICAgICAgICAgICAgICBjb2RlPSQ/CmRp ZmYgLS1naXQgYS9iYWNrZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcG9zdF91cGdyYWRl LzAwMTBfYWRkX29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF90YWJsZS5zcWwgYi9iYWNrZW5kL21h bmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcG9zdF91cGdyYWRlLzAwMTBfYWRkX29iamVjdF9jb2x1 bW5fd2hpdGVfbGlzdF90YWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNGUyNzdlMAotLS0gL2Rldi9udWxsCisrKyBiL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMv dXBncmFkZS9wb3N0X3VwZ3JhZGUvMDAxMF9hZGRfb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0X3Rh YmxlLnNxbApAQCAtMCwwICsxLDcyIEBACistLSBhZGRpbmcgYSB0YWJsZSBuYW1lZCBvYmplY3Rf Y29sdW1uX3doaXRlX2xpc3QgdGhhdCBkZWZpbmVkIGRpc3BsYXllZCBjb2x1bW5zIHBlciBvYmpl Y3QgKHRhYmxlIG9yIHZpZXcpCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBfX3RlbXBfYWRk X29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF90YWJsZSgpCitSRVRVUk5TIHZvaWQKK0FTICRmdW5j dGlvbiQKK0JFR0lOCisKKyAgIC0tIFRoaXMgdGFibGUgaG9sZHMgdGhlIGNvbHVtbiB3aGl0ZSBs aXN0IHBlciBvYmplY3QKKyAgIElGIE5PVCBFWElTVFMgKFNFTEVDVCAqIEZST00gcGdfdGFibGVz IFdIRVJFIHRhYmxlbmFtZSBJTElLRSAnb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0JykgVEhFTgor ICAgICAgQ1JFQVRFIFRBQkxFIG9iamVjdF9jb2x1bW5fd2hpdGVfbGlzdAorICAgICAgKAorICAg ICAgICAgb2JqZWN0X25hbWUgdmFyY2hhcigxMjgpIE5PVCBOVUxMLAorICAgICAgICAgY29sdW1u X25hbWUgdmFyY2hhcigxMjgpIE5PVCBOVUxMLAorICAgICAgICAgQ09OU1RSQUlOVCBwa19vYmpl Y3RfY29sdW1uX3doaXRlX2xpc3QgUFJJTUFSWSBLRVkob2JqZWN0X25hbWUsY29sdW1uX25hbWUp CisgICAgICApIFdJVEggT0lEUzsKKyAgIEVORCBJRjsKKworICAgLS0gdGhpcyB0YWJsZSBob2xk cyBnZW5lcmF0ZWQgc3FsIHBlciBvYmplY3QgYW5kIGlzIHRydW5jYXRlZCB1cG9uIHVwZ3JhZGUg dG8gcmVmbGVjdCBzY2hlbWEgY2hhbmdlcworICAgSUYgRVhJU1RTIChTRUxFQ1QgKiBGUk9NIHBn X3RhYmxlcyBXSEVSRSB0YWJsZW5hbWUgSUxJS0UgJ29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF9z cWwnKSBUSEVOCisgICAgICAgdHJ1bmNhdGUgdGFibGUgb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0 X3NxbDsKKyAgIEVMU0UKKyAgICAgIENSRUFURSBUQUJMRSBvYmplY3RfY29sdW1uX3doaXRlX2xp c3Rfc3FsCisgICAgICAoCisgICAgICAgICBvYmplY3RfbmFtZSB2YXJjaGFyKDEyOCkgTk9UIE5V TEwsCisgICAgICAgICBzcWwgdGV4dCBOT1QgTlVMTCwKKyAgICAgICAgIENPTlNUUkFJTlQgcGtf b2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0X3NxbCBQUklNQVJZIEtFWShvYmplY3RfbmFtZSkKKyAg ICAgICkgV0lUSCBPSURTOworCisgICBFTkQgSUY7CisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgLS0gSW5pdGlhbCB3aGl0ZSBsaXN0IHNldHRpbmdzICAtLS0KKyAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAtLSAgICAgICAgICAgIHZk cyB2aWV3CisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgLS0gIEEg bmV3IGFkZGVkIGNvbHVtbiB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQgZm9yIHRoZSB1c2VyIHVubGVz cyBhZGRlZCBzcGVjaWZpY2FsbHkuCisgICBpZiBub3QgZXhpc3RzIChzZWxlY3QgMSBmcm9tIG9i amVjdF9jb2x1bW5fd2hpdGVfbGlzdCB3aGVyZSBvYmplY3RfbmFtZSA9ICd2ZHMnKSB0aGVuCisg ICAgICBpbnNlcnQgaW50byBvYmplY3RfY29sdW1uX3doaXRlX2xpc3Qob2JqZWN0X25hbWUsY29s dW1uX25hbWUpCisgICAgICAoc2VsZWN0ICd2ZHMnLCBjb2x1bW5fbmFtZQorICAgICAgIGZyb20g aW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMKKyAgICAgICB3aGVyZSB0YWJsZV9uYW1lID0gJ3Zk cycgYW5kCisgICAgICAgY29sdW1uX25hbWUgaW4gKAorICAgICAgICAgICd2ZHNfZ3JvdXBfaWQn LCAndmRzX2dyb3VwX25hbWUnLCAndmRzX2dyb3VwX2Rlc2NyaXB0aW9uJywgJ3NlbGVjdGlvbl9h bGdvcml0aG0nLAorICAgICAgICAgICd2ZHNfaWQnLCAndmRzX25hbWUnLCAnaXAnLCAndmRzX3Vu aXF1ZV9pZCcsICdob3N0X25hbWUnLCAncG9ydCcsICd2ZHNfc3RyZW5ndGgnLAorICAgICAgICAg ICdzZXJ2ZXJfc3NsX2VuYWJsZWQnLCAndmRzX3R5cGUnLCAncG1fdHlwZScsICdwbV91c2VyJywg J3BtX3Bhc3N3b3JkJywgJ3BtX3BvcnQnLAorICAgICAgICAgICdwbV9vcHRpb25zJywgJ3BtX2Vu YWJsZWQnLCAndmRzX3NwbV9wcmlvcml0eScsICdob29rcycsICdzdGF0dXMnLCAnY3B1X2NvcmVz JywKKyAgICAgICAgICAnY3B1X21vZGVsJywgJ2NwdV9zcGVlZF9taCcsICdpZl90b3RhbF9zcGVl ZCcsICdrdm1fZW5hYmxlZCcsICdwaHlzaWNhbF9tZW1fbWInLAorICAgICAgICAgICdwZW5kaW5n X3ZjcHVzX2NvdW50JywgJ3BlbmRpbmdfdm1lbV9zaXplJywgJ21lbV9jb21taXRlZCcsICd2bV9h Y3RpdmUnLCAndm1fY291bnQnLAorICAgICAgICAgICd2bV9taWdyYXRpbmcnLCAndm1zX2NvcmVz X2NvdW50JywgJ2NwdV9vdmVyX2NvbW1pdF90aW1lX3N0YW1wJywgJ2h5cGVydmlzb3JfdHlwZScs CisgICAgICAgICAgJ25ldF9jb25maWdfZGlydHknLCAnaGlnaF91dGlsaXphdGlvbicsICdsb3df dXRpbGl6YXRpb24nLCAnbWF4X3Zkc19tZW1vcnlfb3Zlcl9jb21taXQnLAorICAgICAgICAgICdj cHVfb3Zlcl9jb21taXRfZHVyYXRpb25fbWludXRlcycsICdzdG9yYWdlX3Bvb2xfaWQnLCAnc3Rv cmFnZV9wb29sX25hbWUnLCAncmVzZXJ2ZWRfbWVtJywKKyAgICAgICAgICAnZ3Vlc3Rfb3Zlcmhl YWQnLCAnc29mdHdhcmVfdmVyc2lvbicsICd2ZXJzaW9uX25hbWUnLCAnYnVpbGRfbmFtZScsICdw cmV2aW91c19zdGF0dXMnLAorICAgICAgICAgICdjcHVfaWRsZScsICdjcHVfbG9hZCcsICdjcHVf c3lzJywgJ2NwdV91c2VyJywgJ3VzYWdlX21lbV9wZXJjZW50JywgJ3VzYWdlX2NwdV9wZXJjZW50 JywKKyAgICAgICAgICAndXNhZ2VfbmV0d29ya19wZXJjZW50JywgJ21lbV9hdmFpbGFibGUnLCAn bWVtX3NoYXJlZCcsICdzd2FwX2ZyZWUnLCAnc3dhcF90b3RhbCcsICdrc21fY3B1X3BlcmNlbnQn LAorICAgICAgICAgICdrc21fcGFnZXMnLCAna3NtX3N0YXRlJywgJ2NwdV9mbGFncycsICd2ZHNf Z3JvdXBfY3B1X25hbWUnLCAnY3B1X3NvY2tldHMnLCAndmRzX3NwbV9pZCcsCisgICAgICAgICAg J290cF92YWxpZGl0eScsICdzcG1fc3RhdHVzJywgJ3N1cHBvcnRlZF9jbHVzdGVyX2xldmVscycs ICdzdXBwb3J0ZWRfZW5naW5lcycsCisgICAgICAgICAgJ3Zkc19ncm91cF9jb21wYXRpYmlsaXR5 X3ZlcnNpb24nLCAnaG9zdF9vcycsICdrdm1fdmVyc2lvbicsICdzcGljZV92ZXJzaW9uJywgJ2tl cm5lbF92ZXJzaW9uJywKKyAgICAgICAgICAnaXNjc2lfaW5pdGlhdG9yX25hbWUnLCAndHJhbnNw YXJlbnRfaHVnZXBhZ2VzX3N0YXRlJywgJ2Fub255bW91c19odWdlcGFnZXMnLAorICAgICAgICAg ICdub25fb3BlcmF0aW9uYWxfcmVhc29uJywgJ3JlY292ZXJhYmxlJykpOworLS0gcG1fb3B0aW9u cyBhcmUgbWlzc2luZworICAgZW5kIGlmOworRU5EOyAkZnVuY3Rpb24kCitMQU5HVUFHRSBwbHBn c3FsOworU0VMRUNUICogRlJPTSBfX3RlbXBfYWRkX29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF90 YWJsZSgpOworRFJPUCBGVU5DVElPTiBfX3RlbXBfYWRkX29iamVjdF9jb2x1bW5fd2hpdGVfbGlz dF90YWJsZSgpOworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorLS0gT2JqZWN0IHdoaXRlIGxpc3QgbW9kaWZpY2F0aW9uIHNlY3Rpb24KKy0t IHVzZSBmbl9kYl9hZGRfY29sdW1uX3RvX29iamVjdF93aGl0ZV9saXN0KG9iaixjb2wpCistLSB0 byBhZGQgbmV3IG9iamVjdCBjb2x1bW5zIHRvIHRoZSB3aGl0ZSBsaXN0CistLSBzaW5jZSB0aGlz IHNjcmlwdCBtdXN0IHJlbWFpbiByZWVudHJhbnQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKwpkaWZmIC0tZ2l0IGEvYmFja2VuZC9tYW5h Z2VyL2Ric2NyaXB0cy91cGdyYWRlL3Bvc3RfdXBncmFkZS9hZGRfb2JqZWN0X2NvbHVtbl93aGl0 ZV9saXN0X3RhYmxlLnNxbCBiL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMvdXBncmFkZS9wb3N0 X3VwZ3JhZGUvYWRkX29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF90YWJsZS5zcWwKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMjc3ZTAuLjAwMDAwMDAKLS0tIGEvYmFja2VuZC9tYW5h Z2VyL2Ric2NyaXB0cy91cGdyYWRlL3Bvc3RfdXBncmFkZS9hZGRfb2JqZWN0X2NvbHVtbl93aGl0 ZV9saXN0X3RhYmxlLnNxbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS0tIGFkZGlu ZyBhIHRhYmxlIG5hbWVkIG9iamVjdF9jb2x1bW5fd2hpdGVfbGlzdCB0aGF0IGRlZmluZWQgZGlz cGxheWVkIGNvbHVtbnMgcGVyIG9iamVjdCAodGFibGUgb3IgdmlldykKLUNSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIF9fdGVtcF9hZGRfb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0X3RhYmxlKCkK LVJFVFVSTlMgdm9pZAotQVMgJGZ1bmN0aW9uJAotQkVHSU4KLQotICAgLS0gVGhpcyB0YWJsZSBo b2xkcyB0aGUgY29sdW1uIHdoaXRlIGxpc3QgcGVyIG9iamVjdAotICAgSUYgTk9UIEVYSVNUUyAo U0VMRUNUICogRlJPTSBwZ190YWJsZXMgV0hFUkUgdGFibGVuYW1lIElMSUtFICdvYmplY3RfY29s dW1uX3doaXRlX2xpc3QnKSBUSEVOCi0gICAgICBDUkVBVEUgVEFCTEUgb2JqZWN0X2NvbHVtbl93 aGl0ZV9saXN0Ci0gICAgICAoCi0gICAgICAgICBvYmplY3RfbmFtZSB2YXJjaGFyKDEyOCkgTk9U IE5VTEwsCi0gICAgICAgICBjb2x1bW5fbmFtZSB2YXJjaGFyKDEyOCkgTk9UIE5VTEwsCi0gICAg ICAgICBDT05TVFJBSU5UIHBrX29iamVjdF9jb2x1bW5fd2hpdGVfbGlzdCBQUklNQVJZIEtFWShv YmplY3RfbmFtZSxjb2x1bW5fbmFtZSkKLSAgICAgICkgV0lUSCBPSURTOwotICAgRU5EIElGOwot Ci0gICAtLSB0aGlzIHRhYmxlIGhvbGRzIGdlbmVyYXRlZCBzcWwgcGVyIG9iamVjdCBhbmQgaXMg dHJ1bmNhdGVkIHVwb24gdXBncmFkZSB0byByZWZsZWN0IHNjaGVtYSBjaGFuZ2VzCi0gICBJRiBF WElTVFMgKFNFTEVDVCAqIEZST00gcGdfdGFibGVzIFdIRVJFIHRhYmxlbmFtZSBJTElLRSAnb2Jq ZWN0X2NvbHVtbl93aGl0ZV9saXN0X3NxbCcpIFRIRU4KLSAgICAgICB0cnVuY2F0ZSB0YWJsZSBv YmplY3RfY29sdW1uX3doaXRlX2xpc3Rfc3FsOwotICAgRUxTRQotICAgICAgQ1JFQVRFIFRBQkxF IG9iamVjdF9jb2x1bW5fd2hpdGVfbGlzdF9zcWwKLSAgICAgICgKLSAgICAgICAgIG9iamVjdF9u YW1lIHZhcmNoYXIoMTI4KSBOT1QgTlVMTCwKLSAgICAgICAgIHNxbCB0ZXh0IE5PVCBOVUxMLAot ICAgICAgICAgQ09OU1RSQUlOVCBwa19vYmplY3RfY29sdW1uX3doaXRlX2xpc3Rfc3FsIFBSSU1B UlkgS0VZKG9iamVjdF9uYW1lKQotICAgICAgKSBXSVRIIE9JRFM7Ci0KLSAgIEVORCBJRjsKLSAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAtLSBJbml0aWFsIHdoaXRl IGxpc3Qgc2V0dGluZ3MgIC0tLQotICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSAgIC0tICAgICAgICAgICAgdmRzIHZpZXcKLSAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0gICAtLSAgQSBuZXcgYWRkZWQgY29sdW1uIHdpbGwgbm90IGJlIGRpc3Bs YXllZCBmb3IgdGhlIHVzZXIgdW5sZXNzIGFkZGVkIHNwZWNpZmljYWxseS4KLSAgIGlmIG5vdCBl eGlzdHMgKHNlbGVjdCAxIGZyb20gb2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0IHdoZXJlIG9iamVj dF9uYW1lID0gJ3ZkcycpIHRoZW4KLSAgICAgIGluc2VydCBpbnRvIG9iamVjdF9jb2x1bW5fd2hp dGVfbGlzdChvYmplY3RfbmFtZSxjb2x1bW5fbmFtZSkKLSAgICAgIChzZWxlY3QgJ3ZkcycsIGNv bHVtbl9uYW1lCi0gICAgICAgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucwotICAgICAg IHdoZXJlIHRhYmxlX25hbWUgPSAndmRzJyBhbmQKLSAgICAgICBjb2x1bW5fbmFtZSBpbiAoCi0g ICAgICAgICAgJ3Zkc19ncm91cF9pZCcsICd2ZHNfZ3JvdXBfbmFtZScsICd2ZHNfZ3JvdXBfZGVz Y3JpcHRpb24nLCAnc2VsZWN0aW9uX2FsZ29yaXRobScsCi0gICAgICAgICAgJ3Zkc19pZCcsICd2 ZHNfbmFtZScsICdpcCcsICd2ZHNfdW5pcXVlX2lkJywgJ2hvc3RfbmFtZScsICdwb3J0JywgJ3Zk c19zdHJlbmd0aCcsCi0gICAgICAgICAgJ3NlcnZlcl9zc2xfZW5hYmxlZCcsICd2ZHNfdHlwZScs ICdwbV90eXBlJywgJ3BtX3VzZXInLCAncG1fcGFzc3dvcmQnLCAncG1fcG9ydCcsCi0gICAgICAg ICAgJ3BtX29wdGlvbnMnLCAncG1fZW5hYmxlZCcsICd2ZHNfc3BtX3ByaW9yaXR5JywgJ2hvb2tz JywgJ3N0YXR1cycsICdjcHVfY29yZXMnLAotICAgICAgICAgICdjcHVfbW9kZWwnLCAnY3B1X3Nw ZWVkX21oJywgJ2lmX3RvdGFsX3NwZWVkJywgJ2t2bV9lbmFibGVkJywgJ3BoeXNpY2FsX21lbV9t YicsCi0gICAgICAgICAgJ3BlbmRpbmdfdmNwdXNfY291bnQnLCAncGVuZGluZ192bWVtX3NpemUn LCAnbWVtX2NvbW1pdGVkJywgJ3ZtX2FjdGl2ZScsICd2bV9jb3VudCcsCi0gICAgICAgICAgJ3Zt X21pZ3JhdGluZycsICd2bXNfY29yZXNfY291bnQnLCAnY3B1X292ZXJfY29tbWl0X3RpbWVfc3Rh bXAnLCAnaHlwZXJ2aXNvcl90eXBlJywKLSAgICAgICAgICAnbmV0X2NvbmZpZ19kaXJ0eScsICdo aWdoX3V0aWxpemF0aW9uJywgJ2xvd191dGlsaXphdGlvbicsICdtYXhfdmRzX21lbW9yeV9vdmVy X2NvbW1pdCcsCi0gICAgICAgICAgJ2NwdV9vdmVyX2NvbW1pdF9kdXJhdGlvbl9taW51dGVzJywg J3N0b3JhZ2VfcG9vbF9pZCcsICdzdG9yYWdlX3Bvb2xfbmFtZScsICdyZXNlcnZlZF9tZW0nLAot ICAgICAgICAgICdndWVzdF9vdmVyaGVhZCcsICdzb2Z0d2FyZV92ZXJzaW9uJywgJ3ZlcnNpb25f bmFtZScsICdidWlsZF9uYW1lJywgJ3ByZXZpb3VzX3N0YXR1cycsCi0gICAgICAgICAgJ2NwdV9p ZGxlJywgJ2NwdV9sb2FkJywgJ2NwdV9zeXMnLCAnY3B1X3VzZXInLCAndXNhZ2VfbWVtX3BlcmNl bnQnLCAndXNhZ2VfY3B1X3BlcmNlbnQnLAotICAgICAgICAgICd1c2FnZV9uZXR3b3JrX3BlcmNl bnQnLCAnbWVtX2F2YWlsYWJsZScsICdtZW1fc2hhcmVkJywgJ3N3YXBfZnJlZScsICdzd2FwX3Rv dGFsJywgJ2tzbV9jcHVfcGVyY2VudCcsCi0gICAgICAgICAgJ2tzbV9wYWdlcycsICdrc21fc3Rh dGUnLCAnY3B1X2ZsYWdzJywgJ3Zkc19ncm91cF9jcHVfbmFtZScsICdjcHVfc29ja2V0cycsICd2 ZHNfc3BtX2lkJywKLSAgICAgICAgICAnb3RwX3ZhbGlkaXR5JywgJ3NwbV9zdGF0dXMnLCAnc3Vw cG9ydGVkX2NsdXN0ZXJfbGV2ZWxzJywgJ3N1cHBvcnRlZF9lbmdpbmVzJywKLSAgICAgICAgICAn dmRzX2dyb3VwX2NvbXBhdGliaWxpdHlfdmVyc2lvbicsICdob3N0X29zJywgJ2t2bV92ZXJzaW9u JywgJ3NwaWNlX3ZlcnNpb24nLCAna2VybmVsX3ZlcnNpb24nLAotICAgICAgICAgICdpc2NzaV9p bml0aWF0b3JfbmFtZScsICd0cmFuc3BhcmVudF9odWdlcGFnZXNfc3RhdGUnLCAnYW5vbnltb3Vz X2h1Z2VwYWdlcycsCi0gICAgICAgICAgJ25vbl9vcGVyYXRpb25hbF9yZWFzb24nLCAncmVjb3Zl cmFibGUnKSk7Ci0tLSBwbV9vcHRpb25zIGFyZSBtaXNzaW5nCi0gICBlbmQgaWY7Ci1FTkQ7ICRm dW5jdGlvbiQKLUxBTkdVQUdFIHBscGdzcWw7Ci1TRUxFQ1QgKiBGUk9NIF9fdGVtcF9hZGRfb2Jq ZWN0X2NvbHVtbl93aGl0ZV9saXN0X3RhYmxlKCk7Ci1EUk9QIEZVTkNUSU9OIF9fdGVtcF9hZGRf b2JqZWN0X2NvbHVtbl93aGl0ZV9saXN0X3RhYmxlKCk7Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSBPYmplY3Qgd2hpdGUgbGlzdCBt b2RpZmljYXRpb24gc2VjdGlvbgotLS0gdXNlIGZuX2RiX2FkZF9jb2x1bW5fdG9fb2JqZWN0X3do aXRlX2xpc3Qob2JqLGNvbCkKLS0tIHRvIGFkZCBuZXcgb2JqZWN0IGNvbHVtbnMgdG8gdGhlIHdo aXRlIGxpc3QKLS0tIHNpbmNlIHRoaXMgc2NyaXB0IG11c3QgcmVtYWluIHJlZW50cmFudAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCmRp ZmYgLS1naXQgYS9iYWNrZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcHJlX3VwZ3JhZGUv MDAwMF9jb25maWcuc3FsIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3ByZV91 cGdyYWRlLzAwMDBfY29uZmlnLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4xMWU0M2I2Ci0tLSAvZGV2L251bGwKKysrIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91 cGdyYWRlL3ByZV91cGdyYWRlLzAwMDBfY29uZmlnLnNxbApAQCAtMCwwICsxLDYxOSBAQAorLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAgICAgICAgICAgIERBVEFCQVNFIEFQUExJ Q0FUSU9OIENPTkZJR1VSQVRJT04gRklMRQorCitUaGlzIGZpbGUgaXMgdXNlZCB0byB1cGRhdGUg dGhlIHZkY19vcHRpb25zIGNvbmZpZ3VyYXRpb24gdGFibGUuCitUaGUgZm9sbG93aW5nIHNlY3Rp b25zIGFyZSBhdmFpbGFibGU6CisgICAgQWRkIFNlY3Rpb24KKyAgICBVcGRhdGUgc2VjdGlvbiAo dy9vIG92ZXJyaWRpbmcgY3VycmVudCB2YWx1ZSkKKyAgICBEZWxldGUgc2VjdGlvbgorICAgIFNw bGl0IGNvbmZpZyBzZWN0aW9uCisgICAgU2ltcGxlIHVwZ3JhZGVzIG5vdCBhdmFpbGFibGUgdXNp bmcgYSBmbl9kYiogZnVuY3Rpb24gY2FsbAorICAgIENvbXBsZXggdXBncmFkZXMgdXNpbmcgdGVt cG9yYXJ5IGZ1bmN0aW9ucworCitJbiBlYWNoIHNlY3Rpb24gKGV4Y2VwdCBzaW1wbGUvZnVuY3Rp b24gc2VjdGlvbnMpLCBlbnRyaWVzIGFyZSBvcmRlcmVkIGJ5IGtleSwKK3BsZWFzZSBrZWVwIHRo aXMgd2hlbiBtb2RpZmluZyB0aGlzIGZpbGUuCisKK1BMRUFTRSBOT1RFIFRIQVQgVEhJUyBTQ1JJ UFQgTVVTVCBSRU1BSU4gUkUtRU5UUkFOVCEKKworKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gICAgICAgICAgICAgICAgICBB ZGQgY29uZmlndXJhdGlvbiB2YWx1ZXMgc2VjdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdDcHVQaW5NaWdyYXRpb25FbmFi bGVkJywndHJ1ZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdD cHVQaW5uaW5nRW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnQ3B1UGlubmluZ0VuYWJsZWQnLCdmYWxzZScsJzMuMCcpOworc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ0NwdVBpbm5pbmdFbmFibGVkJywndHJ1ZScsJzMuMScpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkbWluRG9tYWluJywnaW50ZXJuYWwnLCdnZW5l cmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQWRtaW5QYXNzd29yZCcsJycs J2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZG1pblVzZXInLCdh ZG1pbicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZFVzZXJJ ZCcsJycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZFVzZXJO YW1lJywnJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkVXNl clBhc3N3b3JkJywnJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0FkdmFuY2VkTkZTT3B0aW9uc0VuYWJsZWQnLCdmYWxzZScsJzIuMicpOworc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ0FkdmFuY2VkTkZTT3B0aW9uc0VuYWJsZWQnLCdmYWxzZScsJzMu MCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkdmFuY2VkTkZTT3B0aW9uc0Vu YWJsZWQnLCd0cnVlJywnMy4xJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQWdl bnRBcHBOYW1lJywnUkhFVi1BZ2VudCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdBbGxvd0R1cGxpY2F0ZU1hY0FkZHJlc3NlcycsJ2ZhbHNlJywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FwcGxpY2F0aW9uTW9kZScsJzI1NScs J2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3luY1BvbGxpbmdD eWNsZXNCZWZvcmVDYWxsYmFja0NsZWFudXAnLCcxMjAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnQXN5bmNQb2xsaW5nQ3ljbGVzQmVmb3JlUmVmcmVzaFN1c3Bl bmQnLCczMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3lu Y1Rhc2tQb2xsaW5nUmF0ZScsJzEwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0FzeW5jVGFza1N0YXR1c0NhY2hlUmVmcmVzaFJhdGVJblNlY29uZHMnLCczMCcs J2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3luY1Rhc2tTdGF0 dXNDYWNoaW5nVGltZUluTWludXRlcycsJzEnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnQXN5bmNUYXNrWm9tYmllVGFza0xpZmVJbk1pbnV0ZXMnLCczMDAnLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQXVkaXRMb2dBZ2luZ1Ro cmVhc2hvbGQnLCczMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdBdWRpdExvZ0NsZWFudXBUaW1lJywnMDM6MzU6MzUnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5n IEF1dGhlbnRpY2F0aW9uIE1ldGhvZAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0F1 dGhlbnRpY2F0aW9uTWV0aG9kJywnTERBUCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdBdXRvTW9kZScsJ1BlclNlcnZlcicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBdXRvUmVjb3ZlcnlTY2hlZHVsZScsJzAgMC81ICogKiAq ID8nLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQXV0b1JlcG9E b21haW5SZWZyZXNoVGltZScsJzYwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0F1dG9TdXNwZW5kVGltZUluTWludXRlcycsJzMwJywnZ2VuZXJhbCcpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0Jsb2NrTWlncmF0aW9uT25Td2FwVXNhZ2VQZXJj ZW50YWdlJywnMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdC b290c3RyYXBJbnN0YWxsZXJGaWxlTmFtZScsJ2JhY2tlbmQvbWFuYWdlci9jb25mL3Zkc19pbnN0 YWxsZXIucHknLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIENBIEJhc2UgRGlyZWN0b3J5CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ0FCYXNlRGlyZWN0b3J5JywnY2EnLCdnZW5lcmFs Jyk7CistLUhhbmRsaW5nIENBIGNlcnRpZmljYXRlIHBhdGgKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdDQUNlcnRpZmljYXRlUGF0aCcsJ2NhL2NlcnRzLnBlbScsJ2dlbmVyYWwnKTsK Ky0tSGFuZGxpbmcgUEVNIEZpbGUgTmFtZQorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0NBRW5naW5lS2V5JywnZW5naW5lLnBlbScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdDQkNDZXJ0aWZpY2F0ZVNjcmlwdE5hbWUnLCcvdXNyL3NoYXJlL3Zkc20t cmVnL3Zkc20tZ2VuLWNlcnQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnQ2JjQ2hlY2tPblZkc0NoYW5nZScsJ2ZhbHNlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0NCQ0Nsb3NlQ2VydGlmaWNhdGVTY3JpcHROYW1lJywnL3Vz ci9zaGFyZS92ZHNtLXJlZy92ZHNtLWNvbXBsZXRlJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBD ZXJ0aWZpY2F0ZSBhbGlhcworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0NlcnRBbGlh cycsJ2VuZ2luZScsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgQ2VydGlmaWNhdGUgRmlsZSBOYW1l CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ2VydGlmaWNhdGVGaWxlTmFtZScsJ3Zk Yy5wZngnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ2VydGlm aWNhdGVGaW5nZXJQcmludCcsJzczIDE4IDIyIDQ0IDVkIDk4IGIwIDVkIGMwIGY3IDM2IDdkIGY4 IDFkIDg1IGRhIGUxIDNjIGYxIGM2JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0NlcnRpZmljYXRlUGFzc3dvcmQnLCdqbE9USVMwcTVhdnNnMUdhUmpmLzYvdG5F TTFwWGNDUnZOb2VKNU1DZ0hGMWtDemNxcWhadnpSOFBuLzVpQnhhS1ZDN1k0T2RBMGpvWFZNTEdh c1ZHTG5Va3hFeHpOQ01UKzZRd3lGTTFMOS8wZysxT2dHVHVNYnZZVGZFaTBqTE9GdjB4d1dEbDVN V3VuUFVqWnJpR0Voa2l1NWQ2UUo1WmVFaEQ0clJvb0E9JywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0NpcGhlclN1aXRlJywnREVGQVVMVCcsJ2dlbmVyYWwnKTsK Ky0tSGFuZGxpbmcgQ29uZmlndXJhdGlvbiBkaXJlY3RvcnkgZm9yIEVOR0lORQorc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0NvbmZpZ0RpcicsJy9ldGMvZW5naW5lJywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0Nvbm5lY3RUb1NlcnZlclRpbWVvdXRJ blNlY29uZHMnLCcyMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdDcHVPdmVyQ29tbWl0RHVyYXRpb25NaW51dGVzJywnMicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdDdXN0b21QdWJsaWNDb25maWdfQXBwc1dlYlNpdGUnLCcn LCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIERhdGEgZGlyZWN0b3J5IGZvciBFTkdJTkUKK3NlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEYXRhRGlyJywnL3Vzci9zaGFyZS9lbmdpbmUnLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnREJFbmdpbmUnLCdTUUxT ZXJ2ZXInLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGVidWdT ZWFyY2hMb2dnaW5nJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnRGVidWdUaW1lckxvZ2dpbmcnLCd0cnVlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0RlZmF1bHRNYXhUaHJlYWRQb29sU2l6ZScsJzUwMCcsJ2dl bmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZWZhdWx0TWluVGhyZWFk UG9vbFNpemUnLCc1MCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdEZWZhdWx0VGltZVpvbmUnLCcoR01UKSBHTVQgU3RhbmRhcmQgVGltZScsJ2dlbmVyYWwnKTsK Ky0tSGFuZGxpbmcgRGVmYXVsdCBXb3JrZ3JvdXAKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdEZWZhdWx0V29ya2dyb3VwJywnV09SS0dST1VQJywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0Rlc2t0b3BBdWRpb0RldmljZVR5cGUnLCdkZWZhdWx0LGFj OTcnLCcyLjInKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZXNrdG9wQXVkaW9E ZXZpY2VUeXBlJywnV2luZG93c1hQLGFjOTcsUkhFTDQsYWM5NyxSSEVMMyxhYzk3LFdpbmRvd3My MDAzeDY0LGFjOTcsUkhFTDR4NjQsYWM5NyxSSEVMM3g2NCxhYzk3LE90aGVyTGludXgsYWM5NyxP dGhlcixhYzk3LGRlZmF1bHQsaWNoNicsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0Rlc2t0b3BBdWRpb0RldmljZVR5cGUnLCdXaW5kb3dzWFAsYWM5NyxSSEVMNCxhYzk3 LFJIRUwzLGFjOTcsV2luZG93czIwMDN4NjQsYWM5NyxSSEVMNHg2NCxhYzk3LFJIRUwzeDY0LGFj OTcsT3RoZXJMaW51eCxhYzk3LE90aGVyLGFjOTcsZGVmYXVsdCxpY2g2JywnMy4xJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlzYWJsZUZlbmNlQXRTdGFydHVwSW5TZWMnLCcz MDAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlza0NvbmZp Z3VyYXRpb25MaXN0JywnU3lzdGVtLFNwYXJzZSxDT1csdHJ1ZTtEYXRhLFByZWFsbG9jYXRlZCxS QVcsZmFsc2U7U2hhcmVkLFByZWFsbG9jYXRlZCxSQVcsZmFsc2U7U3dhcCxQcmVhbGxvY2F0ZWQs UkFXLGZhbHNlO1RlbXAsU3BhcnNlLENPVyxmYWxzZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdEaXJlY3RMVU5EaXNrRW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlyZWN0TFVORGlza0VuYWJsZWQnLCdm YWxzZScsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0RpcmVjdExVTkRp c2tFbmFibGVkJywndHJ1ZScsJzMuMScpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0RvY3NVUkwnLCdkb2NzJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBOZXRCSU9TIERvbWFpbiBO YW1lCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRG9tYWluTmFtZScsJ2V4YW1wbGUu Y29tJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0VtdWxhdGVk TWFjaGluZScsJ3JoZWw1LjUuMCcsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ0VtdWxhdGVkTWFjaGluZScsJ3JoZWw2LjAuMCcsJzMuMCcpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ0VtdWxhdGVkTWFjaGluZScsJ3BjLTAuMTQnLCczLjEnKTsKKy0tSGFu ZGxpbmcgRW5hYmxlIFNwaWNlIFJvb3QgQ2VydGlmaWNhdGlvbiBWYWxpZGF0aW9uCitzZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRW5hYmxlU3BpY2VSb290Q2VydGlmaWNhdGVWYWxpZGF0 aW9uJywndHJ1ZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdF bmFibGVTd2FwQ2hlY2snLCd0cnVlJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBFbmFibGUgVVNC IGRldmljZXMgYXR0YWNobWVudCB0byB0aGUgVk0gYnkgZGVmYXVsdAorc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ0VuYWJsZVVTQkFzRGVmYXVsdCcsJ3RydWUnLCdnZW5lcmFsJyk7Cist LUhhbmRsaW5nIEVuYWJsZXMgSG9zdCBMb2FkIEJhbGFuY2luZyBzeXN0ZW0uCitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnRW5hYmxlVmRzTG9hZEJhbGFuY2luZycsJ3RydWUnLCdnZW5l cmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5HSU5FRUFSTGliJywnJUpC T1NTX0hPTUUlL3NlcnZlci9lbmdpbmUtc2xpbW1lZC9kZXBsb3kvZW5naW5lLmVhcicsJ2dlbmVy YWwnKTsKKy0tSGFuZGxpbmcgTWFpbCBVc2VyIERvbWFpbgorc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0VOTWFpbERvbWFpbicsJycsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgVXNlIEhU TUwgaW4gbWVzc2FnZSBib2R5CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5NYWls SXNCb2R5SHRtbCcsJ3RydWUnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIFVzZSBEZWZhdWx0IENy ZWRlbnRpYWxzCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5NYWlsVXNlRGVmYXVs dENyZWRlbnRpYWxzJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnRmFpbGVkSm9iQ2xlYW51cFRpbWVJbk1pbnV0ZXMnLCc2MCcsJ2dlbmVyYWwnKTsK K3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdGZW5jZUFnZW50RGVmYXVsdFBhcmFtcycs J2lsbzM6bGFucGx1cyx0aW1lb3V0PTQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnRmVuY2VBZ2VudE1hcHBpbmcnLCdpbG8zPWlwbWlsYW4nLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmVuY2VRdWlldFRpbWVCZXR3ZWVuT3Bl cmF0aW9uc0luU2VjJywnMTgwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0ZlbmNlU3RhcnRTdGF0dXNEZWxheUJldHdlZW5SZXRyaWVzSW5TZWMnLCc2MCcsJ2dl bmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdGZW5jZVN0YXJ0U3RhdHVz UmV0cmllcycsJzMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn RmVuY2VTdG9wU3RhdHVzRGVsYXlCZXR3ZWVuUmV0cmllc0luU2VjJywnNjAnLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmVuY2VTdG9wU3RhdHVzUmV0cmllcycs JzMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmlsdGVyaW5n TFVOc0VuYWJsZWQnLCd0cnVlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnRmlsdGVyaW5nTFVOc0VuYWJsZWQnLCd0cnVlJywnMy4wJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnRmlsdGVyaW5nTFVOc0VuYWJsZWQnLCdmYWxzZScsJzMuMScpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0ZpbmRGZW5jZVByb3h5RGVsYXlCZXR3ZWVuUmV0 cmllc0luU2VjJywnMzAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnRmluZEZlbmNlUHJveHlSZXRyaWVzJywnMycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdGcmVlU3BhY2VDcml0aWNhbExvd0luR0InLCc1JywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0ZyZWVTcGFjZUxvdycsJzEwJywnZ2Vu ZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0d1ZXN0VG9vbHNTZXR1cElz b1ByZWZpeCcsJ1JIRVYtdG9vbHNTZXR1cF8nLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnSGlnaFV0aWxpemF0aW9uRm9yRXZlbmx5RGlzdHJpYnV0ZScsJzc1Jywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0hpZ2hVdGlsaXphdGlv bkZvclBvd2VyU2F2ZScsJzc1JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0hvdFBsdWdFbmFibGVkJywnZmFsc2UnLCcyLjInKTsKK3NlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdIb3RQbHVnRW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnSG90UGx1Z0VuYWJsZWQnLCd0cnVlJywnMy4xJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlzY29ubmVjdFBvb2xPblJlY29uc3RydWN0Jywn MCwyJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0hvdFBsdWdT dXBwb3J0ZWRPc0xpc3QnLCdXaW5kb3dzNyxXaW5kb3dzN3g2NCxXaW5kb3dzMjAwOCxXaW5kb3dz MjAwOHg2NCxXaW5kb3dzMjAwOFIyeDY0LFJIRUw1LFJIRUw1eDY0LFJIRUw2LFJIRUw2eDY0Jywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0luaXRTdG9yYWdlU3Bh cnNlU2l6ZUluR0InLCcxJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBJbnN0YWxsIHZpcnR1YWxp emF0aW9uIHNvZnR3YXJlIG9uIEFkZCBIb3N0CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnSW5zdGFsbFZkcycsJ3RydWUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnSW9PcFRpbWVvdXRTZWMnLCcxMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdJUFRhYmxlc0NvbmZpZycsCisnIyBvVmlydCBkZWZhdWx0IGZpcmV3 YWxsIGNvbmZpZ3VyYXRpb24uIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHZkc20gYm9vdHN0 cmFwIHNjcmlwdC4KKypmaWx0ZXIKKzpJTlBVVCBBQ0NFUFQgWzA6MF0KKzpGT1JXQVJEIEFDQ0VQ VCBbMDowXQorOk9VVFBVVCBBQ0NFUFQgWzA6MF0KKy1BIElOUFVUIC1tIHN0YXRlIC0tc3RhdGUg RVNUQUJMSVNIRUQsUkVMQVRFRCAtaiBBQ0NFUFQKKy1BIElOUFVUIC1wIGljbXAgLWogQUNDRVBU CistQSBJTlBVVCAtaSBsbyAtaiBBQ0NFUFQKKyMgdmRzbQorLUEgSU5QVVQgLXAgdGNwIC0tZHBv cnQgNTQzMjEgLWogQUNDRVBUCisjIGxpYnZpcnQgdGxzCistQSBJTlBVVCAtcCB0Y3AgLS1kcG9y dCAxNjUxNCAtaiBBQ0NFUFQKKyMgU1NICistQSBJTlBVVCAtcCB0Y3AgLS1kcG9ydCAyMiAtaiBB Q0NFUFQKKyMgZ3Vlc3QgY29uc29sZXMKKy1BIElOUFVUIC1wIHRjcCAtbSBtdWx0aXBvcnQgLS1k cG9ydHMgNTYzNDo2MTY2IC1qIEFDQ0VQVAorIyBtaWdyYXRpb24KKy1BIElOUFVUIC1wIHRjcCAt bSBtdWx0aXBvcnQgLS1kcG9ydHMgNDkxNTI6NDkyMTYgLWogQUNDRVBUCisjIHNubXAKKy1BIElO UFVUIC1wIHVkcCAtLWRwb3J0IDE2MSAtaiBBQ0NFUFQKKyMgUmVqZWN0IGFueSBvdGhlciBpbnB1 dCB0cmFmZmljCistQSBJTlBVVCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCBpY21wLWhvc3QtcHJv aGliaXRlZAorLUEgRk9SV0FSRCAtbSBwaHlzZGV2ICEgLS1waHlzZGV2LWlzLWJyaWRnZWQgLWog UkVKRUNUIC0tcmVqZWN0LXdpdGggaWNtcC1ob3N0LXByb2hpYml0ZWQKK0NPTU1JVAorJywnZ2Vu ZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0lzTXVsdGlsZXZlbEFkbWlu aXN0cmF0aW9uT24nLCd0cnVlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0lzTmVlZFN1cHBvcnRGb3JPbGRWZ0FQSScsJ3RydWUnLCcyLjInKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdJc05lZWRTdXBwb3J0Rm9yT2xkVmdBUEknLCdmYWxzZScs JzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0pvYkNsZWFudXBSYXRlSW5N aW51dGVzJywnMTAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn Sm9iUGFnZVNpemUnLCcxMDAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgna2V5c3RvcmVQYXNzJywnTm9Tb3VwNFUnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIEtl eXN0b3JlIFVSTAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ2tleXN0b3JlVXJsJywn LmtleXN0b3JlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0xk YXBRdWVyeVBhZ2VTaXplJywnMTAwMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdMREFQUXVlcnlUaW1lb3V0JywnMzAnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5n IExEQVAgU2VjdXJpdHkgQXV0aGVudGljYXRpb24gTWV0aG9kCitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnTERBUFNlY3VyaXR5QXV0aGVudGljYXRpb24nLCdHU1NBUEknLCdnZW5lcmFs Jyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTERBUFNlcnZlclBvcnQnLCczODkn LCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGRhcFNlcnZlcnMn LCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTERBUFByb3Zp ZGVyVHlwZXMnLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn TGVhc2VSZXRyaWVzJywnMycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdMZWFzZVRpbWVTZWMnLCc2MCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdMaWNlbnNlQ2VydGlmaWNhdGVGaW5nZXJQcmludCcsJzVmIDM4IDQxIDg5IGIx IDMzIDQ5IDBjIDI0IDEzIDZiIGIzIGU1IGJhIDllIGM3IGZkIDgzIDgwIDNiJywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0xpbWl0TnVtYmVyT2ZOZXR3b3JrSW50 ZXJmYWNlcycsJ3RydWUnLCcyLjInKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdM aW1pdE51bWJlck9mTmV0d29ya0ludGVyZmFjZXMnLCdmYWxzZScsJzMuMCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ0xpbWl0TnVtYmVyT2ZOZXR3b3JrSW50ZXJmYWNlcycsJ2Zh bHNlJywnMy4xJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGl2ZVNuYXBzaG90 RW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn TGl2ZVNuYXBzaG90RW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnTGl2ZVNuYXBzaG90RW5hYmxlZCcsJ3RydWUnLCczLjEnKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb2NhbEFkbWluUGFzc3dvcmQnLCcxMjM0NTYnLCdnZW5l cmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9jYWxTdG9yYWdlRW5hYmxl ZCcsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9jYWxT dG9yYWdlRW5hYmxlZCcsJ3RydWUnLCczLjAnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdMb2NhbFN0b3JhZ2VFbmFibGVkJywndHJ1ZScsJzMuMScpOworLS1IYW5kbGluZyBFbmFi bGUgbG9jayBwb2xpY3kgZm9yIFN0b3JhZ2UgUG9vbCBNYW5hZ2VyIG9uIGFjdGl2YXRpb24KK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb2NrUG9saWN5JywnT04nLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9ja1JlbmV3YWxJbnRlcnZhbFNlYycs JzUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9nREJDb21t YW5kcycsJ2ZhbHNlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0xvZ1BoeXNpY2FsTWVtb3J5VGhyZXNob2xkSW5NQicsJzEwMjQnLCdnZW5lcmFsJyk7CistLUhh bmRsaW5nIExvZyBYTUwtUlBDIERhdGEKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdM b2dYbWxScGNEYXRhJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnTG93VXRpbGl6YXRpb25Gb3JFdmVubHlEaXN0cmlidXRlJywnMCcsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb3dVdGlsaXphdGlvbkZvclBvd2Vy U2F2ZScsJzIwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01h Y1Bvb2xSYW5nZXMnLCcwMDoxQTo0QToxNjowMTo1MS0wMDoxQTo0QToxNjowMTplNicsJ2dlbmVy YWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYW5hZ2VkRGV2aWNlc1doaXRl TGlzdCcsJycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYW5h Z2VtZW50TmV0d29yaycsJ292aXJ0bWdtdCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdNYXhBdWRpdExvZ01lc3NhZ2VMZW5ndGgnLCcxMDAwMCcsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhCbG9ja0Rpc2tTaXplJywnODE5 MicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhMREFQUXVl cnlQYXJ0c051bWJlcicsJzEwMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmln X3ZhbHVlKCdNYXhNYWNzQ291bnRJblBvb2wnLCcxMDAwMDAnLCdnZW5lcmFsJyk7CitzZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtYmVyT2ZIb3N0c0luU3RvcmFnZVBvb2wnLCcy NTAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtT2ZD cHVQZXJTb2NrZXQnLCcxNicsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J01heE51bU9mQ3B1UGVyU29ja2V0JywnMTYnLCczLjAnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdNYXhOdW1PZkNwdVBlclNvY2tldCcsJzE2JywnMy4xJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtT2ZWbUNwdXMnLCcxNicsJzIuMicpOworc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heE51bU9mVm1DcHVzJywnNjQnLCczLjAnKTsKK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhOdW1PZlZtQ3B1cycsJzY0JywnMy4xJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtT2ZWbVNvY2tldHMnLCcxNics JzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heE51bU9mVm1Tb2NrZXRz JywnMTYnLCczLjAnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhOdW1PZlZt U29ja2V0cycsJzE2JywnMy4xJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4 UmVydW5WbU9uVmRzQ291bnQnLCczJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ01heFN0b3JhZ2VWZHNEZWxheUNoZWNrU2VjJywnNScsJ2dlbmVyYWwnKTsKK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhTdG9yYWdlVmRzVGltZW91dENoZWNrU2Vj JywnMzAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4VmRz TWVtT3ZlckNvbW1pdCcsJzIwMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmln X3ZhbHVlKCdNYXhWZHNNZW1PdmVyQ29tbWl0Rm9yU2VydmVycycsJzE1MCcsJ2dlbmVyYWwnKTsK K3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhWZHNOYW1lTGVuZ3RoJywnMjU1Jywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heFZtTmFtZUxlbmd0 aE5vbldpbmRvd3MnLCc2NCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdNYXhWbU5hbWVMZW5ndGhXaW5kb3dzJywnMTUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4Vm1zSW5Qb29sJywnMTAwMCcsJ2dlbmVyYWwnKTsKK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNaW5pbWFsRVRMVmVyc2lvbicsJzMuMC4wJywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05hdGl2ZVVTQkVuYWJs ZWQnLCdmYWxzZScsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05hdGl2 ZVVTQkVuYWJsZWQnLCdmYWxzZScsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ05hdGl2ZVVTQkVuYWJsZWQnLCd0cnVlJywnMy4xJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnTmljREhDUERlbGF5R3JhY2VJbk1TJywnNjAnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTm9uVm1OZXR3b3JrU3VwcG9ydGVkJywnZmFsc2Un LCcyLjInKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdOb25WbU5ldHdvcmtTdXBw b3J0ZWQnLCdmYWxzZScsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05v blZtTmV0d29ya1N1cHBvcnRlZCcsJ3RydWUnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdOdW1iZXJPZkZhaWxlZFJ1bnNPblZkcycsJzMnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTnVtYmVyT2ZVU0JTbG90cycsJzQnLCdnZW5lcmFs Jyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTnVtYmVyT2ZWbXNGb3JUb3BTaXpl Vm1zJywnMTAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTnVt YmVyVm1SZWZyZXNoZXNCZWZvcmVTYXZlJywnNScsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgT3Jn YW5pemF0aW9uIE5hbWUKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdPcmdhbml6YXRp b25OYW1lJywnb1ZpcnQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnT3JpZ2luVHlwZScsJ09WSVJUJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ092ZlZpcnR1YWxTeXN0ZW1UeXBlJywnRU5HSU5FJywnZ2VuZXJhbCcpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ092aXJ0SW5pdGlhbFN1cHBvcnRlZElzb1ZlcnNp b24nLCc1LjgnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnT3Zp cnRJc29QcmVmaXgnLCdyaGV2aCcsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgVGhlIFJIRVYtSCBp bnN0YWxsYXRpb24gZmlsZXMgcGF0aAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ29W aXJ0SVNPc1JlcG9zaXRvcnlQYXRoJywnb3ZpcnQtaXNvcycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdvVmlydFVwZ3JhZGVTY3JpcHROYW1lJywnL3Vzci9zaGFy ZS92ZHNtLXJlZy92ZHNtLXVwZ3JhZGUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnb1ZpcnRVcGxvYWRQYXRoJywnL2RhdGEvdXBkYXRlcy9vdmlydC1ub2RlLWlt YWdlLmlzbycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQYXls b2FkU2l6ZScsJzgxOTInLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnUG9zaXhTdG9yYWdlRW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnUG9zaXhTdG9yYWdlRW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9zaXhTdG9yYWdlRW5hYmxlZCcsJ3RydWUnLCcz LjEnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc0kxOE5QcmVmaXgn LCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9zdGdyZXNM aWtlU3ludGF4JywnSUxJS0UnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUG9zdGdyZXNQYWdpbmdTeW50YXgnLEUnIE9GRlNFVCAoJTEkcyAtMSkgTElNSVQgJTIk cycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc1Bh Z2luZ1R5cGUnLCdPZmZzZXQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUG9zdGdyZXNTZWFyY2hUZW1wbGF0ZScsRSdTRUxFQ1QgKiBGUk9NICglMiRzKSAlMSRz KSBhcyBUMSAlMyRzJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBBbGxvdyBSdW5uaW5nIEd1ZXN0 cyBXaXRob3V0IFRvb2xzCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGll bnRBbGxvd1J1bm5pbmdHdWVzdHNXaXRob3V0VG9vbHMnLCdmYWxzZScsJ2dlbmVyYWwnKTsKK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVudEFsbG93VXNpbmdBc0lSUycs J2ZhbHNlJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBBdXRvLUFkanVzdE1lbW9yeSBCYXNlIE9u IEF2YWlsYWJsZSBNZW1vcnkKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNs aWVudEF1dG9BZGp1c3RNZW1vcnlCYXNlT25BdmFpbGFibGVNZW1vcnknLCdmYWxzZScsJ2dlbmVy YWwnKTsKKy0tSGFuZGxpbmcgQ2xpZW50IEF1dG8gQWRqdXN0IE1lbW9yeQorc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b0FkanVzdE1lbW9yeScsJ2ZhbHNlJywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0 b0FkanVzdE1lbW9yeUdlbmVyYWxSZXNlcnZlJywnNzY4JywnZ2VuZXJhbCcpOworLS1IYW5kbGlu ZyBBdXRvLUFkanVzdCBNZW1vcnkgTG9nCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn UG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5TG9nJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5TWF4 TWVtb3J5JywnMjA0OCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdQb3dlckNsaWVudEF1dG9BZGp1c3RNZW1vcnlNb2R1bHVzJywnNjQnLCdnZW5lcmFsJyk7Citz ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5 U3BpY2VQZXJNb25pdG9yUmVzZXJ2ZScsJzAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5U3BpY2VQZXJTZXNzaW9u UmVzZXJ2ZScsJzAnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIEF1dG8gQXBwcm92ZSBQYXR0ZXJu cworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b0FwcHJvdmVQ YXR0ZXJucycsJycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQ b3dlckNsaWVudEF1dG9JbnN0YWxsQ2VydGlmaWNhdGVPbkFwcHJvdmUnLCd0cnVlJywnZ2VuZXJh bCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b01pZ3Jh dGVGcm9tUG93ZXJDbGllbnRUb1Zkc1doZW5Db25uZWN0aW5nRnJvbVJlZ3VsYXJDbGllbnQnLCdm YWxzZScsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgQXV0b01pZ3JhdGUgVG8gUG93ZXJDbGllbnQg T24gQ29ubmVjdAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0 b01pZ3JhdGVUb1Bvd2VyQ2xpZW50T25Db25uZWN0JywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvUmVnaXN0cmF0aW9uRGVm YXVsdFZkc0dyb3VwSUQnLCc5OTQwODkyOS04MkNGLTREQzctQTUzMi05RDk5ODA2M0ZBOTUnLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnREZWRp Y2F0ZWRWbUxhdW5jaE9uVmRzV2hpbGVQb3dlckNsaWVudFN0YXJ0cycsJ2ZhbHNlJywnZ2VuZXJh bCcpOworLS1IYW5kbGluZyBFbmFibGUgUG93ZXIgQ2xpZW50IEdVSQorc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50R1VJJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRMb2dEZXRlY3Rpb24nLCdmYWxz ZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVu dE1heE51bWJlck9mQ29uY3VycmVudFZNcycsJzEnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRSdW5WbVNob3VsZFZlcmlmeVBlbmRpbmdWTXNB c1dlbGwnLCdmYWxzZScsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgU3BpY2UgRHluYW1pYyBDb21w cmVzc2lvbiBNYW5hZ2VtZW50CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJD bGllbnRTcGljZUR5bmFtaWNDb21wcmVzc2lvbk1hbmFnZW1lbnQnLCdmYWxzZScsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQcmVkZWZpbmVkVk1Qcm9wZXJ0aWVz JywnJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJlZGVmaW5lZFZN UHJvcGVydGllcycsJ3NhcF9hZ2VudD1eKHRydWV8ZmFsc2UpJDtzbmRidWY9XlswLTldKyQ7dmhv c3Q9XigoW2EtekEtWjAtOV9dKik6KHRydWV8ZmFsc2UpKSgsKChbYS16QS1aMC05X10qKToodHJ1 ZXxmYWxzZSkpKSokO3Zpb2Rpc2tjYWNoZT1eKG5vbmV8d3JpdGViYWNrfHdyaXRldGhyb3VnaCkk JywnMy4wJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJlZGVmaW5lZFZNUHJv cGVydGllcycsJ3NhcF9hZ2VudD1eKHRydWV8ZmFsc2UpJDtzbmRidWY9XlswLTldKyQ7dmhvc3Q9 XigoW2EtekEtWjAtOV9dKik6KHRydWV8ZmFsc2UpKSgsKChbYS16QS1aMC05X10qKToodHJ1ZXxm YWxzZSkpKSokO3Zpb2Rpc2tjYWNoZT1eKG5vbmV8d3JpdGViYWNrfHdyaXRldGhyb3VnaCkkJywn My4xJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleTIwMDMnLCcn LCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleTIw MDN4NjQnLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJv ZHVjdEtleTIwMDgnLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnUHJvZHVjdEtleTIwMDhSMicsJycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdQcm9kdWN0S2V5MjAwOHg2NCcsJycsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcg UHJvZHVjdCBLZXkgKGZvciBXaW5kb3dzIFhQKQorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1Byb2R1Y3RLZXknLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUHJvZHVjdEtleVdpbmRvdzcnLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleVdpbmRvdzd4NjQnLCcnLCdnZW5lcmFsJyk7CitzZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdFJQTVZlcnNpb24nLCczLjAuMC4wJywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1B1YmxpY1VSTFBvcnQn LCc4MDgwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1F1b3Rh R3JhY2VTdG9yYWdlJywnMjAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUXVvdGFHcmFjZVZkc0dyb3VwJywnMjAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUXVvdGFUaHJlc2hvbGRTdG9yYWdlJywnODAnLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUXVvdGFUaHJlc2hvbGRWZHNHcm91cCcs JzgwJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBDb25uZWN0IHRvIFJEUCBjb25zb2xlIHdpdGgg RnVsbHkgUXVhbGlmaWVkIFVzZXItTmFtZSAodXNlckBkb21haW4pCitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnUkRQTG9naW5XaXRoRlFOJywndHJ1ZScsJ2dlbmVyYWwnKTsKK3NlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdSZWRpcmVjdFNlcnZsZXRSZXBvcnRzUGFnZUVycm9y JywnUmVwb3J0cyBub3QgaW5zdGFsbGVkLCBwbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0 b3InLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUmVkaXJlY3RT ZXJ2bGV0UmVwb3J0c1BhZ2UnLCcnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnUmVuZXdHdWVzdElwT25WZHNTdWJuZXRDaGFuZ2UnLCdmYWxzZScsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdSZW5ld0d1ZXN0SXBPblZkc1N1Ym5l dENoYW5nZU9uUGFyc2VFcnJvcicsJ2ZhbHNlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1JoZXZoTG9jYWxGU1BhdGgnLCcvZGF0YS9pbWFnZXMvJywnZ2VuZXJh bCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NBTldpcGVBZnRlckRlbGV0ZScs J2ZhbHNlJywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBTQVNMIFFPUAorc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1NBU0xfUU9QJywnYXV0aC1jb25mJywnZ2VuZXJhbCcpOworc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NjcmlwdHNQYXRoJywnL3Vzci9zaGFyZS9lbmdpbmUn LCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2VhcmNoZXNSZWZy ZXNoUmF0ZUluU2Vjb25kcycsJzEnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnU2VhcmNoUmVzdWx0c0xpbWl0JywnMTAwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlbGVjdENvbW1hbmRUaW1lb3V0JywnMTIwJywnZ2VuZXJh bCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlbmRTTVBPblJ1blZtJywndHJ1 ZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTZW5kVm1UaWNr ZXRVSUQnLCdmYWxzZScsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Nl bmRWbVRpY2tldFVJRCcsJ2ZhbHNlJywnMy4wJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnU2VuZFZtVGlja2V0VUlEJywndHJ1ZScsJzMuMScpOworc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ1NlcnZlckNQVUxpc3QnLCcyOkludGVsIFhlb24gdy9vIFhEL05YOnZteCxz c2UyOnFlbXU2NCwtbngsK3NzZTI7IDM6SW50ZWwgWGVvbjp2bXgsc3NlMixueDpxZW11NjQsK3Nz ZTI7IDQ6SW50ZWwgQ29ucm9lIEZhbWlseTp2bXgsc3NlMixueCxjeDE2LHNzc2UzOnFlbXU2NCwr c3NlMiwrY3gxNiwrc3NzZTM7IDU6SW50ZWwgUGVucnluIEZhbWlseTp2bXgsc3NlMixueCxjeDE2 LHNzc2UzLHNzZTRfMTpxZW11NjQsK3NzZTIsK2N4MTYsK3Nzc2UzLCtzc2U0LjE7IDY6SW50ZWwg TmVoYWxlbSBGYW1pbHk6dm14LHNzZTIsbngsY3gxNixzc3NlMyxzc2U0XzEsc3NlNF8yLHBvcGNu dDpxZW11NjQsK3NzZTIsK2N4MTYsK3Nzc2UzLCtzc2U0LjEsK3NzZTQuMiwrcG9wY250OyAyOkFN RCBPcHRlcm9uIEcxIHcvbyBOWDpzdm0sc3NlMjpxZW11NjQsLW54LCtzc2UyOyAzOkFNRCBPcHRl cm9uIEcxOnN2bSxzc2UyLG54OnFlbXU2NCwrc3NlMjsgNDpBTUQgT3B0ZXJvbiBHMjpzdm0sc3Nl MixueCxjeDE2OnFlbXU2NCwrc3NlMiwrY3gxNjsgNTpBTUQgT3B0ZXJvbiBHMzpzdm0sc3NlMixu eCxjeDE2LHNzZTRhLG1pc2FsaWduc3NlLHBvcGNudCxhYm06cWVtdTY0LCtzc2UyLCtjeDE2LCtz c2U0YSwrbWlzYWxpZ25zc2UsK3BvcGNudCwrYWJtOycsJzIuMicpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1NlcnZlckNQVUxpc3QnLCczOkludGVsIENvbnJvZSBGYW1pbHk6dm14 LG54LG1vZGVsX0NvbnJvZTpDb25yb2U7IDQ6SW50ZWwgUGVucnluIEZhbWlseTp2bXgsbngsbW9k ZWxfUGVucnluOlBlbnJ5bjsgNTpJbnRlbCBOZWhhbGVtIEZhbWlseTp2bXgsbngsbW9kZWxfTmVo YWxlbTpOZWhhbGVtOyA2OkludGVsIFdlc3RtZXJlIEZhbWlseTphZXMsdm14LG54LG1vZGVsX1dl c3RtZXJlOldlc3RtZXJlOyAyOkFNRCBPcHRlcm9uIEcxOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cx Ok9wdGVyb25fRzE7IDM6QU1EIE9wdGVyb24gRzI6c3ZtLG54LG1vZGVsX09wdGVyb25fRzI6T3B0 ZXJvbl9HMjsgNDpBTUQgT3B0ZXJvbiBHMzpzdm0sbngsbW9kZWxfT3B0ZXJvbl9HMzpPcHRlcm9u X0czOycsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlcnZlckNQVUxp c3QnLCczOkludGVsIENvbnJvZSBGYW1pbHk6dm14LG54LG1vZGVsX0NvbnJvZTpDb25yb2U7IDQ6 SW50ZWwgUGVucnluIEZhbWlseTp2bXgsbngsbW9kZWxfUGVucnluOlBlbnJ5bjsgNTpJbnRlbCBO ZWhhbGVtIEZhbWlseTp2bXgsbngsbW9kZWxfTmVoYWxlbTpOZWhhbGVtOyA2OkludGVsIFdlc3Rt ZXJlIEZhbWlseTphZXMsdm14LG54LG1vZGVsX1dlc3RtZXJlOldlc3RtZXJlOyAyOkFNRCBPcHRl cm9uIEcxOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cxOk9wdGVyb25fRzE7IDM6QU1EIE9wdGVyb24g RzI6c3ZtLG54LG1vZGVsX09wdGVyb25fRzI6T3B0ZXJvbl9HMjsgNDpBTUQgT3B0ZXJvbiBHMzpz dm0sbngsbW9kZWxfT3B0ZXJvbl9HMzpPcHRlcm9uX0czOycsJzMuMScpOworc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1NlcnZlclJlYm9vdFRpbWVvdXQnLCczMDAnLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2V0dXBOZXR3b3Jrc1BvbGxpbmdUaW1l b3V0JywnMycsJ2dlbmVyYWwnKTsKKy0tIEFkZCBzaGFyZWFibGUgZGlzayBwcm9wZXJ0eSBpbiB2 ZGNfb3B0aW9ucyB0byBzdXBwb3J0IG9ubHkgMy4xIHZlcnNpb24uCitzZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnU2hhcmVhYmxlRGlza0VuYWJsZWQnLCdmYWxzZScsJzIuMicpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NoYXJlYWJsZURpc2tFbmFibGVkJywnZmFsc2Un LCczLjAnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTaGFyZWFibGVEaXNrRW5h YmxlZCcsJ3RydWUnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTaWdu Q2VydFRpbWVvdXRJblNlY29uZHMnLCczMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdTaWduTG9ja0ZpbGUnLCcvdmFyL2xvY2svZW5naW5lLy5vcGVuc3NsLmV4 Y2x1c2l2ZWxvY2snLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIFNjcmlwdCBuYW1lIGZvciBzaWdu aW5nCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2lnblNjcmlwdE5hbWUnLCdTaWdu UmVxLnNoJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NwaWNl RHJpdmVyTmFtZUluR3Vlc3QnLCdSSEVWLVNwaWNlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1NwaWNlUmVsZWFzZUN1cnNvcktleXMnLCdzaGlmdCtmMTInLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3BpY2VUb2dnbGVGdWxs U2NyZWVuS2V5cycsJ3NoaWZ0K2YxMScsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgRW5hYmxlIFVT QiBkZXZpY2VzIHNoYXJpbmcgYnkgZGVmYXVsdCBpbiBTUElDRQorc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ1NwaWNlVXNiQXV0b1NoYXJlJywndHJ1ZScsJ2dlbmVyYWwnKTsKK3NlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdXQU5EaXNhYmxlRWZmZWN0cycsJ2FuaW1hdGlvbics J2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdXQU5Db2xvckRlcHRo JywnMTYnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3BtQ29t bWFuZEZhaWxPdmVyUmV0cmllcycsJzMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnU1BNRmFpbE92ZXJBdHRlbXB0cycsJzMnLCdnZW5lcmFsJyk7CitzZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3BtVkNwdUNvbnN1bXB0aW9uJywnMScsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTUUxTZXJ2ZXJJMThOUHJlZml4Jywn TicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTUUxTZXJ2ZXJM aWtlU3ludGF4JywnTElLRScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdTUUxTZXJ2ZXJQYWdpbmdTeW50YXgnLEUnIFdIRVJFIFJvd051bSBCRVRXRUVOICUxJHMg QU5EICUyJHMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU1FM U2VydmVyUGFnaW5nVHlwZScsJ1JhbmdlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ1NRTFNlcnZlclNlYXJjaFRlbXBsYXRlJyxFJ1NFTEVDVCAqIEZST00gKFNF TEVDVCAqLCBST1dfTlVNQkVSKCkgT1ZFUiglMSRzKSBhcyBSb3dOdW0gRlJPTSAoJTIkcykpIGFz IFQxKSBhcyBUMiAlMyRzJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1NTSEluYWN0aXZpdHlUaW1vdXRTZWNvbmRzJywnNjAwJywnZ2VuZXJhbCcpOworLS1IYW5k bGluZyBTUElDRSBTU0wgRW5hYmxlZAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NT TEVuYWJsZWQnLCd0cnVlJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1N0b3JhZ2VEb21haW5GYWx1cmVUaW1lb3V0SW5NaW51dGVzJywnNScsJ2dlbmVyYWwnKTsK K3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdG9yYWdlRG9tYWluTmFtZVNpemVMaW1p dCcsJzUwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N0b3Jh Z2VQb29sTmFtZVNpemVMaW1pdCcsJzQwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ1N0b3JhZ2VQb29sTm9uT3BlcmF0aW9uYWxSZXNldFRpbWVvdXRJbk1pbics JzMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3RvcmFnZVBv b2xSZWZyZXNoVGltZUluU2Vjb25kcycsJzEwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1N1Y2NlZWRlZEpvYkNsZWFudXBUaW1lSW5NaW51dGVzJywnMTAnLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydEN1c3RvbVBy b3BlcnRpZXMnLCdmYWxzZScsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J1N1cHBvcnRDdXN0b21Qcm9wZXJ0aWVzJywndHJ1ZScsJzMuMCcpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRDdXN0b21Qcm9wZXJ0aWVzJywndHJ1ZScsJzMuMScpOwor c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRlZENsdXN0ZXJMZXZlbHMnLCcy LjIsMy4wJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBv cnRlZFN0b3JhZ2VGb3JtYXRzJywnMCcsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1N1cHBvcnRlZFN0b3JhZ2VGb3JtYXRzJywnMCwyJywnMy4wJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydGVkU3RvcmFnZUZvcm1hdHMnLCcwLDMnLCczLjEn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdXBwb3J0ZWRWRFNNVmVyc2lvbnMn LCc0LjUsNC45JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1 cHBvcnRHZXREZXZpY2VzVmlzaWJpbGl0eScsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydEdldERldmljZXNWaXNpYmlsaXR5JywndHJ1ZScsJzMu MCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRHZXREZXZpY2VzVmlz aWJpbGl0eScsJ3RydWUnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdT dXBwb3J0U3RvcmFnZUZvcm1hdCcsJ2ZhbHNlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnU3VwcG9ydFN0b3JhZ2VGb3JtYXQnLCd0cnVlJywnMy4wJyk7CitzZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydFN0b3JhZ2VGb3JtYXQnLCd0cnVlJywnMy4x Jyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydEZvcmNlQ3JlYXRlVkcn LCdmYWxzZScsJzIuMicpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRG b3JjZUNyZWF0ZVZHJywnZmFsc2UnLCczLjAnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdTdXBwb3J0Rm9yY2VDcmVhdGVWRycsJ3RydWUnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdTeXNQcmVwMkszUGF0aCcsJ2JhY2tlbmQvbWFuYWdlci9jb25mL3N5 c3ByZXAvc3lzcHJlcC4yazMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnU3lzUHJlcDJLOFBhdGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3By ZXAuMms4JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1By ZXAySzhSMlBhdGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAuMms4Jywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXAySzh4NjRQ YXRoJywnYmFja2VuZC9tYW5hZ2VyL2NvbmYvc3lzcHJlcC9zeXNwcmVwLjJrOHg4NicsJ2dlbmVy YWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTeXNQcmVwRGVmYXVsdFBhc3N3 b3JkJywnJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1By ZXBEZWZhdWx0VXNlcicsJycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdTeXNQcmVwV2luZG93czdQYXRoJywnYmFja2VuZC9tYW5hZ2VyL2NvbmYvc3lzcHJlcC9z eXNwcmVwLnc3JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5 c1ByZXBXaW5kb3dzN3g2NFBhdGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3By ZXAudzd4NjQnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIFBhdGggdG8gYW4gWFAgbWFjaGluZSBT eXMtUHJlcCBmaWxlLgorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXBYUFBh dGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAueHAnLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVGltZW91dFRvUmVzZXRWZHNJblNlY29u ZHMnLCc2MCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdUaW1l VG9SZWR1Y2VGYWlsZWRSdW5PblZkc0luTWludXRlcycsJzMwJywnZ2VuZXJhbCcpOworc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1RydXN0c3RvcmVQYXNzJywnTm9Tb3VwNFUnLCdnZW5l cmFsJyk7CistLUhhbmRsaW5nIFRydXN0c3RvcmUgVVJMCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnVHJ1c3RzdG9yZVVybCcsJy5rZXlzdG9yZScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdVa25vd25UYXNrUHJlUG9sbGluZ0xhcHNlJywnNjAwMDAn LCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNlckRlZmluZWRW TVByb3BlcnRpZXMnLCcnLCcyLjInKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdV c2VyRGVmaW5lZFZNUHJvcGVydGllcycsJycsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1VzZXJEZWZpbmVkVk1Qcm9wZXJ0aWVzJywnJywnMy4xJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNlclJlZnJlc2hSYXRlJywnMzYwMCcsJ2dlbmVyYWwnKTsK K3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdVc2VyU2Vzc2lvblRpbWVPdXRJbnRlcnZh bCcsJzMwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1VzZVJ0 bDgxMzlfcHYnLCd0cnVlJywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn VXNlUnRsODEzOV9wdicsJ2ZhbHNlJywnMy4wJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnVXNlUnRsODEzOV9wdicsJ2ZhbHNlJywnMy4xJyk7CistLUhhbmRsaW5nIFVzZSBTZWN1 cmUgQ29ubmVjdGlvbiB3aXRoIEhvc3RzCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn VXNlU2VjdXJlQ29ubmVjdGlvbldpdGhTZXJ2ZXJzJywndHJ1ZScsJ2dlbmVyYWwnKTsKK3NlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdVc2VWZHNCcm9rZXJJblByb2MnLCd0cnVlJywnZ2Vu ZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1V0aWxpemF0aW9uVGhyZXNo b2xkSW5QZXJjZW50JywnODAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnVmFsaWROdW1PZk1vbml0b3JzJywnMSwyLDQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmNwdUNvbnN1bXB0aW9uUGVyY2VudGFnZScsJzEwJywnZ2Vu ZXJhbCcpOworLS1IYW5kbGluZyBIb3N0IEluc3RhbGxhdGlvbiBCb290c3RyYXAgU2NyaXB0IFVS TAorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZkY0Jvb3RTdHJhcFVybCcsJ2h0dHA6 Ly9leGFtcGxlLmNvbS9lbmdpbmUvdmRzX3NjcmlwdHMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRjVmVyc2lvbicsJzMuMC4wLjAnLCdnZW5lcmFsJyk7Citz ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVkRTQXR0ZW1wdHNUb1Jlc2V0Q291bnQnLCcy JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0NlcnRpZmlj YXRlVmFsaWRpdHlJblllYXJzJywnNScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdWZHNGZW5jZU9wdGlvbk1hcHBpbmcnLCdhbG9tOnNlY3VyZT1zZWN1cmUscG9y dD1pcHBvcnQ7YXBjOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2JsYWRlY2Vu dGVyOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2RyYWM1OnNlY3VyZT1zZWN1 cmUscG9ydD1pcHBvcnQ7ZXBzOnNsb3Q9cG9ydDtpbG86c2VjdXJlPXNzbCxwb3J0PWlwcG9ydDtp cG1pbGFuOjtyc2E6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtyc2I6O3d0aTpzZWN1cmU9c2Vj dXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtjaXNjb191Y3M6c2VjdXJlPXNzbCxzbG90PXBvcnQn LCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzRmVuY2VPcHRp b25zJywnJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0Zl bmNlT3B0aW9uVHlwZXMnLCdzZWN1cmU9Ym9vbCxwb3J0PWludCxzbG90PWludCcsJ2dlbmVyYWwn KTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWZHNGZW5jZVR5cGUnLCdhbG9tLGFw YyxibGFkZWNlbnRlcixkcmFjNSxlcHMsaWxvLGlwbWlsYW4scnNhLHJzYix3dGksY2lzY29fdWNz JywnMi4yJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzRmVuY2VUeXBlJywn YWxvbSxhcGMsYmxhZGVjZW50ZXIsZHJhYzUsZXBzLGlsbyxpcG1pbGFuLHJzYSxyc2Isd3RpLGNp c2NvX3VjcycsJzMuMCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNl VHlwZScsJ2Fsb20sYXBjLGJsYWRlY2VudGVyLGRyYWM1LGVwcyxpbG8saXBtaWxhbixyc2EscnNi LHd0aSxjaXNjb191Y3MnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdW ZHNMb2FkQmFsYW5jaW5nZUludGVydmFsSW5NaW51dGVzJywnMScsJ2dlbmVyYWwnKTsKK3NlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWZHNMb2NhbERpc2tzQ3JpdGljYWxseUxvd0ZyZWVT cGFjZScsJzEwMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdW ZHNMb2NhbERpc2tzTG93RnJlZVNwYWNlJywnNTAwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1Zkc1JlY292ZXJ5VGltZW91dEluTWludHVlcycsJzMnLCdnZW5l cmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzUmVmcmVzaFJhdGUnLCcy JywnZ2VuZXJhbCcpOworLS1IYW5kbGluZyBIb3N0IFNlbGVjdGlvbiBBbGdvcml0aG0gZGVmYXVs dCBmb3IgY2x1c3Rlcgorc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc1NlbGVjdGlv bkFsZ29yaXRobScsJ05vbmUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgndmRzVGltZW91dCcsJzE4MCcsJ2dlbmVyYWwnKTsKKy0tSGFuZGxpbmcgVmlydHVhbCBN YWNoaW5lIERvbWFpbiBOYW1lCitzZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmlydHVh bE1hY2hpbmVEb21haW5OYW1lJywnVmlydHVhbE1hY2hpbmVEb21haW5OYW1lJywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNMzJCaXRNYXhNZW1vcnlTaXplSW5N QicsJzIwNDgwJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZN NjRCaXRNYXhNZW1vcnlTaXplSW5NQicsJzI2MjE0NCcsJzIuMicpOworc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhNZW1vcnlTaXplSW5NQicsJzUyNDI4OCcsJzMuMCcp Oworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhNZW1vcnlTaXplSW5N QicsJzUyNDI4OCcsJzMuMScpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZtR3Jh Y2VmdWxTaHV0ZG93bk1lc3NhZ2UnLCdUaGUgb1ZpcnQgRW5naW5lIGlzIHNodXR0aW5nIGRvd24g dGhpcyBWaXJ0dWFsIE1hY2hpbmUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnVm1HcmFjZWZ1bFNodXRkb3duVGltZW91dCcsJzMwJywnZ2VuZXJhbCcpOworc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNTWluTWVtb3J5U2l6ZUluTUInLCcyNTYnLCdn ZW5lcmFsJyk7CistLU51bWJlciBvZiBzdWJzZXF1ZW50IGZhaWx1cmVzIGluIFZNIGNyZWF0aW9u IGluIGEgcG9vbCBiZWZvcmUgZ2l2aW5nIHVwIGFuZCBzdG9wIGNyZWF0aW5nIG5ldyBWTXMKK3Nl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWbVBvb2xNYXhTdWJzZXF1ZW50RmFpbHVyZXMn LCczJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZtUG9vbE1v bml0b3JCYXRjaFNpemUnLCc1JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1ZtUG9vbE1vbml0b3JJbnRlcnZhbEluTWludXRlcycsJzUnLCdnZW5lcmFsJyk7Citz ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVm1Qb29sTW9uaXRvck1heEF0dGVtcHRzJywn MycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWbVByaW9yaXR5 TWF4VmFsdWUnLCcxMDAnLCdnZW5lcmFsJyk7CistLUhhbmRsaW5nIEtleWJvYXJkIExheW91dCBj b25maWd1cmF0aW9uIGZvciBWTkMKK3NlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWbmNL ZXlib2FyZExheW91dCcsJ2VuLXVzJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1dhaXRGb3JWZHNJbml0SW5TZWMnLCc2MCcsJ2dlbmVyYWwnKTsKKy0tVGhlIGRl ZmF1bHQgbmV0d29yayBjb25uZWN0aXZpdHkgY2hlY2sgdGltZW91dAorc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ05ldHdvcmtDb25uZWN0aXZpdHlDaGVja1RpbWVvdXRJblNlY29uZHMn LCcxMjAnLCdnZW5lcmFsJyk7CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gICAg ICAgICAgICAgICAgICBVcGRhdGUgd2l0aCBvdmVycmlkZSBzZWN0aW9uCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKworc2VsZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ0RCRW5n aW5lJywnUG9zdGdyZXMnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192 YWx1ZSgnRGVidWdTZWFyY2hMb2dnaW5nJywnZmFsc2UnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5f ZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnRGVmYXVsdFRpbWVab25lJywnKEdNVCkgR01UIFN0YW5k YXJkIFRpbWUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgn RU5HSU5FRUFSTGliJywnJUpCT1NTX0hPTUUlL3N0YW5kYWxvbmUvZGVwbG95bWVudHMvZW5naW5l LmVhcicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdGZW5j ZUFnZW50RGVmYXVsdFBhcmFtcycsJ2lsbzM6bGFucGx1cyxwb3dlcl93YWl0PTQnLCdnZW5lcmFs Jyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnSXNNdWx0aWxldmVsQWRtaW5p c3RyYXRpb25PbicsJ3RydWUnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZp Z192YWx1ZSgnTWluaW1hbEVUTFZlcnNpb24nLCczLjEuMCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc1BhZ2luZ1N5bnRheCcsJ09GRlNFVCAo JTEkcyAtMSkgTElNSVQgJTIkcycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29u ZmlnX3ZhbHVlKCdQb3N0Z3Jlc1NlYXJjaFRlbXBsYXRlJywnU0VMRUNUICogRlJPTSAoJTIkcykg JTEkcykgYXMgVDEgJTMkcycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmln X3ZhbHVlKCdSaGV2aExvY2FsRlNQYXRoJywnL2RhdGEvaW1hZ2VzL3JoZXYnLCdnZW5lcmFsJyk7 CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2VydmVyQ1BVTGlzdCcsJzI6SW50 ZWwgWGVvbiB3L28gWEQvTlg6dm14LHNzZTI6cWVtdTY0LC1ueCwrc3NlMjsgMzpJbnRlbCBYZW9u OnZteCxzc2UyLG54OnFlbXU2NCwrc3NlMjsgNDpJbnRlbCBDb25yb2UgRmFtaWx5OnZteCxzc2Uy LG54LGN4MTYsc3NzZTM6cWVtdTY0LCtzc2UyLCtjeDE2LCtzc3NlMzsgNTpJbnRlbCBQZW5yeW4g RmFtaWx5OnZteCxzc2UyLG54LGN4MTYsc3NzZTMsc3NlNF8xOnFlbXU2NCwrc3NlMiwrY3gxNiwr c3NzZTMsK3NzZTQuMTsgNjpJbnRlbCBOZWhhbGVtIEZhbWlseTp2bXgsc3NlMixueCxjeDE2LHNz c2UzLHNzZTRfMSxzc2U0XzIscG9wY250OnFlbXU2NCwrc3NlMiwrY3gxNiwrc3NzZTMsK3NzZTQu MSwrc3NlNC4yLCtwb3BjbnQ7IDI6QU1EIE9wdGVyb24gRzEgdy9vIE5YOnN2bSxzc2UyOnFlbXU2 NCwtbngsK3NzZTI7IDM6QU1EIE9wdGVyb24gRzE6c3ZtLHNzZTIsbng6cWVtdTY0LCtzc2UyOyA0 OkFNRCBPcHRlcm9uIEcyOnN2bSxzc2UyLG54LGN4MTY6cWVtdTY0LCtzc2UyLCtjeDE2OyA1OkFN RCBPcHRlcm9uIEczOnN2bSxzc2UyLG54LGN4MTYsc3NlNGEsbWlzYWxpZ25zc2UscG9wY250LGFi bTpxZW11NjQsK3NzZTIsK2N4MTYsK3NzZTRhLCttaXNhbGlnbnNzZSwrcG9wY250LCthYm07Jywn Mi4yJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2VydmVyQ1BVTGlzdCcs JzM6SW50ZWwgQ29ucm9lIEZhbWlseTp2bXgsbngsbW9kZWxfQ29ucm9lOkNvbnJvZTsgNDpJbnRl bCBQZW5yeW4gRmFtaWx5OnZteCxueCxtb2RlbF9QZW5yeW46UGVucnluOyA1OkludGVsIE5laGFs ZW0gRmFtaWx5OnZteCxueCxtb2RlbF9OZWhhbGVtOk5laGFsZW07IDY6SW50ZWwgV2VzdG1lcmUg RmFtaWx5OmFlcyx2bXgsbngsbW9kZWxfV2VzdG1lcmU6V2VzdG1lcmU7IDI6QU1EIE9wdGVyb24g RzE6c3ZtLG54LG1vZGVsX09wdGVyb25fRzE6T3B0ZXJvbl9HMTsgMzpBTUQgT3B0ZXJvbiBHMjpz dm0sbngsbW9kZWxfT3B0ZXJvbl9HMjpPcHRlcm9uX0cyOyA0OkFNRCBPcHRlcm9uIEczOnN2bSxu eCxtb2RlbF9PcHRlcm9uX0czOk9wdGVyb25fRzM7JywnMy4wJyk7CitzZWxlY3QgZm5fZGJfdXBk YXRlX2NvbmZpZ192YWx1ZSgnU2VydmVyQ1BVTGlzdCcsJzM6SW50ZWwgQ29ucm9lIEZhbWlseTp2 bXgsbngsbW9kZWxfQ29ucm9lOkNvbnJvZTsgNDpJbnRlbCBQZW5yeW4gRmFtaWx5OnZteCxueCxt b2RlbF9QZW5yeW46UGVucnluOyA1OkludGVsIE5laGFsZW0gRmFtaWx5OnZteCxueCxtb2RlbF9O ZWhhbGVtOk5laGFsZW07IDY6SW50ZWwgV2VzdG1lcmUgRmFtaWx5OmFlcyx2bXgsbngsbW9kZWxf V2VzdG1lcmU6V2VzdG1lcmU7IDc6SW50ZWwgU2FuZHlCcmlkZ2UgRmFtaWx5OnZteCxueCxtb2Rl bF9TYW5keUJyaWRnZTpTYW5keUJyaWRnZTsgMjpBTUQgT3B0ZXJvbiBHMTpzdm0sbngsbW9kZWxf T3B0ZXJvbl9HMTpPcHRlcm9uX0cxOyAzOkFNRCBPcHRlcm9uIEcyOnN2bSxueCxtb2RlbF9PcHRl cm9uX0cyOk9wdGVyb25fRzI7IDQ6QU1EIE9wdGVyb24gRzM6c3ZtLG54LG1vZGVsX09wdGVyb25f RzM6T3B0ZXJvbl9HMzsnLCczLjEnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVl KCdTZXJ2ZXJDUFVMaXN0JywnMzpJbnRlbCBDb25yb2UgRmFtaWx5OnZteCxueCxtb2RlbF9Db25y b2U6Q29ucm9lOyA0OkludGVsIFBlbnJ5biBGYW1pbHk6dm14LG54LG1vZGVsX1BlbnJ5bjpQZW5y eW47IDU6SW50ZWwgTmVoYWxlbSBGYW1pbHk6dm14LG54LG1vZGVsX05laGFsZW06TmVoYWxlbTsg NjpJbnRlbCBXZXN0bWVyZSBGYW1pbHk6YWVzLHZteCxueCxtb2RlbF9XZXN0bWVyZTpXZXN0bWVy ZTsgNzpJbnRlbCBTYW5keUJyaWRnZSBGYW1pbHk6dm14LG54LG1vZGVsX1NhbmR5QnJpZGdlOlNh bmR5QnJpZGdlOyAyOkFNRCBPcHRlcm9uIEcxOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cxOk9wdGVy b25fRzE7IDM6QU1EIE9wdGVyb24gRzI6c3ZtLG54LG1vZGVsX09wdGVyb25fRzI6T3B0ZXJvbl9H MjsgNDpBTUQgT3B0ZXJvbiBHMzpzdm0sbngsbW9kZWxfT3B0ZXJvbl9HMzpPcHRlcm9uX0czOyA1 OkFNRCBPcHRlcm9uIEc0OnN2bSxueCxtb2RlbF9PcHRlcm9uX0c0Ok9wdGVyb25fRzQ7JywnMy4x Jyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2lnbkxvY2tGaWxlJywnL3Zh ci9sb2NrL292aXJ0LWVuZ2luZS8ub3BlbnNzbC5leGNsdXNpdmVsb2NrJywnZ2VuZXJhbCcpOwor c2VsZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1NwaWNlRHJpdmVyTmFtZUluR3Vlc3Qn LCd7IndpbmRvd3MiOiAiUkhFVi1TcGljZSIsICJsaW51eCIgOiAieG9yZy14MTEtZHJ2LXF4bCIg fScsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdTdXBwb3J0 ZWRDbHVzdGVyTGV2ZWxzJywnMi4yLDMuMCwzLjEnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJf dXBkYXRlX2NvbmZpZ192YWx1ZSgnU3VwcG9ydGVkU3RvcmFnZUZvcm1hdHMnLCcwLDMnLCczLjEn KTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdTdXBwb3J0ZWRWRFNNVmVyc2lv bnMnLCc0LjUsNC45LDQuMTAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZp Z192YWx1ZSgnVmRjVmVyc2lvbicsJzMuMS4wLjAnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJf dXBkYXRlX2NvbmZpZ192YWx1ZSgnUHJvZHVjdFJQTVZlcnNpb24nLCczLjEuMC4wJywnZ2VuZXJh bCcpOworc2VsZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlT3B0aW9uTWFw cGluZycsJ2Fsb206c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDthcGM6c2VjdXJlPXNlY3VyZSxw b3J0PWlwcG9ydCxzbG90PXBvcnQ7YmxhZGVjZW50ZXI6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9y dCxzbG90PXBvcnQ7ZHJhYzU6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtlcHM6c2xvdD1wb3J0 O2lsbzpzZWN1cmU9c3NsLHBvcnQ9aXBwb3J0O2lwbWlsYW46O3JzYTpzZWN1cmU9c2VjdXJlLHBv cnQ9aXBwb3J0O3JzYjo7d3RpOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2Np c2NvX3VjczpzZWN1cmU9c3NsLHNsb3Q9cG9ydCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl91 cGRhdGVfY29uZmlnX3ZhbHVlKCdWZHNGZW5jZU9wdGlvbk1hcHBpbmcnLCdhbG9tOnNlY3VyZT1z ZWN1cmUscG9ydD1pcHBvcnQ7YXBjOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0 O2JsYWRlY2VudGVyOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2RyYWM1OnNl Y3VyZT1zZWN1cmUscG9ydD1pcHBvcnQ7ZXBzOnNsb3Q9cG9ydDtpbG86c2VjdXJlPXNzbCxwb3J0 PWlwcG9ydDtpcG1pbGFuOjtyc2E6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtyc2I6O3d0aTpz ZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtjaXNjb191Y3M6c2VjdXJlPXNzbCxz bG90PXBvcnQ7aWxvMzonLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192 YWx1ZSgnVmRzRmVuY2VPcHRpb25NYXBwaW5nJywnYWxvbTpzZWN1cmU9c2VjdXJlLHBvcnQ9aXBw b3J0O2FwYzpzZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtibGFkZWNlbnRlcjpz ZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtkcmFjNTpzZWN1cmU9c2VjdXJlLHNs b3Q9cG9ydDtlcHM6c2xvdD1wb3J0O2lsbzpzZWN1cmU9c3NsLHBvcnQ9aXBwb3J0O2lwbWlsYW46 O3JzYTpzZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0O3JzYjo7d3RpOnNlY3VyZT1zZWN1cmUscG9y dD1pcHBvcnQsc2xvdD1wb3J0O2Npc2NvX3VjczpzZWN1cmU9c3NsLHNsb3Q9cG9ydCcsJ2dlbmVy YWwnKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdWZHNGZW5jZU9wdGlvbk1h cHBpbmcnLCdhbG9tOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQ7YXBjOnNlY3VyZT1zZWN1cmUs cG9ydD1pcHBvcnQsc2xvdD1wb3J0O2JsYWRlY2VudGVyOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBv cnQsc2xvdD1wb3J0O2RyYWM1OnNlY3VyZT1zZWN1cmUsc2xvdD1wb3J0O2VwczpzbG90PXBvcnQ7 aWxvOnNlY3VyZT1zc2wscG9ydD1pcHBvcnQ7aXBtaWxhbjo7cnNhOnNlY3VyZT1zZWN1cmUscG9y dD1pcHBvcnQ7cnNiOjt3dGk6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydCxzbG90PXBvcnQ7Y2lz Y29fdWNzOnNlY3VyZT1zc2wsc2xvdD1wb3J0O2lsbzM6JywnZ2VuZXJhbCcpOworc2VsZWN0IGZu X2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlVHlwZScsJ2Fsb20sYXBjLGJsYWRlY2Vu dGVyLGRyYWM1LGVwcyxpbG8saWxvMyxpcG1pbGFuLHJzYSxyc2Isd3RpLGNpc2NvX3VjcycsJzMu MCcpOworc2VsZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlVHlwZScsJ2Fs b20sYXBjLGJsYWRlY2VudGVyLGRyYWM1LGVwcyxpbG8saXBtaWxhbixyc2EscnNiLHd0aSxjaXNj b191Y3MnLCcyLjInKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdWbUdyYWNl ZnVsU2h1dGRvd25NZXNzYWdlJywnVGhlIG9WaXJ0IEVuZ2luZSBpcyBzaHV0dGluZyBkb3duIHRo aXMgVmlydHVhbCBNYWNoaW5lJywnZ2VuZXJhbCcpOworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKy0tICAgVXBkYXRlIG9ubHkgaWYgZGVmYXVsdCBub3QgY2hhbmdlZCBzZWN0aW9uCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc2VsZWN0IGZuX2RiX3VwZGF0ZV9kZWZhdWx0 X2NvbmZpZ192YWx1ZSgnQWRVc2VySWQnLCdleGFtcGxlLmNvbTowMDAwMDAwMC0wMDAwLTAwMDAt MDAwMC0wMDAwMDAwMDAwMDAnLCcnLCdnZW5lcmFsJyxmYWxzZSk7CitzZWxlY3QgZm5fZGJfdXBk YXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdBZFVzZXJOYW1lJywnZXhhbXBsZS5jb206U2FtcGxl VXNlcicsJycsJ2dlbmVyYWwnLGZhbHNlKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9j b25maWdfdmFsdWUoJ0FkVXNlclBhc3N3b3JkJywnZXhhbXBsZS5jb206U2FtcGxlUGFzc3dvcmQn LCcnLCdnZW5lcmFsJyxmYWxzZSk7CistLSBJbmNyZWFzZSBBc3luY1Rhc2tab21iaWVUYXNrTGlm ZUluTWludXRlcyB0byA1MCBob3VycyBpZiBpdCdzIHRoZSBkZWZhdWx0IDUgaG91cnMuCitzZWxl Y3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdBc3luY1Rhc2tab21iaWVUYXNr TGlmZUluTWludXRlcycsJzMwMCcsJzMwMDAnLCdnZW5lcmFsJyxmYWxzZSk7CitzZWxlY3QgZm5f ZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdEb21haW5OYW1lJywnZXhhbXBsZS5jb20n LCcnLCdnZW5lcmFsJyxmYWxzZSk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmln X3ZhbHVlKCdFbXVsYXRlZE1hY2hpbmUnLCdyaGVsNi4wLjAnLCAncGMtMC4xNCcsJzMuMCcsZmFs c2UpOworc2VsZWN0IGZuX2RiX3VwZGF0ZV9kZWZhdWx0X2NvbmZpZ192YWx1ZSgnTERBUFNlY3Vy aXR5QXV0aGVudGljYXRpb24nLCdHU1NBUEknLCdkZWZhdWx0OkdTU0FQSScsJ2dlbmVyYWwnLGZh bHNlKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9jb25maWdfdmFsdWUoJ0xEQVBTZWN1 cml0eUF1dGhlbnRpY2F0aW9uJywnU0lNUExFJywnZGVmYXVsdDpTSU1QTEUnLCdnZW5lcmFsJyxm YWxzZSk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdvVmlydElT T3NSZXBvc2l0b3J5UGF0aCcsJ292aXJ0LWlzb3MnLCAnL3Vzci9zaGFyZS9yaGV2LWh5cGVydmlz b3InLCdnZW5lcmFsJyxmYWxzZSk7CitzZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmln X3ZhbHVlKCdWZHNMb2NhbERpc2tzQ3JpdGljYWxseUxvd0ZyZWVTcGFjZScsJzEwMCcsJzUwMCcs J2dlbmVyYWwnLGZhbHNlKTsKK3NlbGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9jb25maWdfdmFs dWUoJ1Zkc0xvY2FsRGlza3NMb3dGcmVlU3BhY2UnLCc1MDAnLCAnMTAwMCcsJ2dlbmVyYWwnLGZh bHNlKTsKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0gICAgICAgICAgICAgIENsZWFu dXAgZGVwcmVjYXRlZCBjb25maWd1cmF0aW9uIHZhbHVlcyBzZWN0aW9uCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ0VOTWFp bEVuYWJsZVNzbCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVl KCdFTk1haWxIb3N0JywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFs dWUoJ0VOTWFpbFBhc3N3b3JkJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25m aWdfdmFsdWUoJ0VOTWFpbFBvcnQnLCdnZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfZGVsZXRlX2Nv bmZpZ192YWx1ZSgnRU5NYWlsVXNlcicsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9kZWxldGVf Y29uZmlnX3ZhbHVlKCdGcmVlU3BhY2VDcml0aWNhbExvdycsJ2dlbmVyYWwnKTsKK3NlbGVjdCBm bl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdJbWFnZXNTeW5jcm9uaXphdGlvblRpbWVvdXQnLCdn ZW5lcmFsJyk7CitzZWxlY3QgZm5fZGJfZGVsZXRlX2NvbmZpZ192YWx1ZSgnTGRhcFNlcnZlcnMn LCczLjAnKTsKK3NlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdOZXRDb25zb2xlUG9y dCcsJ2dlbmVyYWwnKTsKK3NlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdQcmVkZWZp bmVkVk1Qcm9wZXJ0aWVzJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdf dmFsdWUoJ1JwbXNSZXBvc2l0b3J5VXJsJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2RlbGV0 ZV9jb25maWdfdmFsdWUoJ1N5c1ByZXAzLjBQYXRoJywnZ2VuZXJhbCcpOworc2VsZWN0IGZuX2Ri X2RlbGV0ZV9jb25maWdfdmFsdWUoJ1VzZUVOR0lORVJlcG9zaXRvcnlSUE1zJywnZ2VuZXJhbCcp Oworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ1Zkc0Vycm9yc0ZpbGVOYW1lJywn Z2VuZXJhbCcpOworc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhN ZW1vcnlTaXplSW5NQicsJ2dlbmVyYWwnKTsKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CistLSAgICAgICAgICAgICAgICAgIFNwbGl0IGNvbmZpZyBzZWN0aW9uCistLSBUaGUgcHVycG9z ZSBvZiB0aGlzIHNlY3Rpb24gaXMgdG8gdHJlYXQgY29uZmlnIG9wdGlvbiB0aGF0IHdhcyBvbmNl CistLSBnZW5lcmFsLCBhbmQgc2hvdWxkIG5vdyBiZSB2ZXJzaW9uLXNwZWNpZmljLgorLS0gVG8g ZWFzZSB0aGlzIHRoZSBmbl9kYl9zcGxpdF9jb25maWdfdmFsdWUgY2FuIGJlIHVzZWQsIGlucHV0 IGlzIHRoZQorLS0gb3B0aW9uX25hbWUsIHRoZSBvbGQgdmFsdWUgYW5kIHRoZSBuZXcgdmFsdWUu IFJlc3VsdCBpcyBjcmVhdGluZyBvbmUgcm93IGZvciBlYWNoIG9sZAorLS0gY2x1c3RlciBsZXZl bCB3aXRoIHRoZSBvcmlnaW5hbCB2YWx1ZSBpZiBleGlzdHMsIG9yIHRoZSBpbnB1dCBvbGQgdmFs dWUKKy0tIGFuZCBvbmUgcm93IGZvciB0aGUgbmV3ZXN0IG9uZSwgd2l0aCB0aGUgaW5wdXQgdmFs dWUuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK3NlbGVjdCBmbl9kYl9zcGxpdF9jb25m aWdfdmFsdWUoJ1NwaWNlU2VjdXJlQ2hhbm5lbHMnLCdzbWFpbixzaW5wdXRzJywnc21haW4sc2lu cHV0cyxzY3Vyc29yLHNwbGF5YmFjayxzcmVjb3JkLHNkaXNwbGF5Jyk7CisKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorLS0gICAgICAgICAgICAgICAgICBTaW1wbGUgZGlyZWN0IHVwZGF0 ZXMgc2VjdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0tIHVwZGF0ZSBrZXlz IGZyb20gaW50ZXJuYWwgdmVyc2lvbiAyLjMgdG8gb2ZmaWNpYWwgMy4wYAordXBkYXRlIHZkY19v cHRpb25zIHNldCB2ZXJzaW9uID0gJzMuMCcgd2hlcmUgdmVyc2lvbiA9ICcyLjMnOworCistLSB1 cGRhdGUgYm9vdHN0cmFwIHBhdGgKKwordXBkYXRlIHZkY19vcHRpb25zIHNldCBvcHRpb25fdmFs dWUgPSByZXBsYWNlIChvcHRpb25fdmFsdWUgLCAnLzQvNicsICcnKQord2hlcmUgb3B0aW9uX25h bWUgPSAnVmRjQm9vdFN0cmFwVXJsJzsKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCist LSAgICAgICAgICAgICAgICAgY29tcGxleCB1cGRhdGVzIHVzaW5nIGEgdGVtcG9yYXJ5IGZ1bmN0 aW9uIHNlY3Rpb24KKy0tICAgICAgICAgICAgICAgICBlYWNoIHRlbXBvcmFyeSBmdW5jdGlvbiBu YW1lIHNob3VsZCBzdGFydCB3aXRoIF9fdGVtcAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisKKy0tIHJlbW92ZSBkZWZhdWx0IHNlY3VyaXR5IGF1dGhlbnRpY2F0aW9uCisKK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIF9fdGVtcF91cGdyYWRlX3JlbW92ZV9kZWZhdWx0X3NlY3VyaXR5 X2F1dGgoYV9pbnB1dCBWQVJDSEFSKDQwKSkKKyAgUkVUVVJOUyB2b2lkIEFTCiskQk9EWSQKKyAg IERFQ0xBUkUKKyAgIHZfZW50cnkgVkFSQ0hBUig0MDAwKTsKKyAgIHZfcG9zIGludGVnZXI7CitC RUdJTgorICAgIHZfZW50cnkgOj0gb3B0aW9uX3ZhbHVlIEZST00gdmRjX29wdGlvbnMgV0hFUkUg b3B0aW9uX25hbWU9J0xEQVBTZWN1cml0eUF1dGhlbnRpY2F0aW9uJzsKKyAgICB2X3BvcyA6PSBz dHJwb3MobG93ZXIodl9lbnRyeSksICcsJyB8fCBsb3dlcihhX2lucHV0KSB8fCAnLCcpOworCisg ICAgSUYgKHZfcG9zID0gMCkgVEhFTgorICAgICAgICAgICAgICAgIFVQREFURSB2ZGNfb3B0aW9u cworICAgICAgICAgICAgICAgIFNFVCBvcHRpb25fdmFsdWUgPSByZWdleHBfcmVwbGFjZShvcHRp b25fdmFsdWUsICcsPycgfHwgYV9pbnB1dCB8fCAnLD8nICwnJywnaScpCisgICAgICAgICAgICAg ICAgV0hFUkUgb3B0aW9uX25hbWUgPSAnTERBUFNlY3VyaXR5QXV0aGVudGljYXRpb24nOworICAg IEVMU0UKKyAgICAgICAgICAgICAgICBVUERBVEUgdmRjX29wdGlvbnMKKyAgICAgICAgICAgICAg ICBTRVQgb3B0aW9uX3ZhbHVlID0gcmVnZXhwX3JlcGxhY2Uob3B0aW9uX3ZhbHVlLCAnLCcgfHwg YV9pbnB1dCB8fCAnLCcgLCcsJywnaScpCisgICAgICAgICAgICAgICAgV0hFUkUgb3B0aW9uX25h bWUgPSAnTERBUFNlY3VyaXR5QXV0aGVudGljYXRpb24nOworICAgIEVORCBJRjsKKworRU5EOyAk Qk9EWSQKK0xBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBfX3RlbXBfdXBncmFkZV9yZW1vdmVf ZGVmYXVsdF9zZWN1cml0eV9hdXRoKCdkZWZhdWx0OkdTU0FQSScpOworU0VMRUNUIF9fdGVtcF91 cGdyYWRlX3JlbW92ZV9kZWZhdWx0X3NlY3VyaXR5X2F1dGgoJ2RlZmF1bHQ6U0lNUExFJyk7CisK K0RST1AgRlVOQ1RJT04gX190ZW1wX3VwZ3JhZGVfcmVtb3ZlX2RlZmF1bHRfc2VjdXJpdHlfYXV0 aChWQVJDSEFSKTsKKworCistLS0gdXBncmFkZSBkb21haW5zIHRvIGhhdmUgYSBwcm92aWRlciB0 eXBlCisKK2NyZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIF9fdGVtcF91cGRhdGVfbGRhcF9wcm92 aWVyX3R5cGVzKCkKK1JFVFVSTlMgdm9pZAorQVMgJHByb2NlZHVyZSQKKyAgICBERUNMQVJFCisg ICAgdl9kb21haW5zIHRleHQ7CisgICAgdl9wcm92aWRlcl90eXBlcyB0ZXh0OworICAgIHZfdGVt cCB0ZXh0OworICAgIHZfdmFsdWVzIHJlY29yZDsKKyAgICBib28gc21hbGxpbnQ7CisKK0JFR0lO CisKKyAgICB2X3RlbXAgOj0gJyc7CisgICAgdl9kb21haW5zIDo9IChTRUxFQ1Qgb3B0aW9uX3Zh bHVlIEZST00gdmRjX29wdGlvbnMgd2hlcmUgb3B0aW9uX25hbWUgPSAnRG9tYWluTmFtZScpOwor ICAgIHZfcHJvdmlkZXJfdHlwZXMgOj0gKFNFTEVDVCBvcHRpb25fdmFsdWUgRlJPTSB2ZGNfb3B0 aW9ucyB3aGVyZSBvcHRpb25fbmFtZSA9ICdMREFQUHJvdmlkZXJUeXBlcycpOworICAgIGJvbyA6 PSAoU0VMRUNUIGNvdW50KCopIGZyb20gcmVnZXhwX21hdGNoZXModl9wcm92aWRlcl90eXBlcyAs J1s6XScpKTsKKworICAgIElGIChib28gPSAwKSBUSEVOCisKKyAgICAgICAgRk9SIHZfdmFsdWVz IGluIHNlbGVjdCByZWdleHBfc3BsaXRfdG9fdGFibGUodl9kb21haW5zLCAnLCcpIGFzIHZhbAor ICAgICAgICBMT09QCisgICAgICAgICAgICBJRiAobGVuZ3RoKHZfdmFsdWVzLnZhbCkgPiAwKSBU SEVOCisgICAgICAgICAgICAgICAgdl90ZW1wIDo9IHZfdGVtcCB8fCB2X3ZhbHVlcy52YWwgfHwg JzpnZW5lcmFsLCc7CisgICAgICAgICAgICBFTkQgSUY7CisgICAgICAgIEVORCBMT09QOworCisg ICAgICAgIHZfdGVtcCA9IHJ0cmltKHZfdGVtcCwnLCcpOworCisgICAgICAgIFVQREFURSB2ZGNf b3B0aW9ucyBTRVQgb3B0aW9uX3ZhbHVlID0gdl90ZW1wIHdoZXJlIG9wdGlvbl9uYW1lID0gJ0xE QVBQcm92aWRlclR5cGVzJzsKKworICAgIEVORCBJRjsKKworRU5EOyAkcHJvY2VkdXJlJAorTEFO R1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUICBfX3RlbXBfdXBkYXRlX2xkYXBfcHJvdmllcl90eXBl cygpOworRFJPUCBGVU5DVElPTiBfX3RlbXBfdXBkYXRlX2xkYXBfcHJvdmllcl90eXBlcygpOwor CmRpZmYgLS1naXQgYS9iYWNrZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcHJlX3VwZ3Jh ZGUvMDAxMF9jdXN0b20uc3FsIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3By ZV91cGdyYWRlLzAwMTBfY3VzdG9tLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi4xMTQ5NzNkCi0tLSAvZGV2L251bGwKKysrIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0 cy91cGdyYWRlL3ByZV91cGdyYWRlLzAwMTBfY3VzdG9tLnNxbApAQCAtMCwwICsxLDE5IEBACisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgQ3VycmVudGx5IHdlIGhh dmUgYSBidWcgdGhhdCB1cGdhcmRlIDAzMDEwMjUwIHdhcyBjaGVycnktcGlja2VkIGFuZCBpbnN0 YWxsZWQgYWZ0ZXIgMDMwMTAxMzAKKyAgIFRoaXMgY2F1c2VkIGFsbCBzY3JpcHRzIGJldHdlZW4g MDMwMTAxNDAgYW5kIDAzMDEwMjQwIG5vdCB0byBydW4uCisgICBUaGlzIHNjcmlwdHMgcmVtb3Zl cyB0aGUgMDMwMTAyNTAgZnJvbSBzY2hlbWFfdmVyc2lvbiBhbmQgdXBkYXRlcyAwMzAxMDEzMCB0 byBiZSB0aGUgY3VyZW50IHZlcnNpb24KKyAgIFNvLCBhZnRlciB0aGF0ICwgYWxsIHNjcmlwdHMg ZnJvbSAwMzAxMDE0MCBhbmQgdXAgd2lsbCBydW4KKyAgIFNpbmNlIDAzMDEwMjUwIHdhcyBhIGNv bmZpZ3VyYXRpb24gY2hhbmdlIHRoYXQgaXMgYWxyZWFkeSBoYW5kbGVkIGluIHRoZSBuZXcgY29u ZmlnLnNxbCwgbm8gb3RoZXIgaGFuZGxpbmcgaXMgbmVlZGVkLgorKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKwordXBkYXRlIHNjaGVtYV92ZXJzaW9uIHNldCBjdXJyZW50 ID0gdHJ1ZSB3aGVyZSB2ZXJzaW9uID0gJzAzMDEwMTMwJworYW5kIGV4aXN0cyhzZWxlY3QgMSBm cm9tIHNjaGVtYV92ZXJzaW9uIHdoZXJlIHZlcnNpb24gPSAnMDMwMTAyNTAnIGFuZCBjdXJyZW50 ID0gdHJ1ZSk7CisKK2RlbGV0ZSBmcm9tIHNjaGVtYV92ZXJzaW9uCit3aGVyZSB2ZXJzaW9uID0g JzAzMDEwMjUwJyBhbmQgY3VycmVudCA9IHRydWU7CisKKy0tIEFkZCBhIHN1cHBvcnRlZF9lbmdp bmVzIGNvbHVtbiB0byB2ZHNfZHluYW1pYyByZW9sdmluZyBhIDMuMCB0byAzLjEgdXBncmFkZSBp c3N1ZQorLS0gVGhpcyBjb2x1bW4gd2FzIHByb2JhYmx5IGFkZGVkIHRvIHRoZSBjcmVhdGVfdGFi bGVzLnNxbCBhbmQgbm90IHRvIHRoZSB1cGdyYWRlIHNvCistLSBpdCBleGlzdHMgb24gYW55IDMu MSBiYXNlZCBEQiBidXQgaXMgbWlzc2luZyBmcm9tIDMuMCBiYXNlZCBEQiB0aGF0IGlzIHVwZ3Jh ZGVkIHRvIDMuMQorCitzZWxlY3QgZm5fZGJfYWRkX2NvbHVtbigndmRzX2R5bmFtaWMnLCdzdXBw b3J0ZWRfZW5naW5lcycsJ3ZhcmNoYXIoNDApJyk7CmRpZmYgLS1naXQgYS9iYWNrZW5kL21hbmFn ZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcHJlX3VwZ3JhZGUvMDAyMF9hZGRfY29tbWVudF9jb2xfdG9f c2NoZW1hX3ZlcnNpb24uc3FsIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3By ZV91cGdyYWRlLzAwMjBfYWRkX2NvbW1lbnRfY29sX3RvX3NjaGVtYV92ZXJzaW9uLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2M3OWUyCi0tLSAvZGV2L251bGwKKysr IGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3ByZV91cGdyYWRlLzAwMjBfYWRk X2NvbW1lbnRfY29sX3RvX3NjaGVtYV92ZXJzaW9uLnNxbApAQCAtMCwwICsxLDIgQEAKK3NlbGVj dCBmbl9kYl9hZGRfY29sdW1uKCdzY2hlbWFfdmVyc2lvbicsICdjb21tZW50JywgJ3RleHQgTlVM TCBkZWZhdWx0ICcnJycgJyk7CisKZGlmZiAtLWdpdCBhL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlw dHMvdXBncmFkZS9wcmVfdXBncmFkZS9hZGRfY29tbWVudF9jb2xfdG9fc2NoZW1hX3ZlcnNpb24u c3FsIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3ByZV91cGdyYWRlL2FkZF9j b21tZW50X2NvbF90b19zY2hlbWFfdmVyc2lvbi5zcWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDljYzc5ZTIuLjAwMDAwMDAKLS0tIGEvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91 cGdyYWRlL3ByZV91cGdyYWRlL2FkZF9jb21tZW50X2NvbF90b19zY2hlbWFfdmVyc2lvbi5zcWwK KysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXNlbGVjdCBmbl9kYl9hZGRfY29sdW1uKCdz Y2hlbWFfdmVyc2lvbicsICdjb21tZW50JywgJ3RleHQgTlVMTCBkZWZhdWx0ICcnJycgJyk7Ci0K ZGlmZiAtLWdpdCBhL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFk ZS9jb25maWcuc3FsIGIvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3ByZV91cGdy YWRlL2NvbmZpZy5zcWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExZTQzYjYuLjAw MDAwMDAKLS0tIGEvYmFja2VuZC9tYW5hZ2VyL2Ric2NyaXB0cy91cGdyYWRlL3ByZV91cGdyYWRl L2NvbmZpZy5zcWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MTkgKzAsMCBAQAotLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgotICAgICAgICAgICAgICAgIERBVEFCQVNFIEFQUExJQ0FUSU9OIENP TkZJR1VSQVRJT04gRklMRQotCi1UaGlzIGZpbGUgaXMgdXNlZCB0byB1cGRhdGUgdGhlIHZkY19v cHRpb25zIGNvbmZpZ3VyYXRpb24gdGFibGUuCi1UaGUgZm9sbG93aW5nIHNlY3Rpb25zIGFyZSBh dmFpbGFibGU6Ci0gICAgQWRkIFNlY3Rpb24KLSAgICBVcGRhdGUgc2VjdGlvbiAody9vIG92ZXJy aWRpbmcgY3VycmVudCB2YWx1ZSkKLSAgICBEZWxldGUgc2VjdGlvbgotICAgIFNwbGl0IGNvbmZp ZyBzZWN0aW9uCi0gICAgU2ltcGxlIHVwZ3JhZGVzIG5vdCBhdmFpbGFibGUgdXNpbmcgYSBmbl9k YiogZnVuY3Rpb24gY2FsbAotICAgIENvbXBsZXggdXBncmFkZXMgdXNpbmcgdGVtcG9yYXJ5IGZ1 bmN0aW9ucwotCi1JbiBlYWNoIHNlY3Rpb24gKGV4Y2VwdCBzaW1wbGUvZnVuY3Rpb24gc2VjdGlv bnMpLCBlbnRyaWVzIGFyZSBvcmRlcmVkIGJ5IGtleSwKLXBsZWFzZSBrZWVwIHRoaXMgd2hlbiBt b2RpZmluZyB0aGlzIGZpbGUuCi0KLVBMRUFTRSBOT1RFIFRIQVQgVEhJUyBTQ1JJUFQgTVVTVCBS RU1BSU4gUkUtRU5UUkFOVCEKLQotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gICAgICAgICAgICAgICAgICBBZGQgY29uZmln dXJhdGlvbiB2YWx1ZXMgc2VjdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLXNl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdDcHVQaW5NaWdyYXRpb25FbmFibGVkJywndHJ1 ZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdDcHVQaW5uaW5n RW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn Q3B1UGlubmluZ0VuYWJsZWQnLCdmYWxzZScsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0NwdVBpbm5pbmdFbmFibGVkJywndHJ1ZScsJzMuMScpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ0FkbWluRG9tYWluJywnaW50ZXJuYWwnLCdnZW5lcmFsJyk7Ci1z ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQWRtaW5QYXNzd29yZCcsJycsJ2dlbmVyYWwn KTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZG1pblVzZXInLCdhZG1pbicsJ2dl bmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZFVzZXJJZCcsJycsJ2dl bmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBZFVzZXJOYW1lJywnJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkVXNlclBhc3N3b3Jk JywnJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkdmFuY2Vk TkZTT3B0aW9uc0VuYWJsZWQnLCdmYWxzZScsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ0FkdmFuY2VkTkZTT3B0aW9uc0VuYWJsZWQnLCdmYWxzZScsJzMuMCcpOwotc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FkdmFuY2VkTkZTT3B0aW9uc0VuYWJsZWQnLCd0 cnVlJywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQWdlbnRBcHBOYW1l JywnUkhFVi1BZ2VudCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdBbGxvd0R1cGxpY2F0ZU1hY0FkZHJlc3NlcycsJ2ZhbHNlJywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0FwcGxpY2F0aW9uTW9kZScsJzI1NScsJ2dlbmVyYWwn KTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3luY1BvbGxpbmdDeWNsZXNCZWZv cmVDYWxsYmFja0NsZWFudXAnLCcxMjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnQXN5bmNQb2xsaW5nQ3ljbGVzQmVmb3JlUmVmcmVzaFN1c3BlbmQnLCczMCcs J2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3luY1Rhc2tQb2xs aW5nUmF0ZScsJzEwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0FzeW5jVGFza1N0YXR1c0NhY2hlUmVmcmVzaFJhdGVJblNlY29uZHMnLCczMCcsJ2dlbmVyYWwn KTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBc3luY1Rhc2tTdGF0dXNDYWNoaW5n VGltZUluTWludXRlcycsJzEnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnQXN5bmNUYXNrWm9tYmllVGFza0xpZmVJbk1pbnV0ZXMnLCczMDAnLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQXVkaXRMb2dBZ2luZ1RocmVhc2hvbGQn LCczMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdBdWRpdExv Z0NsZWFudXBUaW1lJywnMDM6MzU6MzUnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIEF1dGhlbnRp Y2F0aW9uIE1ldGhvZAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0F1dGhlbnRpY2F0 aW9uTWV0aG9kJywnTERBUCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdBdXRvTW9kZScsJ1BlclNlcnZlcicsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdBdXRvUmVjb3ZlcnlTY2hlZHVsZScsJzAgMC81ICogKiAqID8nLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQXV0b1JlcG9Eb21haW5SZWZy ZXNoVGltZScsJzYwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0F1dG9TdXNwZW5kVGltZUluTWludXRlcycsJzMwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ0Jsb2NrTWlncmF0aW9uT25Td2FwVXNhZ2VQZXJjZW50YWdlJywn MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdCb290c3RyYXBJ bnN0YWxsZXJGaWxlTmFtZScsJ2JhY2tlbmQvbWFuYWdlci9jb25mL3Zkc19pbnN0YWxsZXIucHkn LCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIENBIEJhc2UgRGlyZWN0b3J5Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnQ0FCYXNlRGlyZWN0b3J5JywnY2EnLCdnZW5lcmFsJyk7Ci0tLUhh bmRsaW5nIENBIGNlcnRpZmljYXRlIHBhdGgKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdDQUNlcnRpZmljYXRlUGF0aCcsJ2NhL2NlcnRzLnBlbScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxp bmcgUEVNIEZpbGUgTmFtZQotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0NBRW5naW5l S2V5JywnZW5naW5lLnBlbScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdDQkNDZXJ0aWZpY2F0ZVNjcmlwdE5hbWUnLCcvdXNyL3NoYXJlL3Zkc20tcmVnL3Zkc20t Z2VuLWNlcnQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ2Jj Q2hlY2tPblZkc0NoYW5nZScsJ2ZhbHNlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0NCQ0Nsb3NlQ2VydGlmaWNhdGVTY3JpcHROYW1lJywnL3Vzci9zaGFyZS92 ZHNtLXJlZy92ZHNtLWNvbXBsZXRlJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBDZXJ0aWZpY2F0 ZSBhbGlhcwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0NlcnRBbGlhcycsJ2VuZ2lu ZScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgQ2VydGlmaWNhdGUgRmlsZSBOYW1lCi1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ2VydGlmaWNhdGVGaWxlTmFtZScsJ3ZkYy5wZngnLCdn ZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnQ2VydGlmaWNhdGVGaW5n ZXJQcmludCcsJzczIDE4IDIyIDQ0IDVkIDk4IGIwIDVkIGMwIGY3IDM2IDdkIGY4IDFkIDg1IGRh IGUxIDNjIGYxIGM2JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0NlcnRpZmljYXRlUGFzc3dvcmQnLCdqbE9USVMwcTVhdnNnMUdhUmpmLzYvdG5FTTFwWGNDUnZO b2VKNU1DZ0hGMWtDemNxcWhadnpSOFBuLzVpQnhhS1ZDN1k0T2RBMGpvWFZNTEdhc1ZHTG5Va3hF eHpOQ01UKzZRd3lGTTFMOS8wZysxT2dHVHVNYnZZVGZFaTBqTE9GdjB4d1dEbDVNV3VuUFVqWnJp R0Voa2l1NWQ2UUo1WmVFaEQ0clJvb0E9JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0NpcGhlclN1aXRlJywnREVGQVVMVCcsJ2dlbmVyYWwnKTsKLS0tSGFuZGxp bmcgQ29uZmlndXJhdGlvbiBkaXJlY3RvcnkgZm9yIEVOR0lORQotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0NvbmZpZ0RpcicsJy9ldGMvZW5naW5lJywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0Nvbm5lY3RUb1NlcnZlclRpbWVvdXRJblNlY29uZHMn LCcyMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdDcHVPdmVy Q29tbWl0RHVyYXRpb25NaW51dGVzJywnMicsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdDdXN0b21QdWJsaWNDb25maWdfQXBwc1dlYlNpdGUnLCcnLCdnZW5lcmFs Jyk7Ci0tLUhhbmRsaW5nIERhdGEgZGlyZWN0b3J5IGZvciBFTkdJTkUKLXNlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdEYXRhRGlyJywnL3Vzci9zaGFyZS9lbmdpbmUnLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnREJFbmdpbmUnLCdTUUxTZXJ2ZXInLCdn ZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGVidWdTZWFyY2hMb2dn aW5nJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn RGVidWdUaW1lckxvZ2dpbmcnLCd0cnVlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0RlZmF1bHRNYXhUaHJlYWRQb29sU2l6ZScsJzUwMCcsJ2dlbmVyYWwnKTsK LXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZWZhdWx0TWluVGhyZWFkUG9vbFNpemUn LCc1MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZWZhdWx0 VGltZVpvbmUnLCcoR01UKSBHTVQgU3RhbmRhcmQgVGltZScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxp bmcgRGVmYXVsdCBXb3JrZ3JvdXAKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZWZh dWx0V29ya2dyb3VwJywnV09SS0dST1VQJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0Rlc2t0b3BBdWRpb0RldmljZVR5cGUnLCdkZWZhdWx0LGFjOTcnLCcyLjIn KTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdEZXNrdG9wQXVkaW9EZXZpY2VUeXBl JywnV2luZG93c1hQLGFjOTcsUkhFTDQsYWM5NyxSSEVMMyxhYzk3LFdpbmRvd3MyMDAzeDY0LGFj OTcsUkhFTDR4NjQsYWM5NyxSSEVMM3g2NCxhYzk3LE90aGVyTGludXgsYWM5NyxPdGhlcixhYzk3 LGRlZmF1bHQsaWNoNicsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0Rl c2t0b3BBdWRpb0RldmljZVR5cGUnLCdXaW5kb3dzWFAsYWM5NyxSSEVMNCxhYzk3LFJIRUwzLGFj OTcsV2luZG93czIwMDN4NjQsYWM5NyxSSEVMNHg2NCxhYzk3LFJIRUwzeDY0LGFjOTcsT3RoZXJM aW51eCxhYzk3LE90aGVyLGFjOTcsZGVmYXVsdCxpY2g2JywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnRGlzYWJsZUZlbmNlQXRTdGFydHVwSW5TZWMnLCczMDAnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlza0NvbmZpZ3VyYXRpb25M aXN0JywnU3lzdGVtLFNwYXJzZSxDT1csdHJ1ZTtEYXRhLFByZWFsbG9jYXRlZCxSQVcsZmFsc2U7 U2hhcmVkLFByZWFsbG9jYXRlZCxSQVcsZmFsc2U7U3dhcCxQcmVhbGxvY2F0ZWQsUkFXLGZhbHNl O1RlbXAsU3BhcnNlLENPVyxmYWxzZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29u ZmlnX3ZhbHVlKCdEaXJlY3RMVU5EaXNrRW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRGlyZWN0TFVORGlza0VuYWJsZWQnLCdmYWxzZScsJzMu MCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0RpcmVjdExVTkRpc2tFbmFibGVk JywndHJ1ZScsJzMuMScpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0RvY3NVUkwn LCdkb2NzJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBOZXRCSU9TIERvbWFpbiBOYW1lCi1zZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRG9tYWluTmFtZScsJ2V4YW1wbGUuY29tJywnZ2Vu ZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0VtdWxhdGVkTWFjaGluZScs J3JoZWw1LjUuMCcsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0VtdWxh dGVkTWFjaGluZScsJ3JoZWw2LjAuMCcsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0VtdWxhdGVkTWFjaGluZScsJ3BjLTAuMTQnLCczLjEnKTsKLS0tSGFuZGxpbmcgRW5h YmxlIFNwaWNlIFJvb3QgQ2VydGlmaWNhdGlvbiBWYWxpZGF0aW9uCi1zZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnRW5hYmxlU3BpY2VSb290Q2VydGlmaWNhdGVWYWxpZGF0aW9uJywndHJ1 ZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdFbmFibGVTd2Fw Q2hlY2snLCd0cnVlJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBFbmFibGUgVVNCIGRldmljZXMg YXR0YWNobWVudCB0byB0aGUgVk0gYnkgZGVmYXVsdAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ0VuYWJsZVVTQkFzRGVmYXVsdCcsJ3RydWUnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5n IEVuYWJsZXMgSG9zdCBMb2FkIEJhbGFuY2luZyBzeXN0ZW0uCi1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnRW5hYmxlVmRzTG9hZEJhbGFuY2luZycsJ3RydWUnLCdnZW5lcmFsJyk7Ci1z ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5HSU5FRUFSTGliJywnJUpCT1NTX0hPTUUl L3NlcnZlci9lbmdpbmUtc2xpbW1lZC9kZXBsb3kvZW5naW5lLmVhcicsJ2dlbmVyYWwnKTsKLS0t SGFuZGxpbmcgTWFpbCBVc2VyIERvbWFpbgotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J0VOTWFpbERvbWFpbicsJycsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgVXNlIEhUTUwgaW4gbWVz c2FnZSBib2R5Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5NYWlsSXNCb2R5SHRt bCcsJ3RydWUnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIFVzZSBEZWZhdWx0IENyZWRlbnRpYWxz Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRU5NYWlsVXNlRGVmYXVsdENyZWRlbnRp YWxzJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn RmFpbGVkSm9iQ2xlYW51cFRpbWVJbk1pbnV0ZXMnLCc2MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdGZW5jZUFnZW50RGVmYXVsdFBhcmFtcycsJ2lsbzM6bGFu cGx1cyx0aW1lb3V0PTQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnRmVuY2VBZ2VudE1hcHBpbmcnLCdpbG8zPWlwbWlsYW4nLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmVuY2VRdWlldFRpbWVCZXR3ZWVuT3BlcmF0aW9uc0lu U2VjJywnMTgwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0Zl bmNlU3RhcnRTdGF0dXNEZWxheUJldHdlZW5SZXRyaWVzSW5TZWMnLCc2MCcsJ2dlbmVyYWwnKTsK LXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdGZW5jZVN0YXJ0U3RhdHVzUmV0cmllcycs JzMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmVuY2VTdG9w U3RhdHVzRGVsYXlCZXR3ZWVuUmV0cmllc0luU2VjJywnNjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmVuY2VTdG9wU3RhdHVzUmV0cmllcycsJzMnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmlsdGVyaW5nTFVOc0VuYWJs ZWQnLCd0cnVlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmlsdGVy aW5nTFVOc0VuYWJsZWQnLCd0cnVlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnRmlsdGVyaW5nTFVOc0VuYWJsZWQnLCdmYWxzZScsJzMuMScpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ0ZpbmRGZW5jZVByb3h5RGVsYXlCZXR3ZWVuUmV0cmllc0luU2Vj JywnMzAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnRmluZEZl bmNlUHJveHlSZXRyaWVzJywnMycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmln X3ZhbHVlKCdGcmVlU3BhY2VDcml0aWNhbExvd0luR0InLCc1JywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0ZyZWVTcGFjZUxvdycsJzEwJywnZ2VuZXJhbCcpOwot c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0d1ZXN0VG9vbHNTZXR1cElzb1ByZWZpeCcs J1JIRVYtdG9vbHNTZXR1cF8nLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnSGlnaFV0aWxpemF0aW9uRm9yRXZlbmx5RGlzdHJpYnV0ZScsJzc1JywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0hpZ2hVdGlsaXphdGlvbkZvclBvd2Vy U2F2ZScsJzc1JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0hv dFBsdWdFbmFibGVkJywnZmFsc2UnLCcyLjInKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdIb3RQbHVnRW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnSG90UGx1Z0VuYWJsZWQnLCd0cnVlJywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnRGlzY29ubmVjdFBvb2xPblJlY29uc3RydWN0JywnMCwyJywnZ2Vu ZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0hvdFBsdWdTdXBwb3J0ZWRP c0xpc3QnLCdXaW5kb3dzNyxXaW5kb3dzN3g2NCxXaW5kb3dzMjAwOCxXaW5kb3dzMjAwOHg2NCxX aW5kb3dzMjAwOFIyeDY0LFJIRUw1LFJIRUw1eDY0LFJIRUw2LFJIRUw2eDY0JywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0luaXRTdG9yYWdlU3BhcnNlU2l6ZUlu R0InLCcxJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBJbnN0YWxsIHZpcnR1YWxpemF0aW9uIHNv ZnR3YXJlIG9uIEFkZCBIb3N0Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnSW5zdGFs bFZkcycsJ3RydWUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn SW9PcFRpbWVvdXRTZWMnLCcxMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmln X3ZhbHVlKCdJUFRhYmxlc0NvbmZpZycsCi0nIyBvVmlydCBkZWZhdWx0IGZpcmV3YWxsIGNvbmZp Z3VyYXRpb24uIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHZkc20gYm9vdHN0cmFwIHNjcmlw dC4KLSpmaWx0ZXIKLTpJTlBVVCBBQ0NFUFQgWzA6MF0KLTpGT1JXQVJEIEFDQ0VQVCBbMDowXQot Ok9VVFBVVCBBQ0NFUFQgWzA6MF0KLS1BIElOUFVUIC1tIHN0YXRlIC0tc3RhdGUgRVNUQUJMSVNI RUQsUkVMQVRFRCAtaiBBQ0NFUFQKLS1BIElOUFVUIC1wIGljbXAgLWogQUNDRVBUCi0tQSBJTlBV VCAtaSBsbyAtaiBBQ0NFUFQKLSMgdmRzbQotLUEgSU5QVVQgLXAgdGNwIC0tZHBvcnQgNTQzMjEg LWogQUNDRVBUCi0jIGxpYnZpcnQgdGxzCi0tQSBJTlBVVCAtcCB0Y3AgLS1kcG9ydCAxNjUxNCAt aiBBQ0NFUFQKLSMgU1NICi0tQSBJTlBVVCAtcCB0Y3AgLS1kcG9ydCAyMiAtaiBBQ0NFUFQKLSMg Z3Vlc3QgY29uc29sZXMKLS1BIElOUFVUIC1wIHRjcCAtbSBtdWx0aXBvcnQgLS1kcG9ydHMgNTYz NDo2MTY2IC1qIEFDQ0VQVAotIyBtaWdyYXRpb24KLS1BIElOUFVUIC1wIHRjcCAtbSBtdWx0aXBv cnQgLS1kcG9ydHMgNDkxNTI6NDkyMTYgLWogQUNDRVBUCi0jIHNubXAKLS1BIElOUFVUIC1wIHVk cCAtLWRwb3J0IDE2MSAtaiBBQ0NFUFQKLSMgUmVqZWN0IGFueSBvdGhlciBpbnB1dCB0cmFmZmlj Ci0tQSBJTlBVVCAtaiBSRUpFQ1QgLS1yZWplY3Qtd2l0aCBpY21wLWhvc3QtcHJvaGliaXRlZAot LUEgRk9SV0FSRCAtbSBwaHlzZGV2ICEgLS1waHlzZGV2LWlzLWJyaWRnZWQgLWogUkVKRUNUIC0t cmVqZWN0LXdpdGggaWNtcC1ob3N0LXByb2hpYml0ZWQKLUNPTU1JVAotJywnZ2VuZXJhbCcpOwot c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0lzTXVsdGlsZXZlbEFkbWluaXN0cmF0aW9u T24nLCd0cnVlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0lz TmVlZFN1cHBvcnRGb3JPbGRWZ0FQSScsJ3RydWUnLCcyLjInKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdJc05lZWRTdXBwb3J0Rm9yT2xkVmdBUEknLCdmYWxzZScsJzMuMCcpOwot c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0pvYkNsZWFudXBSYXRlSW5NaW51dGVzJywn MTAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnSm9iUGFnZVNp emUnLCcxMDAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgna2V5 c3RvcmVQYXNzJywnTm9Tb3VwNFUnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIEtleXN0b3JlIFVS TAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ2tleXN0b3JlVXJsJywnLmtleXN0b3Jl JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0xkYXBRdWVyeVBh Z2VTaXplJywnMTAwMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdMREFQUXVlcnlUaW1lb3V0JywnMzAnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIExEQVAgU2Vj dXJpdHkgQXV0aGVudGljYXRpb24gTWV0aG9kCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnTERBUFNlY3VyaXR5QXV0aGVudGljYXRpb24nLCdHU1NBUEknLCdnZW5lcmFsJyk7Ci1zZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTERBUFNlcnZlclBvcnQnLCczODknLCdnZW5lcmFs Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGRhcFNlcnZlcnMnLCcnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTERBUFByb3ZpZGVyVHlwZXMn LCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGVhc2VSZXRy aWVzJywnMycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMZWFz ZVRpbWVTZWMnLCc2MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdMaWNlbnNlQ2VydGlmaWNhdGVGaW5nZXJQcmludCcsJzVmIDM4IDQxIDg5IGIxIDMzIDQ5IDBj IDI0IDEzIDZiIGIzIGU1IGJhIDllIGM3IGZkIDgzIDgwIDNiJywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0xpbWl0TnVtYmVyT2ZOZXR3b3JrSW50ZXJmYWNlcycs J3RydWUnLCcyLjInKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMaW1pdE51bWJl ck9mTmV0d29ya0ludGVyZmFjZXMnLCdmYWxzZScsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ0xpbWl0TnVtYmVyT2ZOZXR3b3JrSW50ZXJmYWNlcycsJ2ZhbHNlJywnMy4x Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGl2ZVNuYXBzaG90RW5hYmxlZCcs J2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTGl2ZVNuYXBz aG90RW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnTGl2ZVNuYXBzaG90RW5hYmxlZCcsJ3RydWUnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdMb2NhbEFkbWluUGFzc3dvcmQnLCcxMjM0NTYnLCdnZW5lcmFsJyk7Ci1z ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9jYWxTdG9yYWdlRW5hYmxlZCcsJ2ZhbHNl JywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9jYWxTdG9yYWdlRW5h YmxlZCcsJ3RydWUnLCczLjAnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb2Nh bFN0b3JhZ2VFbmFibGVkJywndHJ1ZScsJzMuMScpOwotLS1IYW5kbGluZyBFbmFibGUgbG9jayBw b2xpY3kgZm9yIFN0b3JhZ2UgUG9vbCBNYW5hZ2VyIG9uIGFjdGl2YXRpb24KLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdMb2NrUG9saWN5JywnT04nLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9ja1JlbmV3YWxJbnRlcnZhbFNlYycsJzUnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTG9nREJDb21tYW5kcycsJ2Zh bHNlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ0xvZ1BoeXNp Y2FsTWVtb3J5VGhyZXNob2xkSW5NQicsJzEwMjQnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIExv ZyBYTUwtUlBDIERhdGEKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb2dYbWxScGNE YXRhJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn TG93VXRpbGl6YXRpb25Gb3JFdmVubHlEaXN0cmlidXRlJywnMCcsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdMb3dVdGlsaXphdGlvbkZvclBvd2VyU2F2ZScsJzIw JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01hY1Bvb2xSYW5n ZXMnLCcwMDoxQTo0QToxNjowMTo1MS0wMDoxQTo0QToxNjowMTplNicsJ2dlbmVyYWwnKTsKLXNl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYW5hZ2VkRGV2aWNlc1doaXRlTGlzdCcsJycs J2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYW5hZ2VtZW50TmV0 d29yaycsJ292aXJ0bWdtdCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdNYXhBdWRpdExvZ01lc3NhZ2VMZW5ndGgnLCcxMDAwMCcsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhCbG9ja0Rpc2tTaXplJywnODE5MicsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhMREFQUXVlcnlQYXJ0c051 bWJlcicsJzEwMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdN YXhNYWNzQ291bnRJblBvb2wnLCcxMDAwMDAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnTWF4TnVtYmVyT2ZIb3N0c0luU3RvcmFnZVBvb2wnLCcyNTAnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtT2ZDcHVQZXJTb2Nr ZXQnLCcxNicsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heE51bU9m Q3B1UGVyU29ja2V0JywnMTYnLCczLjAnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdNYXhOdW1PZkNwdVBlclNvY2tldCcsJzE2JywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnTWF4TnVtT2ZWbUNwdXMnLCcxNicsJzIuMicpOwotc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ01heE51bU9mVm1DcHVzJywnNjQnLCczLjAnKTsKLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhOdW1PZlZtQ3B1cycsJzY0JywnMy4xJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4TnVtT2ZWbVNvY2tldHMnLCcxNicsJzIuMicpOwot c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heE51bU9mVm1Tb2NrZXRzJywnMTYnLCcz LjAnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhOdW1PZlZtU29ja2V0cycs JzE2JywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4UmVydW5WbU9u VmRzQ291bnQnLCczJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J01heFN0b3JhZ2VWZHNEZWxheUNoZWNrU2VjJywnNScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhTdG9yYWdlVmRzVGltZW91dENoZWNrU2VjJywnMzAnLCdn ZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTWF4VmRzTWVtT3ZlckNv bW1pdCcsJzIwMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdN YXhWZHNNZW1PdmVyQ29tbWl0Rm9yU2VydmVycycsJzE1MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhWZHNOYW1lTGVuZ3RoJywnMjU1JywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ01heFZtTmFtZUxlbmd0aE5vbldpbmRv d3MnLCc2NCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdNYXhW bU5hbWVMZW5ndGhXaW5kb3dzJywnMTUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnTWF4Vm1zSW5Qb29sJywnMTAwMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdNaW5pbWFsRVRMVmVyc2lvbicsJzMuMC4wJywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05hdGl2ZVVTQkVuYWJsZWQnLCdmYWxz ZScsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05hdGl2ZVVTQkVuYWJs ZWQnLCdmYWxzZScsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05hdGl2 ZVVTQkVuYWJsZWQnLCd0cnVlJywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnTmljREhDUERlbGF5R3JhY2VJbk1TJywnNjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnTm9uVm1OZXR3b3JrU3VwcG9ydGVkJywnZmFsc2UnLCcyLjInKTsK LXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdOb25WbU5ldHdvcmtTdXBwb3J0ZWQnLCdm YWxzZScsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ05vblZtTmV0d29y a1N1cHBvcnRlZCcsJ3RydWUnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdOdW1iZXJPZkZhaWxlZFJ1bnNPblZkcycsJzMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnTnVtYmVyT2ZVU0JTbG90cycsJzQnLCdnZW5lcmFsJyk7Ci1zZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTnVtYmVyT2ZWbXNGb3JUb3BTaXplVm1zJywnMTAn LCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnTnVtYmVyVm1SZWZy ZXNoZXNCZWZvcmVTYXZlJywnNScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgT3JnYW5pemF0aW9u IE5hbWUKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdPcmdhbml6YXRpb25OYW1lJywn b1ZpcnQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnT3JpZ2lu VHlwZScsJ09WSVJUJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J092ZlZpcnR1YWxTeXN0ZW1UeXBlJywnRU5HSU5FJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ092aXJ0SW5pdGlhbFN1cHBvcnRlZElzb1ZlcnNpb24nLCc1Ljgn LCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnT3ZpcnRJc29QcmVm aXgnLCdyaGV2aCcsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgVGhlIFJIRVYtSCBpbnN0YWxsYXRp b24gZmlsZXMgcGF0aAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ29WaXJ0SVNPc1Jl cG9zaXRvcnlQYXRoJywnb3ZpcnQtaXNvcycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdvVmlydFVwZ3JhZGVTY3JpcHROYW1lJywnL3Vzci9zaGFyZS92ZHNtLXJl Zy92ZHNtLXVwZ3JhZGUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnb1ZpcnRVcGxvYWRQYXRoJywnL2RhdGEvdXBkYXRlcy9vdmlydC1ub2RlLWltYWdlLmlzbycs J2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQYXlsb2FkU2l6ZScs JzgxOTInLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9zaXhT dG9yYWdlRW5hYmxlZCcsJ2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUG9zaXhTdG9yYWdlRW5hYmxlZCcsJ2ZhbHNlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUG9zaXhTdG9yYWdlRW5hYmxlZCcsJ3RydWUnLCczLjEnKTsKLXNl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc0kxOE5QcmVmaXgnLCcnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9zdGdyZXNMaWtlU3ludGF4 JywnSUxJS0UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9z dGdyZXNQYWdpbmdTeW50YXgnLEUnIE9GRlNFVCAoJTEkcyAtMSkgTElNSVQgJTIkcycsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc1BhZ2luZ1R5cGUn LCdPZmZzZXQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG9z dGdyZXNTZWFyY2hUZW1wbGF0ZScsRSdTRUxFQ1QgKiBGUk9NICglMiRzKSAlMSRzKSBhcyBUMSAl MyRzJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBBbGxvdyBSdW5uaW5nIEd1ZXN0cyBXaXRob3V0 IFRvb2xzCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBbGxvd1J1 bm5pbmdHdWVzdHNXaXRob3V0VG9vbHMnLCdmYWxzZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVudEFsbG93VXNpbmdBc0lSUycsJ2ZhbHNlJywn Z2VuZXJhbCcpOwotLS1IYW5kbGluZyBBdXRvLUFkanVzdE1lbW9yeSBCYXNlIE9uIEF2YWlsYWJs ZSBNZW1vcnkKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVudEF1dG9B ZGp1c3RNZW1vcnlCYXNlT25BdmFpbGFibGVNZW1vcnknLCdmYWxzZScsJ2dlbmVyYWwnKTsKLS0t SGFuZGxpbmcgQ2xpZW50IEF1dG8gQWRqdXN0IE1lbW9yeQotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b0FkanVzdE1lbW9yeScsJ2ZhbHNlJywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b0FkanVzdE1l bW9yeUdlbmVyYWxSZXNlcnZlJywnNzY4JywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBBdXRvLUFk anVzdCBNZW1vcnkgTG9nCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGll bnRBdXRvQWRqdXN0TWVtb3J5TG9nJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5TWF4TWVtb3J5Jywn MjA0OCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNs aWVudEF1dG9BZGp1c3RNZW1vcnlNb2R1bHVzJywnNjQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5U3BpY2VQZXJN b25pdG9yUmVzZXJ2ZScsJzAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUG93ZXJDbGllbnRBdXRvQWRqdXN0TWVtb3J5U3BpY2VQZXJTZXNzaW9uUmVzZXJ2ZScs JzAnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIEF1dG8gQXBwcm92ZSBQYXR0ZXJucwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b0FwcHJvdmVQYXR0ZXJucycs JycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVu dEF1dG9JbnN0YWxsQ2VydGlmaWNhdGVPbkFwcHJvdmUnLCd0cnVlJywnZ2VuZXJhbCcpOwotc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b01pZ3JhdGVGcm9tUG93 ZXJDbGllbnRUb1Zkc1doZW5Db25uZWN0aW5nRnJvbVJlZ3VsYXJDbGllbnQnLCdmYWxzZScsJ2dl bmVyYWwnKTsKLS0tSGFuZGxpbmcgQXV0b01pZ3JhdGUgVG8gUG93ZXJDbGllbnQgT24gQ29ubmVj dAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Bvd2VyQ2xpZW50QXV0b01pZ3JhdGVU b1Bvd2VyQ2xpZW50T25Db25uZWN0JywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRBdXRvUmVnaXN0cmF0aW9uRGVmYXVsdFZkc0dy b3VwSUQnLCc5OTQwODkyOS04MkNGLTREQzctQTUzMi05RDk5ODA2M0ZBOTUnLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnREZWRpY2F0ZWRWbUxh dW5jaE9uVmRzV2hpbGVQb3dlckNsaWVudFN0YXJ0cycsJ2ZhbHNlJywnZ2VuZXJhbCcpOwotLS1I YW5kbGluZyBFbmFibGUgUG93ZXIgQ2xpZW50IEdVSQotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1Bvd2VyQ2xpZW50R1VJJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRMb2dEZXRlY3Rpb24nLCdmYWxzZScsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQb3dlckNsaWVudE1heE51bWJl ck9mQ29uY3VycmVudFZNcycsJzEnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnUG93ZXJDbGllbnRSdW5WbVNob3VsZFZlcmlmeVBlbmRpbmdWTXNBc1dlbGwnLCdm YWxzZScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgU3BpY2UgRHluYW1pYyBDb21wcmVzc2lvbiBN YW5hZ2VtZW50Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUG93ZXJDbGllbnRTcGlj ZUR5bmFtaWNDb21wcmVzc2lvbk1hbmFnZW1lbnQnLCdmYWxzZScsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdQcmVkZWZpbmVkVk1Qcm9wZXJ0aWVzJywnJywnMi4y Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJlZGVmaW5lZFZNUHJvcGVydGll cycsJ3NhcF9hZ2VudD1eKHRydWV8ZmFsc2UpJDtzbmRidWY9XlswLTldKyQ7dmhvc3Q9XigoW2Et ekEtWjAtOV9dKik6KHRydWV8ZmFsc2UpKSgsKChbYS16QS1aMC05X10qKToodHJ1ZXxmYWxzZSkp KSokO3Zpb2Rpc2tjYWNoZT1eKG5vbmV8d3JpdGViYWNrfHdyaXRldGhyb3VnaCkkJywnMy4wJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJlZGVmaW5lZFZNUHJvcGVydGllcycs J3NhcF9hZ2VudD1eKHRydWV8ZmFsc2UpJDtzbmRidWY9XlswLTldKyQ7dmhvc3Q9XigoW2EtekEt WjAtOV9dKik6KHRydWV8ZmFsc2UpKSgsKChbYS16QS1aMC05X10qKToodHJ1ZXxmYWxzZSkpKSok O3Zpb2Rpc2tjYWNoZT1eKG5vbmV8d3JpdGViYWNrfHdyaXRldGhyb3VnaCkkJywnMy4xJyk7Ci1z ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleTIwMDMnLCcnLCdnZW5lcmFs Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleTIwMDN4NjQnLCcn LCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdEtleTIw MDgnLCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVj dEtleTIwMDhSMicsJycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdQcm9kdWN0S2V5MjAwOHg2NCcsJycsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgUHJvZHVjdCBL ZXkgKGZvciBXaW5kb3dzIFhQKQotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Byb2R1 Y3RLZXknLCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUHJv ZHVjdEtleVdpbmRvdzcnLCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUHJvZHVjdEtleVdpbmRvdzd4NjQnLCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJf YWRkX2NvbmZpZ192YWx1ZSgnUHJvZHVjdFJQTVZlcnNpb24nLCczLjAuMC4wJywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1B1YmxpY1VSTFBvcnQnLCc4MDgwJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1F1b3RhR3JhY2VTdG9y YWdlJywnMjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUXVv dGFHcmFjZVZkc0dyb3VwJywnMjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnUXVvdGFUaHJlc2hvbGRTdG9yYWdlJywnODAnLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUXVvdGFUaHJlc2hvbGRWZHNHcm91cCcsJzgwJywnZ2Vu ZXJhbCcpOwotLS1IYW5kbGluZyBDb25uZWN0IHRvIFJEUCBjb25zb2xlIHdpdGggRnVsbHkgUXVh bGlmaWVkIFVzZXItTmFtZSAodXNlckBkb21haW4pCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnUkRQTG9naW5XaXRoRlFOJywndHJ1ZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdSZWRpcmVjdFNlcnZsZXRSZXBvcnRzUGFnZUVycm9yJywnUmVwb3J0 cyBub3QgaW5zdGFsbGVkLCBwbGVhc2UgY29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3InLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnUmVkaXJlY3RTZXJ2bGV0UmVw b3J0c1BhZ2UnLCcnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn UmVuZXdHdWVzdElwT25WZHNTdWJuZXRDaGFuZ2UnLCdmYWxzZScsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdSZW5ld0d1ZXN0SXBPblZkc1N1Ym5ldENoYW5nZU9u UGFyc2VFcnJvcicsJ2ZhbHNlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1JoZXZoTG9jYWxGU1BhdGgnLCcvZGF0YS9pbWFnZXMvJywnZ2VuZXJhbCcpOwotc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NBTldpcGVBZnRlckRlbGV0ZScsJ2ZhbHNlJywn Z2VuZXJhbCcpOwotLS1IYW5kbGluZyBTQVNMIFFPUAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1NBU0xfUU9QJywnYXV0aC1jb25mJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1NjcmlwdHNQYXRoJywnL3Vzci9zaGFyZS9lbmdpbmUnLCdnZW5lcmFs Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2VhcmNoZXNSZWZyZXNoUmF0ZUlu U2Vjb25kcycsJzEnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn U2VhcmNoUmVzdWx0c0xpbWl0JywnMTAwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9j b25maWdfdmFsdWUoJ1NlbGVjdENvbW1hbmRUaW1lb3V0JywnMTIwJywnZ2VuZXJhbCcpOwotc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlbmRTTVBPblJ1blZtJywndHJ1ZScsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTZW5kVm1UaWNrZXRVSUQnLCdm YWxzZScsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlbmRWbVRpY2tl dFVJRCcsJ2ZhbHNlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2Vu ZFZtVGlja2V0VUlEJywndHJ1ZScsJzMuMScpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1NlcnZlckNQVUxpc3QnLCcyOkludGVsIFhlb24gdy9vIFhEL05YOnZteCxzc2UyOnFlbXU2 NCwtbngsK3NzZTI7IDM6SW50ZWwgWGVvbjp2bXgsc3NlMixueDpxZW11NjQsK3NzZTI7IDQ6SW50 ZWwgQ29ucm9lIEZhbWlseTp2bXgsc3NlMixueCxjeDE2LHNzc2UzOnFlbXU2NCwrc3NlMiwrY3gx Niwrc3NzZTM7IDU6SW50ZWwgUGVucnluIEZhbWlseTp2bXgsc3NlMixueCxjeDE2LHNzc2UzLHNz ZTRfMTpxZW11NjQsK3NzZTIsK2N4MTYsK3Nzc2UzLCtzc2U0LjE7IDY6SW50ZWwgTmVoYWxlbSBG YW1pbHk6dm14LHNzZTIsbngsY3gxNixzc3NlMyxzc2U0XzEsc3NlNF8yLHBvcGNudDpxZW11NjQs K3NzZTIsK2N4MTYsK3Nzc2UzLCtzc2U0LjEsK3NzZTQuMiwrcG9wY250OyAyOkFNRCBPcHRlcm9u IEcxIHcvbyBOWDpzdm0sc3NlMjpxZW11NjQsLW54LCtzc2UyOyAzOkFNRCBPcHRlcm9uIEcxOnN2 bSxzc2UyLG54OnFlbXU2NCwrc3NlMjsgNDpBTUQgT3B0ZXJvbiBHMjpzdm0sc3NlMixueCxjeDE2 OnFlbXU2NCwrc3NlMiwrY3gxNjsgNTpBTUQgT3B0ZXJvbiBHMzpzdm0sc3NlMixueCxjeDE2LHNz ZTRhLG1pc2FsaWduc3NlLHBvcGNudCxhYm06cWVtdTY0LCtzc2UyLCtjeDE2LCtzc2U0YSwrbWlz YWxpZ25zc2UsK3BvcGNudCwrYWJtOycsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1NlcnZlckNQVUxpc3QnLCczOkludGVsIENvbnJvZSBGYW1pbHk6dm14LG54LG1vZGVs X0NvbnJvZTpDb25yb2U7IDQ6SW50ZWwgUGVucnluIEZhbWlseTp2bXgsbngsbW9kZWxfUGVucnlu OlBlbnJ5bjsgNTpJbnRlbCBOZWhhbGVtIEZhbWlseTp2bXgsbngsbW9kZWxfTmVoYWxlbTpOZWhh bGVtOyA2OkludGVsIFdlc3RtZXJlIEZhbWlseTphZXMsdm14LG54LG1vZGVsX1dlc3RtZXJlOldl c3RtZXJlOyAyOkFNRCBPcHRlcm9uIEcxOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cxOk9wdGVyb25f RzE7IDM6QU1EIE9wdGVyb24gRzI6c3ZtLG54LG1vZGVsX09wdGVyb25fRzI6T3B0ZXJvbl9HMjsg NDpBTUQgT3B0ZXJvbiBHMzpzdm0sbngsbW9kZWxfT3B0ZXJvbl9HMzpPcHRlcm9uX0czOycsJzMu MCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NlcnZlckNQVUxpc3QnLCczOklu dGVsIENvbnJvZSBGYW1pbHk6dm14LG54LG1vZGVsX0NvbnJvZTpDb25yb2U7IDQ6SW50ZWwgUGVu cnluIEZhbWlseTp2bXgsbngsbW9kZWxfUGVucnluOlBlbnJ5bjsgNTpJbnRlbCBOZWhhbGVtIEZh bWlseTp2bXgsbngsbW9kZWxfTmVoYWxlbTpOZWhhbGVtOyA2OkludGVsIFdlc3RtZXJlIEZhbWls eTphZXMsdm14LG54LG1vZGVsX1dlc3RtZXJlOldlc3RtZXJlOyAyOkFNRCBPcHRlcm9uIEcxOnN2 bSxueCxtb2RlbF9PcHRlcm9uX0cxOk9wdGVyb25fRzE7IDM6QU1EIE9wdGVyb24gRzI6c3ZtLG54 LG1vZGVsX09wdGVyb25fRzI6T3B0ZXJvbl9HMjsgNDpBTUQgT3B0ZXJvbiBHMzpzdm0sbngsbW9k ZWxfT3B0ZXJvbl9HMzpPcHRlcm9uX0czOycsJzMuMScpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1NlcnZlclJlYm9vdFRpbWVvdXQnLCczMDAnLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2V0dXBOZXR3b3Jrc1BvbGxpbmdUaW1lb3V0JywnMycs J2dlbmVyYWwnKTsKLS0tIEFkZCBzaGFyZWFibGUgZGlzayBwcm9wZXJ0eSBpbiB2ZGNfb3B0aW9u cyB0byBzdXBwb3J0IG9ubHkgMy4xIHZlcnNpb24uCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192 YWx1ZSgnU2hhcmVhYmxlRGlza0VuYWJsZWQnLCdmYWxzZScsJzIuMicpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1NoYXJlYWJsZURpc2tFbmFibGVkJywnZmFsc2UnLCczLjAnKTsK LXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTaGFyZWFibGVEaXNrRW5hYmxlZCcsJ3Ry dWUnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTaWduQ2VydFRpbWVv dXRJblNlY29uZHMnLCczMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3Zh bHVlKCdTaWduTG9ja0ZpbGUnLCcvdmFyL2xvY2svZW5naW5lLy5vcGVuc3NsLmV4Y2x1c2l2ZWxv Y2snLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIFNjcmlwdCBuYW1lIGZvciBzaWduaW5nCi1zZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU2lnblNjcmlwdE5hbWUnLCdTaWduUmVxLnNoJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NwaWNlRHJpdmVyTmFt ZUluR3Vlc3QnLCdSSEVWLVNwaWNlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1NwaWNlUmVsZWFzZUN1cnNvcktleXMnLCdzaGlmdCtmMTInLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3BpY2VUb2dnbGVGdWxsU2NyZWVuS2V5 cycsJ3NoaWZ0K2YxMScsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgRW5hYmxlIFVTQiBkZXZpY2Vz IHNoYXJpbmcgYnkgZGVmYXVsdCBpbiBTUElDRQotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1NwaWNlVXNiQXV0b1NoYXJlJywndHJ1ZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdXQU5EaXNhYmxlRWZmZWN0cycsJ2FuaW1hdGlvbicsJ2dlbmVyYWwn KTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdXQU5Db2xvckRlcHRoJywnMTYnLCdn ZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3BtQ29tbWFuZEZhaWxP dmVyUmV0cmllcycsJzMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnU1BNRmFpbE92ZXJBdHRlbXB0cycsJzMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnU3BtVkNwdUNvbnN1bXB0aW9uJywnMScsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTUUxTZXJ2ZXJJMThOUHJlZml4JywnTicsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTUUxTZXJ2ZXJMaWtlU3ludGF4 JywnTElLRScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTUUxT ZXJ2ZXJQYWdpbmdTeW50YXgnLEUnIFdIRVJFIFJvd051bSBCRVRXRUVOICUxJHMgQU5EICUyJHMn LCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU1FMU2VydmVyUGFn aW5nVHlwZScsJ1JhbmdlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1NRTFNlcnZlclNlYXJjaFRlbXBsYXRlJyxFJ1NFTEVDVCAqIEZST00gKFNFTEVDVCAqLCBS T1dfTlVNQkVSKCkgT1ZFUiglMSRzKSBhcyBSb3dOdW0gRlJPTSAoJTIkcykpIGFzIFQxKSBhcyBU MiAlMyRzJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NTSElu YWN0aXZpdHlUaW1vdXRTZWNvbmRzJywnNjAwJywnZ2VuZXJhbCcpOwotLS1IYW5kbGluZyBTUElD RSBTU0wgRW5hYmxlZAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1NTTEVuYWJsZWQn LCd0cnVlJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N0b3Jh Z2VEb21haW5GYWx1cmVUaW1lb3V0SW5NaW51dGVzJywnNScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdG9yYWdlRG9tYWluTmFtZVNpemVMaW1pdCcsJzUwJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N0b3JhZ2VQb29sTmFt ZVNpemVMaW1pdCcsJzQwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFs dWUoJ1N0b3JhZ2VQb29sTm9uT3BlcmF0aW9uYWxSZXNldFRpbWVvdXRJbk1pbicsJzMnLCdnZW5l cmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3RvcmFnZVBvb2xSZWZyZXNo VGltZUluU2Vjb25kcycsJzEwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1N1Y2NlZWRlZEpvYkNsZWFudXBUaW1lSW5NaW51dGVzJywnMTAnLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydEN1c3RvbVByb3BlcnRpZXMn LCdmYWxzZScsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRD dXN0b21Qcm9wZXJ0aWVzJywndHJ1ZScsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1N1cHBvcnRDdXN0b21Qcm9wZXJ0aWVzJywndHJ1ZScsJzMuMScpOwotc2VsZWN0IGZu X2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRlZENsdXN0ZXJMZXZlbHMnLCcyLjIsMy4wJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRlZFN0b3Jh Z2VGb3JtYXRzJywnMCcsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1 cHBvcnRlZFN0b3JhZ2VGb3JtYXRzJywnMCwyJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnU3VwcG9ydGVkU3RvcmFnZUZvcm1hdHMnLCcwLDMnLCczLjEnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdXBwb3J0ZWRWRFNNVmVyc2lvbnMnLCc0LjUsNC45 JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRHZXRE ZXZpY2VzVmlzaWJpbGl0eScsJ2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZp Z192YWx1ZSgnU3VwcG9ydEdldERldmljZXNWaXNpYmlsaXR5JywndHJ1ZScsJzMuMCcpOwotc2Vs ZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRHZXREZXZpY2VzVmlzaWJpbGl0eScs J3RydWUnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdXBwb3J0U3Rv cmFnZUZvcm1hdCcsJ2ZhbHNlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1 ZSgnU3VwcG9ydFN0b3JhZ2VGb3JtYXQnLCd0cnVlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRk X2NvbmZpZ192YWx1ZSgnU3VwcG9ydFN0b3JhZ2VGb3JtYXQnLCd0cnVlJywnMy4xJyk7Ci1zZWxl Y3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3VwcG9ydEZvcmNlQ3JlYXRlVkcnLCdmYWxzZScs JzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N1cHBvcnRGb3JjZUNyZWF0 ZVZHJywnZmFsc2UnLCczLjAnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTdXBw b3J0Rm9yY2VDcmVhdGVWRycsJ3RydWUnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmln X3ZhbHVlKCdTeXNQcmVwMkszUGF0aCcsJ2JhY2tlbmQvbWFuYWdlci9jb25mL3N5c3ByZXAvc3lz cHJlcC4yazMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnU3lz UHJlcDJLOFBhdGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAuMms4Jywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXAySzhSMlBh dGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAuMms4JywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXAySzh4NjRQYXRoJywnYmFj a2VuZC9tYW5hZ2VyL2NvbmYvc3lzcHJlcC9zeXNwcmVwLjJrOHg4NicsJ2dlbmVyYWwnKTsKLXNl bGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTeXNQcmVwRGVmYXVsdFBhc3N3b3JkJywnJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXBEZWZhdWx0 VXNlcicsJycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdTeXNQ cmVwV2luZG93czdQYXRoJywnYmFja2VuZC9tYW5hZ2VyL2NvbmYvc3lzcHJlcC9zeXNwcmVwLnc3 JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXBXaW5k b3dzN3g2NFBhdGgnLCdiYWNrZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAudzd4NjQn LCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIFBhdGggdG8gYW4gWFAgbWFjaGluZSBTeXMtUHJlcCBm aWxlLgotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1N5c1ByZXBYUFBhdGgnLCdiYWNr ZW5kL21hbmFnZXIvY29uZi9zeXNwcmVwL3N5c3ByZXAueHAnLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVGltZW91dFRvUmVzZXRWZHNJblNlY29uZHMnLCc2MCcs J2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdUaW1lVG9SZWR1Y2VG YWlsZWRSdW5PblZkc0luTWludXRlcycsJzMwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2Fk ZF9jb25maWdfdmFsdWUoJ1RydXN0c3RvcmVQYXNzJywnTm9Tb3VwNFUnLCdnZW5lcmFsJyk7Ci0t LUhhbmRsaW5nIFRydXN0c3RvcmUgVVJMCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn VHJ1c3RzdG9yZVVybCcsJy5rZXlzdG9yZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRf Y29uZmlnX3ZhbHVlKCdVa25vd25UYXNrUHJlUG9sbGluZ0xhcHNlJywnNjAwMDAnLCdnZW5lcmFs Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNlckRlZmluZWRWTVByb3BlcnRp ZXMnLCcnLCcyLjInKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdVc2VyRGVmaW5l ZFZNUHJvcGVydGllcycsJycsJzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J1VzZXJEZWZpbmVkVk1Qcm9wZXJ0aWVzJywnJywnMy4xJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnVXNlclJlZnJlc2hSYXRlJywnMzYwMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBm bl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdVc2VyU2Vzc2lvblRpbWVPdXRJbnRlcnZhbCcsJzMwJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1VzZVJ0bDgxMzlfcHYn LCd0cnVlJywnMi4yJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNlUnRsODEz OV9wdicsJ2ZhbHNlJywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNl UnRsODEzOV9wdicsJ2ZhbHNlJywnMy4xJyk7Ci0tLUhhbmRsaW5nIFVzZSBTZWN1cmUgQ29ubmVj dGlvbiB3aXRoIEhvc3RzCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVXNlU2VjdXJl Q29ubmVjdGlvbldpdGhTZXJ2ZXJzJywndHJ1ZScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdVc2VWZHNCcm9rZXJJblByb2MnLCd0cnVlJywnZ2VuZXJhbCcpOwot c2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1V0aWxpemF0aW9uVGhyZXNob2xkSW5QZXJj ZW50JywnODAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmFs aWROdW1PZk1vbml0b3JzJywnMSwyLDQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnVmNwdUNvbnN1bXB0aW9uUGVyY2VudGFnZScsJzEwJywnZ2VuZXJhbCcpOwot LS1IYW5kbGluZyBIb3N0IEluc3RhbGxhdGlvbiBCb290c3RyYXAgU2NyaXB0IFVSTAotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZkY0Jvb3RTdHJhcFVybCcsJ2h0dHA6Ly9leGFtcGxl LmNvbS9lbmdpbmUvdmRzX3NjcmlwdHMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2Nv bmZpZ192YWx1ZSgnVmRjVmVyc2lvbicsJzMuMC4wLjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnVkRTQXR0ZW1wdHNUb1Jlc2V0Q291bnQnLCcyJywnZ2VuZXJh bCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0NlcnRpZmljYXRlVmFsaWRp dHlJblllYXJzJywnNScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVl KCdWZHNGZW5jZU9wdGlvbk1hcHBpbmcnLCdhbG9tOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQ7 YXBjOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2JsYWRlY2VudGVyOnNlY3Vy ZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2RyYWM1OnNlY3VyZT1zZWN1cmUscG9ydD1p cHBvcnQ7ZXBzOnNsb3Q9cG9ydDtpbG86c2VjdXJlPXNzbCxwb3J0PWlwcG9ydDtpcG1pbGFuOjty c2E6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtyc2I6O3d0aTpzZWN1cmU9c2VjdXJlLHBvcnQ9 aXBwb3J0LHNsb3Q9cG9ydDtjaXNjb191Y3M6c2VjdXJlPXNzbCxzbG90PXBvcnQnLCdnZW5lcmFs Jyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzRmVuY2VPcHRpb25zJywnJywn Z2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlT3B0aW9u VHlwZXMnLCdzZWN1cmU9Ym9vbCxwb3J0PWludCxzbG90PWludCcsJ2dlbmVyYWwnKTsKLXNlbGVj dCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWZHNGZW5jZVR5cGUnLCdhbG9tLGFwYyxibGFkZWNl bnRlcixkcmFjNSxlcHMsaWxvLGlwbWlsYW4scnNhLHJzYix3dGksY2lzY29fdWNzJywnMi4yJyk7 Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzRmVuY2VUeXBlJywnYWxvbSxhcGMs YmxhZGVjZW50ZXIsZHJhYzUsZXBzLGlsbyxpcG1pbGFuLHJzYSxyc2Isd3RpLGNpc2NvX3Vjcycs JzMuMCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlVHlwZScsJ2Fs b20sYXBjLGJsYWRlY2VudGVyLGRyYWM1LGVwcyxpbG8saXBtaWxhbixyc2EscnNiLHd0aSxjaXNj b191Y3MnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWZHNMb2FkQmFs YW5jaW5nZUludGVydmFsSW5NaW51dGVzJywnMScsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9h ZGRfY29uZmlnX3ZhbHVlKCdWZHNMb2NhbERpc2tzQ3JpdGljYWxseUxvd0ZyZWVTcGFjZScsJzEw MCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWZHNMb2NhbERp c2tzTG93RnJlZVNwYWNlJywnNTAwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25m aWdfdmFsdWUoJ1Zkc1JlY292ZXJ5VGltZW91dEluTWludHVlcycsJzMnLCdnZW5lcmFsJyk7Ci1z ZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmRzUmVmcmVzaFJhdGUnLCcyJywnZ2VuZXJh bCcpOwotLS1IYW5kbGluZyBIb3N0IFNlbGVjdGlvbiBBbGdvcml0aG0gZGVmYXVsdCBmb3IgY2x1 c3Rlcgotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zkc1NlbGVjdGlvbkFsZ29yaXRo bScsJ05vbmUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgndmRz VGltZW91dCcsJzE4MCcsJ2dlbmVyYWwnKTsKLS0tSGFuZGxpbmcgVmlydHVhbCBNYWNoaW5lIERv bWFpbiBOYW1lCi1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgnVmlydHVhbE1hY2hpbmVE b21haW5OYW1lJywnVmlydHVhbE1hY2hpbmVEb21haW5OYW1lJywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNMzJCaXRNYXhNZW1vcnlTaXplSW5NQicsJzIwNDgw JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhN ZW1vcnlTaXplSW5NQicsJzI2MjE0NCcsJzIuMicpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ1ZNNjRCaXRNYXhNZW1vcnlTaXplSW5NQicsJzUyNDI4OCcsJzMuMCcpOwotc2VsZWN0 IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhNZW1vcnlTaXplSW5NQicsJzUyNDI4 OCcsJzMuMScpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZtR3JhY2VmdWxTaHV0 ZG93bk1lc3NhZ2UnLCdUaGUgb1ZpcnQgRW5naW5lIGlzIHNodXR0aW5nIGRvd24gdGhpcyBWaXJ0 dWFsIE1hY2hpbmUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfYWRkX2NvbmZpZ192YWx1ZSgn Vm1HcmFjZWZ1bFNodXRkb3duVGltZW91dCcsJzMwJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2Ri X2FkZF9jb25maWdfdmFsdWUoJ1ZNTWluTWVtb3J5U2l6ZUluTUInLCcyNTYnLCdnZW5lcmFsJyk7 Ci0tLU51bWJlciBvZiBzdWJzZXF1ZW50IGZhaWx1cmVzIGluIFZNIGNyZWF0aW9uIGluIGEgcG9v bCBiZWZvcmUgZ2l2aW5nIHVwIGFuZCBzdG9wIGNyZWF0aW5nIG5ldyBWTXMKLXNlbGVjdCBmbl9k Yl9hZGRfY29uZmlnX3ZhbHVlKCdWbVBvb2xNYXhTdWJzZXF1ZW50RmFpbHVyZXMnLCczJywnZ2Vu ZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1ZtUG9vbE1vbml0b3JCYXRj aFNpemUnLCc1JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUoJ1Zt UG9vbE1vbml0b3JJbnRlcnZhbEluTWludXRlcycsJzUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5f ZGJfYWRkX2NvbmZpZ192YWx1ZSgnVm1Qb29sTW9uaXRvck1heEF0dGVtcHRzJywnMycsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWbVByaW9yaXR5TWF4VmFsdWUn LCcxMDAnLCdnZW5lcmFsJyk7Ci0tLUhhbmRsaW5nIEtleWJvYXJkIExheW91dCBjb25maWd1cmF0 aW9uIGZvciBWTkMKLXNlbGVjdCBmbl9kYl9hZGRfY29uZmlnX3ZhbHVlKCdWbmNLZXlib2FyZExh eW91dCcsJ2VuLXVzJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdfdmFsdWUo J1dhaXRGb3JWZHNJbml0SW5TZWMnLCc2MCcsJ2dlbmVyYWwnKTsKLS0tVGhlIGRlZmF1bHQgbmV0 d29yayBjb25uZWN0aXZpdHkgY2hlY2sgdGltZW91dAotc2VsZWN0IGZuX2RiX2FkZF9jb25maWdf dmFsdWUoJ05ldHdvcmtDb25uZWN0aXZpdHlDaGVja1RpbWVvdXRJblNlY29uZHMnLCcxMjAnLCdn ZW5lcmFsJyk7Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gICAgICAgICAgICAg ICAgICBVcGRhdGUgd2l0aCBvdmVycmlkZSBzZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLQotc2VsZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ0RCRW5naW5lJywnUG9z dGdyZXMnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnRGVi dWdTZWFyY2hMb2dnaW5nJywnZmFsc2UnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRl X2NvbmZpZ192YWx1ZSgnRGVmYXVsdFRpbWVab25lJywnKEdNVCkgR01UIFN0YW5kYXJkIFRpbWUn LCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnRU5HSU5FRUFS TGliJywnJUpCT1NTX0hPTUUlL3N0YW5kYWxvbmUvZGVwbG95bWVudHMvZW5naW5lLmVhcicsJ2dl bmVyYWwnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdGZW5jZUFnZW50RGVm YXVsdFBhcmFtcycsJ2lsbzM6bGFucGx1cyxwb3dlcl93YWl0PTQnLCdnZW5lcmFsJyk7Ci1zZWxl Y3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnSXNNdWx0aWxldmVsQWRtaW5pc3RyYXRpb25P bicsJ3RydWUnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgn TWluaW1hbEVUTFZlcnNpb24nLCczLjEuMCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl91cGRh dGVfY29uZmlnX3ZhbHVlKCdQb3N0Z3Jlc1BhZ2luZ1N5bnRheCcsJ09GRlNFVCAoJTEkcyAtMSkg TElNSVQgJTIkcycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVl KCdQb3N0Z3Jlc1NlYXJjaFRlbXBsYXRlJywnU0VMRUNUICogRlJPTSAoJTIkcykgJTEkcykgYXMg VDEgJTMkcycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdS aGV2aExvY2FsRlNQYXRoJywnL2RhdGEvaW1hZ2VzL3JoZXYnLCdnZW5lcmFsJyk7Ci1zZWxlY3Qg Zm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2VydmVyQ1BVTGlzdCcsJzI6SW50ZWwgWGVvbiB3 L28gWEQvTlg6dm14LHNzZTI6cWVtdTY0LC1ueCwrc3NlMjsgMzpJbnRlbCBYZW9uOnZteCxzc2Uy LG54OnFlbXU2NCwrc3NlMjsgNDpJbnRlbCBDb25yb2UgRmFtaWx5OnZteCxzc2UyLG54LGN4MTYs c3NzZTM6cWVtdTY0LCtzc2UyLCtjeDE2LCtzc3NlMzsgNTpJbnRlbCBQZW5yeW4gRmFtaWx5OnZt eCxzc2UyLG54LGN4MTYsc3NzZTMsc3NlNF8xOnFlbXU2NCwrc3NlMiwrY3gxNiwrc3NzZTMsK3Nz ZTQuMTsgNjpJbnRlbCBOZWhhbGVtIEZhbWlseTp2bXgsc3NlMixueCxjeDE2LHNzc2UzLHNzZTRf MSxzc2U0XzIscG9wY250OnFlbXU2NCwrc3NlMiwrY3gxNiwrc3NzZTMsK3NzZTQuMSwrc3NlNC4y LCtwb3BjbnQ7IDI6QU1EIE9wdGVyb24gRzEgdy9vIE5YOnN2bSxzc2UyOnFlbXU2NCwtbngsK3Nz ZTI7IDM6QU1EIE9wdGVyb24gRzE6c3ZtLHNzZTIsbng6cWVtdTY0LCtzc2UyOyA0OkFNRCBPcHRl cm9uIEcyOnN2bSxzc2UyLG54LGN4MTY6cWVtdTY0LCtzc2UyLCtjeDE2OyA1OkFNRCBPcHRlcm9u IEczOnN2bSxzc2UyLG54LGN4MTYsc3NlNGEsbWlzYWxpZ25zc2UscG9wY250LGFibTpxZW11NjQs K3NzZTIsK2N4MTYsK3NzZTRhLCttaXNhbGlnbnNzZSwrcG9wY250LCthYm07JywnMi4yJyk7Ci1z ZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2VydmVyQ1BVTGlzdCcsJzM6SW50ZWwg Q29ucm9lIEZhbWlseTp2bXgsbngsbW9kZWxfQ29ucm9lOkNvbnJvZTsgNDpJbnRlbCBQZW5yeW4g RmFtaWx5OnZteCxueCxtb2RlbF9QZW5yeW46UGVucnluOyA1OkludGVsIE5laGFsZW0gRmFtaWx5 OnZteCxueCxtb2RlbF9OZWhhbGVtOk5laGFsZW07IDY6SW50ZWwgV2VzdG1lcmUgRmFtaWx5OmFl cyx2bXgsbngsbW9kZWxfV2VzdG1lcmU6V2VzdG1lcmU7IDI6QU1EIE9wdGVyb24gRzE6c3ZtLG54 LG1vZGVsX09wdGVyb25fRzE6T3B0ZXJvbl9HMTsgMzpBTUQgT3B0ZXJvbiBHMjpzdm0sbngsbW9k ZWxfT3B0ZXJvbl9HMjpPcHRlcm9uX0cyOyA0OkFNRCBPcHRlcm9uIEczOnN2bSxueCxtb2RlbF9P cHRlcm9uX0czOk9wdGVyb25fRzM7JywnMy4wJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZp Z192YWx1ZSgnU2VydmVyQ1BVTGlzdCcsJzM6SW50ZWwgQ29ucm9lIEZhbWlseTp2bXgsbngsbW9k ZWxfQ29ucm9lOkNvbnJvZTsgNDpJbnRlbCBQZW5yeW4gRmFtaWx5OnZteCxueCxtb2RlbF9QZW5y eW46UGVucnluOyA1OkludGVsIE5laGFsZW0gRmFtaWx5OnZteCxueCxtb2RlbF9OZWhhbGVtOk5l aGFsZW07IDY6SW50ZWwgV2VzdG1lcmUgRmFtaWx5OmFlcyx2bXgsbngsbW9kZWxfV2VzdG1lcmU6 V2VzdG1lcmU7IDc6SW50ZWwgU2FuZHlCcmlkZ2UgRmFtaWx5OnZteCxueCxtb2RlbF9TYW5keUJy aWRnZTpTYW5keUJyaWRnZTsgMjpBTUQgT3B0ZXJvbiBHMTpzdm0sbngsbW9kZWxfT3B0ZXJvbl9H MTpPcHRlcm9uX0cxOyAzOkFNRCBPcHRlcm9uIEcyOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cyOk9w dGVyb25fRzI7IDQ6QU1EIE9wdGVyb24gRzM6c3ZtLG54LG1vZGVsX09wdGVyb25fRzM6T3B0ZXJv bl9HMzsnLCczLjEnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdTZXJ2ZXJD UFVMaXN0JywnMzpJbnRlbCBDb25yb2UgRmFtaWx5OnZteCxueCxtb2RlbF9Db25yb2U6Q29ucm9l OyA0OkludGVsIFBlbnJ5biBGYW1pbHk6dm14LG54LG1vZGVsX1BlbnJ5bjpQZW5yeW47IDU6SW50 ZWwgTmVoYWxlbSBGYW1pbHk6dm14LG54LG1vZGVsX05laGFsZW06TmVoYWxlbTsgNjpJbnRlbCBX ZXN0bWVyZSBGYW1pbHk6YWVzLHZteCxueCxtb2RlbF9XZXN0bWVyZTpXZXN0bWVyZTsgNzpJbnRl bCBTYW5keUJyaWRnZSBGYW1pbHk6dm14LG54LG1vZGVsX1NhbmR5QnJpZGdlOlNhbmR5QnJpZGdl OyAyOkFNRCBPcHRlcm9uIEcxOnN2bSxueCxtb2RlbF9PcHRlcm9uX0cxOk9wdGVyb25fRzE7IDM6 QU1EIE9wdGVyb24gRzI6c3ZtLG54LG1vZGVsX09wdGVyb25fRzI6T3B0ZXJvbl9HMjsgNDpBTUQg T3B0ZXJvbiBHMzpzdm0sbngsbW9kZWxfT3B0ZXJvbl9HMzpPcHRlcm9uX0czOyA1OkFNRCBPcHRl cm9uIEc0OnN2bSxueCxtb2RlbF9PcHRlcm9uX0c0Ok9wdGVyb25fRzQ7JywnMy4xJyk7Ci1zZWxl Y3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnU2lnbkxvY2tGaWxlJywnL3Zhci9sb2NrL292 aXJ0LWVuZ2luZS8ub3BlbnNzbC5leGNsdXNpdmVsb2NrJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZu X2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1NwaWNlRHJpdmVyTmFtZUluR3Vlc3QnLCd7IndpbmRv d3MiOiAiUkhFVi1TcGljZSIsICJsaW51eCIgOiAieG9yZy14MTEtZHJ2LXF4bCIgfScsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdTdXBwb3J0ZWRDbHVzdGVy TGV2ZWxzJywnMi4yLDMuMCwzLjEnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2Nv bmZpZ192YWx1ZSgnU3VwcG9ydGVkU3RvcmFnZUZvcm1hdHMnLCcwLDMnLCczLjEnKTsKLXNlbGVj dCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdTdXBwb3J0ZWRWRFNNVmVyc2lvbnMnLCc0LjUs NC45LDQuMTAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgn VmRjVmVyc2lvbicsJzMuMS4wLjAnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2Nv bmZpZ192YWx1ZSgnUHJvZHVjdFJQTVZlcnNpb24nLCczLjEuMC4wJywnZ2VuZXJhbCcpOwotc2Vs ZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlT3B0aW9uTWFwcGluZycsJ2Fs b206c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDthcGM6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9y dCxzbG90PXBvcnQ7YmxhZGVjZW50ZXI6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydCxzbG90PXBv cnQ7ZHJhYzU6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtlcHM6c2xvdD1wb3J0O2lsbzpzZWN1 cmU9c3NsLHBvcnQ9aXBwb3J0O2lwbWlsYW46O3JzYTpzZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0 O3JzYjo7d3RpOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2Npc2NvX3Vjczpz ZWN1cmU9c3NsLHNsb3Q9cG9ydCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29u ZmlnX3ZhbHVlKCdWZHNGZW5jZU9wdGlvbk1hcHBpbmcnLCdhbG9tOnNlY3VyZT1zZWN1cmUscG9y dD1pcHBvcnQ7YXBjOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2JsYWRlY2Vu dGVyOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1wb3J0O2RyYWM1OnNlY3VyZT1zZWN1 cmUscG9ydD1pcHBvcnQ7ZXBzOnNsb3Q9cG9ydDtpbG86c2VjdXJlPXNzbCxwb3J0PWlwcG9ydDtp cG1pbGFuOjtyc2E6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydDtyc2I6O3d0aTpzZWN1cmU9c2Vj dXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtjaXNjb191Y3M6c2VjdXJlPXNzbCxzbG90PXBvcnQ7 aWxvMzonLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2NvbmZpZ192YWx1ZSgnVmRz RmVuY2VPcHRpb25NYXBwaW5nJywnYWxvbTpzZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0O2FwYzpz ZWN1cmU9c2VjdXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtibGFkZWNlbnRlcjpzZWN1cmU9c2Vj dXJlLHBvcnQ9aXBwb3J0LHNsb3Q9cG9ydDtkcmFjNTpzZWN1cmU9c2VjdXJlLHNsb3Q9cG9ydDtl cHM6c2xvdD1wb3J0O2lsbzpzZWN1cmU9c3NsLHBvcnQ9aXBwb3J0O2lwbWlsYW46O3JzYTpzZWN1 cmU9c2VjdXJlLHBvcnQ9aXBwb3J0O3JzYjo7d3RpOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQs c2xvdD1wb3J0O2Npc2NvX3VjczpzZWN1cmU9c3NsLHNsb3Q9cG9ydCcsJ2dlbmVyYWwnKTsKLXNl bGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdWZHNGZW5jZU9wdGlvbk1hcHBpbmcnLCdh bG9tOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQ7YXBjOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBv cnQsc2xvdD1wb3J0O2JsYWRlY2VudGVyOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQsc2xvdD1w b3J0O2RyYWM1OnNlY3VyZT1zZWN1cmUsc2xvdD1wb3J0O2VwczpzbG90PXBvcnQ7aWxvOnNlY3Vy ZT1zc2wscG9ydD1pcHBvcnQ7aXBtaWxhbjo7cnNhOnNlY3VyZT1zZWN1cmUscG9ydD1pcHBvcnQ7 cnNiOjt3dGk6c2VjdXJlPXNlY3VyZSxwb3J0PWlwcG9ydCxzbG90PXBvcnQ7Y2lzY29fdWNzOnNl Y3VyZT1zc2wsc2xvdD1wb3J0O2lsbzM6JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX3VwZGF0 ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlVHlwZScsJ2Fsb20sYXBjLGJsYWRlY2VudGVyLGRyYWM1 LGVwcyxpbG8saWxvMyxpcG1pbGFuLHJzYSxyc2Isd3RpLGNpc2NvX3VjcycsJzMuMCcpOwotc2Vs ZWN0IGZuX2RiX3VwZGF0ZV9jb25maWdfdmFsdWUoJ1Zkc0ZlbmNlVHlwZScsJ2Fsb20sYXBjLGJs YWRlY2VudGVyLGRyYWM1LGVwcyxpbG8saXBtaWxhbixyc2EscnNiLHd0aSxjaXNjb191Y3MnLCcy LjInKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfY29uZmlnX3ZhbHVlKCdWbUdyYWNlZnVsU2h1dGRv d25NZXNzYWdlJywnVGhlIG9WaXJ0IEVuZ2luZSBpcyBzaHV0dGluZyBkb3duIHRoaXMgVmlydHVh bCBNYWNoaW5lJywnZ2VuZXJhbCcpOwotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0t ICAgVXBkYXRlIG9ubHkgaWYgZGVmYXVsdCBub3QgY2hhbmdlZCBzZWN0aW9uCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLQotc2VsZWN0IGZuX2RiX3VwZGF0ZV9kZWZhdWx0X2NvbmZpZ192 YWx1ZSgnQWRVc2VySWQnLCdleGFtcGxlLmNvbTowMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAw MDAwMDAwMDAnLCcnLCdnZW5lcmFsJyxmYWxzZSk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1 bHRfY29uZmlnX3ZhbHVlKCdBZFVzZXJOYW1lJywnZXhhbXBsZS5jb206U2FtcGxlVXNlcicsJycs J2dlbmVyYWwnLGZhbHNlKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9jb25maWdfdmFs dWUoJ0FkVXNlclBhc3N3b3JkJywnZXhhbXBsZS5jb206U2FtcGxlUGFzc3dvcmQnLCcnLCdnZW5l cmFsJyxmYWxzZSk7Ci0tLSBJbmNyZWFzZSBBc3luY1Rhc2tab21iaWVUYXNrTGlmZUluTWludXRl cyB0byA1MCBob3VycyBpZiBpdCdzIHRoZSBkZWZhdWx0IDUgaG91cnMuCi1zZWxlY3QgZm5fZGJf dXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdBc3luY1Rhc2tab21iaWVUYXNrTGlmZUluTWlu dXRlcycsJzMwMCcsJzMwMDAnLCdnZW5lcmFsJyxmYWxzZSk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRl X2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdEb21haW5OYW1lJywnZXhhbXBsZS5jb20nLCcnLCdnZW5l cmFsJyxmYWxzZSk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdF bXVsYXRlZE1hY2hpbmUnLCdyaGVsNi4wLjAnLCAncGMtMC4xNCcsJzMuMCcsZmFsc2UpOwotc2Vs ZWN0IGZuX2RiX3VwZGF0ZV9kZWZhdWx0X2NvbmZpZ192YWx1ZSgnTERBUFNlY3VyaXR5QXV0aGVu dGljYXRpb24nLCdHU1NBUEknLCdkZWZhdWx0OkdTU0FQSScsJ2dlbmVyYWwnLGZhbHNlKTsKLXNl bGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9jb25maWdfdmFsdWUoJ0xEQVBTZWN1cml0eUF1dGhl bnRpY2F0aW9uJywnU0lNUExFJywnZGVmYXVsdDpTSU1QTEUnLCdnZW5lcmFsJyxmYWxzZSk7Ci1z ZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdvVmlydElTT3NSZXBvc2l0 b3J5UGF0aCcsJ292aXJ0LWlzb3MnLCAnL3Vzci9zaGFyZS9yaGV2LWh5cGVydmlzb3InLCdnZW5l cmFsJyxmYWxzZSk7Ci1zZWxlY3QgZm5fZGJfdXBkYXRlX2RlZmF1bHRfY29uZmlnX3ZhbHVlKCdW ZHNMb2NhbERpc2tzQ3JpdGljYWxseUxvd0ZyZWVTcGFjZScsJzEwMCcsJzUwMCcsJ2dlbmVyYWwn LGZhbHNlKTsKLXNlbGVjdCBmbl9kYl91cGRhdGVfZGVmYXVsdF9jb25maWdfdmFsdWUoJ1Zkc0xv Y2FsRGlza3NMb3dGcmVlU3BhY2UnLCc1MDAnLCAnMTAwMCcsJ2dlbmVyYWwnLGZhbHNlKTsKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLS0gICAgICAgICAgICAgIENsZWFudXAgZGVwcmVj YXRlZCBjb25maWd1cmF0aW9uIHZhbHVlcyBzZWN0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLQotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ0VOTWFpbEVuYWJsZVNz bCcsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdFTk1haWxI b3N0JywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ0VOTWFp bFBhc3N3b3JkJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUo J0VOTWFpbFBvcnQnLCdnZW5lcmFsJyk7Ci1zZWxlY3QgZm5fZGJfZGVsZXRlX2NvbmZpZ192YWx1 ZSgnRU5NYWlsVXNlcicsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3Zh bHVlKCdGcmVlU3BhY2VDcml0aWNhbExvdycsJ2dlbmVyYWwnKTsKLXNlbGVjdCBmbl9kYl9kZWxl dGVfY29uZmlnX3ZhbHVlKCdJbWFnZXNTeW5jcm9uaXphdGlvblRpbWVvdXQnLCdnZW5lcmFsJyk7 Ci1zZWxlY3QgZm5fZGJfZGVsZXRlX2NvbmZpZ192YWx1ZSgnTGRhcFNlcnZlcnMnLCczLjAnKTsK LXNlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdOZXRDb25zb2xlUG9ydCcsJ2dlbmVy YWwnKTsKLXNlbGVjdCBmbl9kYl9kZWxldGVfY29uZmlnX3ZhbHVlKCdQcmVkZWZpbmVkVk1Qcm9w ZXJ0aWVzJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ1Jw bXNSZXBvc2l0b3J5VXJsJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdf dmFsdWUoJ1N5c1ByZXAzLjBQYXRoJywnZ2VuZXJhbCcpOwotc2VsZWN0IGZuX2RiX2RlbGV0ZV9j b25maWdfdmFsdWUoJ1VzZUVOR0lORVJlcG9zaXRvcnlSUE1zJywnZ2VuZXJhbCcpOwotc2VsZWN0 IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ1Zkc0Vycm9yc0ZpbGVOYW1lJywnZ2VuZXJhbCcp Owotc2VsZWN0IGZuX2RiX2RlbGV0ZV9jb25maWdfdmFsdWUoJ1ZNNjRCaXRNYXhNZW1vcnlTaXpl SW5NQicsJ2dlbmVyYWwnKTsKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSAgICAg ICAgICAgICAgICAgIFNwbGl0IGNvbmZpZyBzZWN0aW9uCi0tLSBUaGUgcHVycG9zZSBvZiB0aGlz IHNlY3Rpb24gaXMgdG8gdHJlYXQgY29uZmlnIG9wdGlvbiB0aGF0IHdhcyBvbmNlCi0tLSBnZW5l cmFsLCBhbmQgc2hvdWxkIG5vdyBiZSB2ZXJzaW9uLXNwZWNpZmljLgotLS0gVG8gZWFzZSB0aGlz IHRoZSBmbl9kYl9zcGxpdF9jb25maWdfdmFsdWUgY2FuIGJlIHVzZWQsIGlucHV0IGlzIHRoZQot LS0gb3B0aW9uX25hbWUsIHRoZSBvbGQgdmFsdWUgYW5kIHRoZSBuZXcgdmFsdWUuIFJlc3VsdCBp cyBjcmVhdGluZyBvbmUgcm93IGZvciBlYWNoIG9sZAotLS0gY2x1c3RlciBsZXZlbCB3aXRoIHRo ZSBvcmlnaW5hbCB2YWx1ZSBpZiBleGlzdHMsIG9yIHRoZSBpbnB1dCBvbGQgdmFsdWUKLS0tIGFu ZCBvbmUgcm93IGZvciB0aGUgbmV3ZXN0IG9uZSwgd2l0aCB0aGUgaW5wdXQgdmFsdWUuCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXNlbGVjdCBmbl9kYl9zcGxpdF9jb25maWdfdmFsdWUo J1NwaWNlU2VjdXJlQ2hhbm5lbHMnLCdzbWFpbixzaW5wdXRzJywnc21haW4sc2lucHV0cyxzY3Vy c29yLHNwbGF5YmFjayxzcmVjb3JkLHNkaXNwbGF5Jyk7Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotLS0gICAgICAgICAgICAgICAgICBTaW1wbGUgZGlyZWN0IHVwZGF0ZXMgc2VjdGlv bgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIHVwZGF0ZSBrZXlzIGZyb20gaW50 ZXJuYWwgdmVyc2lvbiAyLjMgdG8gb2ZmaWNpYWwgMy4wYAotdXBkYXRlIHZkY19vcHRpb25zIHNl dCB2ZXJzaW9uID0gJzMuMCcgd2hlcmUgdmVyc2lvbiA9ICcyLjMnOwotCi0tLSB1cGRhdGUgYm9v dHN0cmFwIHBhdGgKLQotdXBkYXRlIHZkY19vcHRpb25zIHNldCBvcHRpb25fdmFsdWUgPSByZXBs YWNlIChvcHRpb25fdmFsdWUgLCAnLzQvNicsICcnKQotd2hlcmUgb3B0aW9uX25hbWUgPSAnVmRj Qm9vdFN0cmFwVXJsJzsKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tLSAgICAgICAg ICAgICAgICAgY29tcGxleCB1cGRhdGVzIHVzaW5nIGEgdGVtcG9yYXJ5IGZ1bmN0aW9uIHNlY3Rp b24KLS0tICAgICAgICAgICAgICAgICBlYWNoIHRlbXBvcmFyeSBmdW5jdGlvbiBuYW1lIHNob3Vs ZCBzdGFydCB3aXRoIF9fdGVtcAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0tIHJl bW92ZSBkZWZhdWx0IHNlY3VyaXR5IGF1dGhlbnRpY2F0aW9uCi0KLUNSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIF9fdGVtcF91cGdyYWRlX3JlbW92ZV9kZWZhdWx0X3NlY3VyaXR5X2F1dGgoYV9p bnB1dCBWQVJDSEFSKDQwKSkKLSAgUkVUVVJOUyB2b2lkIEFTCi0kQk9EWSQKLSAgIERFQ0xBUkUK LSAgIHZfZW50cnkgVkFSQ0hBUig0MDAwKTsKLSAgIHZfcG9zIGludGVnZXI7Ci1CRUdJTgotICAg IHZfZW50cnkgOj0gb3B0aW9uX3ZhbHVlIEZST00gdmRjX29wdGlvbnMgV0hFUkUgb3B0aW9uX25h bWU9J0xEQVBTZWN1cml0eUF1dGhlbnRpY2F0aW9uJzsKLSAgICB2X3BvcyA6PSBzdHJwb3MobG93 ZXIodl9lbnRyeSksICcsJyB8fCBsb3dlcihhX2lucHV0KSB8fCAnLCcpOwotCi0gICAgSUYgKHZf cG9zID0gMCkgVEhFTgotICAgICAgICAgICAgICAgIFVQREFURSB2ZGNfb3B0aW9ucwotICAgICAg ICAgICAgICAgIFNFVCBvcHRpb25fdmFsdWUgPSByZWdleHBfcmVwbGFjZShvcHRpb25fdmFsdWUs ICcsPycgfHwgYV9pbnB1dCB8fCAnLD8nICwnJywnaScpCi0gICAgICAgICAgICAgICAgV0hFUkUg b3B0aW9uX25hbWUgPSAnTERBUFNlY3VyaXR5QXV0aGVudGljYXRpb24nOwotICAgIEVMU0UKLSAg ICAgICAgICAgICAgICBVUERBVEUgdmRjX29wdGlvbnMKLSAgICAgICAgICAgICAgICBTRVQgb3B0 aW9uX3ZhbHVlID0gcmVnZXhwX3JlcGxhY2Uob3B0aW9uX3ZhbHVlLCAnLCcgfHwgYV9pbnB1dCB8 fCAnLCcgLCcsJywnaScpCi0gICAgICAgICAgICAgICAgV0hFUkUgb3B0aW9uX25hbWUgPSAnTERB UFNlY3VyaXR5QXV0aGVudGljYXRpb24nOwotICAgIEVORCBJRjsKLQotRU5EOyAkQk9EWSQKLUxB TkdVQUdFIHBscGdzcWw7Ci0KLVNFTEVDVCBfX3RlbXBfdXBncmFkZV9yZW1vdmVfZGVmYXVsdF9z ZWN1cml0eV9hdXRoKCdkZWZhdWx0OkdTU0FQSScpOwotU0VMRUNUIF9fdGVtcF91cGdyYWRlX3Jl bW92ZV9kZWZhdWx0X3NlY3VyaXR5X2F1dGgoJ2RlZmF1bHQ6U0lNUExFJyk7Ci0KLURST1AgRlVO Q1RJT04gX190ZW1wX3VwZ3JhZGVfcmVtb3ZlX2RlZmF1bHRfc2VjdXJpdHlfYXV0aChWQVJDSEFS KTsKLQotCi0tLS0gdXBncmFkZSBkb21haW5zIHRvIGhhdmUgYSBwcm92aWRlciB0eXBlCi0KLWNy ZWF0ZSBvciByZXBsYWNlIGZ1bmN0aW9uIF9fdGVtcF91cGRhdGVfbGRhcF9wcm92aWVyX3R5cGVz KCkKLVJFVFVSTlMgdm9pZAotQVMgJHByb2NlZHVyZSQKLSAgICBERUNMQVJFCi0gICAgdl9kb21h aW5zIHRleHQ7Ci0gICAgdl9wcm92aWRlcl90eXBlcyB0ZXh0OwotICAgIHZfdGVtcCB0ZXh0Owot ICAgIHZfdmFsdWVzIHJlY29yZDsKLSAgICBib28gc21hbGxpbnQ7Ci0KLUJFR0lOCi0KLSAgICB2 X3RlbXAgOj0gJyc7Ci0gICAgdl9kb21haW5zIDo9IChTRUxFQ1Qgb3B0aW9uX3ZhbHVlIEZST00g dmRjX29wdGlvbnMgd2hlcmUgb3B0aW9uX25hbWUgPSAnRG9tYWluTmFtZScpOwotICAgIHZfcHJv dmlkZXJfdHlwZXMgOj0gKFNFTEVDVCBvcHRpb25fdmFsdWUgRlJPTSB2ZGNfb3B0aW9ucyB3aGVy ZSBvcHRpb25fbmFtZSA9ICdMREFQUHJvdmlkZXJUeXBlcycpOwotICAgIGJvbyA6PSAoU0VMRUNU IGNvdW50KCopIGZyb20gcmVnZXhwX21hdGNoZXModl9wcm92aWRlcl90eXBlcyAsJ1s6XScpKTsK LQotICAgIElGIChib28gPSAwKSBUSEVOCi0KLSAgICAgICAgRk9SIHZfdmFsdWVzIGluIHNlbGVj dCByZWdleHBfc3BsaXRfdG9fdGFibGUodl9kb21haW5zLCAnLCcpIGFzIHZhbAotICAgICAgICBM T09QCi0gICAgICAgICAgICBJRiAobGVuZ3RoKHZfdmFsdWVzLnZhbCkgPiAwKSBUSEVOCi0gICAg ICAgICAgICAgICAgdl90ZW1wIDo9IHZfdGVtcCB8fCB2X3ZhbHVlcy52YWwgfHwgJzpnZW5lcmFs LCc7Ci0gICAgICAgICAgICBFTkQgSUY7Ci0gICAgICAgIEVORCBMT09QOwotCi0gICAgICAgIHZf dGVtcCA9IHJ0cmltKHZfdGVtcCwnLCcpOwotCi0gICAgICAgIFVQREFURSB2ZGNfb3B0aW9ucyBT RVQgb3B0aW9uX3ZhbHVlID0gdl90ZW1wIHdoZXJlIG9wdGlvbl9uYW1lID0gJ0xEQVBQcm92aWRl clR5cGVzJzsKLQotICAgIEVORCBJRjsKLQotRU5EOyAkcHJvY2VkdXJlJAotTEFOR1VBR0UgcGxw Z3NxbDsKLQotU0VMRUNUICBfX3RlbXBfdXBkYXRlX2xkYXBfcHJvdmllcl90eXBlcygpOwotRFJP UCBGVU5DVElPTiBfX3RlbXBfdXBkYXRlX2xkYXBfcHJvdmllcl90eXBlcygpOwotCmRpZmYgLS1n aXQgYS9iYWNrZW5kL21hbmFnZXIvZGJzY3JpcHRzL3VwZ3JhZGUvcHJlX3VwZ3JhZGUvY3VzdG9t LnNxbCBiL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS9jdXN0 b20uc3FsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTQ5NzNkLi4wMDAwMDAwCi0t LSBhL2JhY2tlbmQvbWFuYWdlci9kYnNjcmlwdHMvdXBncmFkZS9wcmVfdXBncmFkZS9jdXN0b20u c3FsCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKLSAgIEN1cnJlbnRseSB3ZSBoYXZlIGEgYnVnIHRoYXQgdXBnYXJk ZSAwMzAxMDI1MCB3YXMgY2hlcnJ5LXBpY2tlZCBhbmQgaW5zdGFsbGVkIGFmdGVyIDAzMDEwMTMw Ci0gICBUaGlzIGNhdXNlZCBhbGwgc2NyaXB0cyBiZXR3ZWVuIDAzMDEwMTQwIGFuZCAwMzAxMDI0 MCBub3QgdG8gcnVuLgotICAgVGhpcyBzY3JpcHRzIHJlbW92ZXMgdGhlIDAzMDEwMjUwIGZyb20g c2NoZW1hX3ZlcnNpb24gYW5kIHVwZGF0ZXMgMDMwMTAxMzAgdG8gYmUgdGhlIGN1cmVudCB2ZXJz aW9uCi0gICBTbywgYWZ0ZXIgdGhhdCAsIGFsbCBzY3JpcHRzIGZyb20gMDMwMTAxNDAgYW5kIHVw IHdpbGwgcnVuCi0gICBTaW5jZSAwMzAxMDI1MCB3YXMgYSBjb25maWd1cmF0aW9uIGNoYW5nZSB0 aGF0IGlzIGFscmVhZHkgaGFuZGxlZCBpbiB0aGUgbmV3IGNvbmZpZy5zcWwsIG5vIG90aGVyIGhh bmRsaW5nIGlzIG5lZWRlZC4KLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov Ci0KLXVwZGF0ZSBzY2hlbWFfdmVyc2lvbiBzZXQgY3VycmVudCA9IHRydWUgd2hlcmUgdmVyc2lv biA9ICcwMzAxMDEzMCcKLWFuZCBleGlzdHMoc2VsZWN0IDEgZnJvbSBzY2hlbWFfdmVyc2lvbiB3 aGVyZSB2ZXJzaW9uID0gJzAzMDEwMjUwJyBhbmQgY3VycmVudCA9IHRydWUpOwotCi1kZWxldGUg ZnJvbSBzY2hlbWFfdmVyc2lvbgotd2hlcmUgdmVyc2lvbiA9ICcwMzAxMDI1MCcgYW5kIGN1cnJl bnQgPSB0cnVlOwotCi0tLSBBZGQgYSBzdXBwb3J0ZWRfZW5naW5lcyBjb2x1bW4gdG8gdmRzX2R5 bmFtaWMgcmVvbHZpbmcgYSAzLjAgdG8gMy4xIHVwZ3JhZGUgaXNzdWUKLS0tIFRoaXMgY29sdW1u IHdhcyBwcm9iYWJseSBhZGRlZCB0byB0aGUgY3JlYXRlX3RhYmxlcy5zcWwgYW5kIG5vdCB0byB0 aGUgdXBncmFkZSBzbwotLS0gaXQgZXhpc3RzIG9uIGFueSAzLjEgYmFzZWQgREIgYnV0IGlzIG1p c3NpbmcgZnJvbSAzLjAgYmFzZWQgREIgdGhhdCBpcyB1cGdyYWRlZCB0byAzLjEKLQotc2VsZWN0 IGZuX2RiX2FkZF9jb2x1bW4oJ3Zkc19keW5hbWljJywnc3VwcG9ydGVkX2VuZ2luZXMnLCd2YXJj aGFyKDQwKScpOwotLSAKMS43LjcuNgoK ------=_Part_107483_796891437.1342952672740--

Sounds like a good candidate for engine_3.1 gerrit branch (after push to master), and probably a release blocker as well. ----- Original Message -----
----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Sunday, July 22, 2012 12:41:36 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Eli Mesika" <emesika@redhat.com> To: "Dead Horse" <deadhorseconsulting@gmail.com> Cc: users@ovirt.org Sent: Sunday, July 22, 2012 10:46:48 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
----- Original Message -----
From: "Dead Horse" <deadhorseconsulting@gmail.com> To: "Robert Middleswarth" <robert@middleswarth.net> Cc: "Eli Mesika" <emesika@redhat.com>, users@ovirt.org Sent: Friday, July 20, 2012 6:04:26 PM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Any thoughts here on this, should I file a bug? Per: http://wiki.ovirt.org/wiki/Second_Release Working upgrade is one of the release criteria. I will help in any way possible to get a 3.0 to 3.1 upgrade path working.
- DHC
On Thu, Jul 19, 2012 at 3:40 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
If it helps here is the contents of "upgrade.sh.log":
I had succeeded to simulate the problem, will update you ASAP.
Hi again Problem was resolved 1) pre-upgrade scripts did not run because no md5 change was found in files after restore 2) pre-upgrade scripts did not run in the correct order after fixing 1)
I will issue a patch upstream for that, please let me know if you want me to send you the patch before if you want to test it on your environment.
Opened BZ 842119 patch attached
Thanks
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:30:52.500231-05') as timestamp),cast(trim(' 2012-07-19 15:30:52.565532-05') as timestamp),'INSTALLED',false,''); **************************
********* QUERY ********** create or replace function __temp_fn_create_schema_version () returns void AS $procedure$ begin if not exists (select 1 from information_schema.tables where table_name = 'schema_version') then CREATE SEQUENCE schema_version_seq INCREMENT BY 1 START WITH 1; CREATE TABLE schema_version ( id INTEGER DEFAULT NEXTVAL('schema_version_seq') NOT NULL, "version" varchar(10) NOT NULL, script varchar(255) NOT NULL, checksum varchar(128), installed_by varchar(30) NOT NULL, started_at timestamp DEFAULT now(), ended_at timestamp , state character varying(15) NOT NULL, "current" boolean NOT NULL, CONSTRAINT schema_version_primary_key PRIMARY KEY (id) );
insert into schema_version(version,script,checksum,installed_by,ended_at,state,current) values ('03000000','upgrade/03_00_0000_add_schema_version.sql','0','postgres',now(),'INSTALLED',true); end if;
END; $procedure$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** select __temp_fn_create_schema_version(); **************************
********* QUERY ********** DROP FUNCTION __temp_fn_create_schema_version(); **************************
DROP FUNCTION ********* QUERY ********** CREATE OR REPLACE FUNCTION __temp_Upgrade_add_job_table() RETURNS void AS $function$ BEGIN IF NOT EXISTS (SELECT * FROM information_schema.tables WHERE table_name ILIKE 'job') THEN
-- Add the job table.
CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS;
END IF; END; $function$ LANGUAGE plpgsql; **************************
CREATE FUNCTION ********* QUERY ********** SELECT * FROM __temp_Upgrade_add_job_table(); **************************
********* QUERY ********** DROP FUNCTION __temp_Upgrade_add_job_table(); **************************
DROP FUNCTION ********* QUERY ********** insert into schema_version(version,script,checksum,installed_by,started_at,ended_at,state,current,comment) values (trim('03010260'),'upgrade/03_01_0260_add_job_table.sql','c74d309cfb8f9d802e54f2ff66d560b4','postgres', cast(trim(' 2012-07-19 15:34:00.060083-05') as timestamp),cast(trim(' 2012-07-19 15:34:00.124151-05') as timestamp),'INSTALLED',false,''); **************************
On Thu, Jul 19, 2012 at 2:26 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
Eli, I am following the procedure for DB backup/restore from here: http://wiki.ovirt.org/wiki/Backup_engine_db and here: http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Virtualization/3.0/html... (Which the RHEV proceadure BTW has a syntax error): "psql -U postgres -d rhevm -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql" should be: psql -U postgres -W -f /usr/share/rhevm/db-backups/dump_RHEVDB_BACKUP_`date "+%Y%m%d_%R"`.sql
Either of the above procedures worked with nightly builds up until about a month back. I was able to backup a 3.0 database and restore it per the above on a system running the nightly build, then run the upgrade.sh script located in /usr/share/ovirt-engine/dbscripts. There is no script in /usr/share/ovirt-engine/dbscripts called "upgrade_db.sh" I always ran upgrade.sh -u postgres and it worked fine.
I am not using create_db.sh script in /usr/share/ovirt-engine/dbscirpts to create the database and objects. The createdb command I use is the standard postgres command to create an new empty database. (/bin/createdb"). Thus what imports is actually a clean restore of the 3.0 database
Similarly I am using "/bin/dropdb" to destroy/delete the engine database.
Thus importing the dump from 3.0 works using those procedures but results in the previous error I noted when attempting to run "/usr/share/ovirt-engine/dbscripts/upgrade.sh".
- DHC
On Thu, Jul 19, 2012 at 7:04 AM, Robert Middleswarth < robert@middleswarth.net > wrote:
On 07/19/2012 04:10 AM, Eli Mesika wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: users@ovirt.org Sent: Thursday, July 19, 2012 2:22:10 AM Subject: Re: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Forgot reply-all sending to ovirt-users as well. -DHC
On Wed, Jul 18, 2012 at 6:03 PM, Dead Horse < deadhorseconsulting@gmail.com > wrote:
3.0 engine database dump attached as: "engine.sql.tar.gz" - DHC
On Wed, Jul 18, 2012 at 1:05 PM, Eli Mesika < emesika@redhat.com
wrote:
----- Original Message -----
From: "Dead Horse" < deadhorseconsulting@gmail.com > To: Users@ovirt.org Sent: Wednesday, July 18, 2012 9:08:55 AM Subject: [Users] ovirt-engine upgrade 3.0 to 3.1 issue
Steps taken:
Load up bare metal or a VM with FC16 Install 3.0 from http://www.ovirt.org/releases/ stable/fedora/16/ Setup up something minimal (EG: engine-setup then setup a basic datacenter/cluster/etc) Add a FC16 or EL based node for fun as well and some VM's if feeling ambitious.
Back up database: systemctl stop jboss-as.service pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting --disable-triggers -U postgres --format=p -f "/temp/engine.sql" engine
Back up the following files within /etc/pki/ovirt-engine from a 3.0 install (preserve owner/group). /etc/pki/ovirt-engine/cacert. conf /etc/pki/ovirt-engine/ca.pem /etc/pki/ovirt-engine/cert. conf /etc/pki/ovirt-engine/certs/ 01.pem /etc/pki/ovirt-engine/certs/ 02.pem /etc/pki/ovirt-engine/certs/ ca.der /etc/pki/ovirt-engine/certs/ engine.cer /etc/pki/ovirt-engine/certs/ engine.der /etc/pki/ovirt-engine/ database.txt /etc/pki/ovirt-engine/ database.txt.attr /etc/pki/ovirt-engine/ database.txt.attr.old /etc/pki/ovirt-engine/ database.txt.old /etc/pki/ovirt-engine/keys/ engine_id_rsa /etc/pki/ovirt-engine/keys/ engine.ssh.key.txt /etc/pki/ovirt-engine/private/ ca.pem /etc/pki/ovirt-engine/ requests/ca.csr /etc/pki/ovirt-engine/ requests/engine.req
Load up bare metal or a VM with FC17 (Upgrade from FC16 --> FC17 is still rather messy) Install 3.1 from http://www.ovirt.org/releases/ beta/fedora/17/
Run engine-setup to get an initial setup. stop ovirt-engine (systemctl stop ovirt-engine.service)
Copy the previously backed up /etc/pki/ovirt-engine files from above over top of the ones just generated (be sure to preserve owner/group EG: cp -a)
Drop the existing engine database: dropdb -U postgres engine Create a new blank database: createdb -U postgres engine Well, the problem is that you are creating here the database with createdb. This creates all DB objects and runs all upgrade scripts. Then when you try to restore from your file , you have problems, since your file also tries to create the same objects. instead of : createdb -U postgres engine do :
echo "create database engine;" | psql -U postgres template1 Then continue on the next steps and it will work.
optionally, in your backup command: instead of pg_dump -C -E UTF8 --column-inserts --disable-dollar-quoting use pg_dump --data-only -E UTF8 --column-inserts --disable-dollar-quoting
then , createdb will create the db & schema and your engine.sql will include only "insert"
Eli I am anything but a PG expert but exporting only the data then inserting it on top of the upgrade scheme is a really dumb idea. It might work today if the scheme doesn't change much but it could really breaks things tomorrow if the scheme sees a massive change. You were correct Just create the database restore then run the upgrade scheme.
Thanks Robert
Populate with with the backup of the above 3.0 database: psql -U postgres -d engine -w < "/temp/engine.sql" Can you please attach the engine.sql file so I will be able to reproduce , thanks
Attempt to upgrade the DBschema via /usr/share/ovirt-engine/ dbscripts/upgrade.sh upgrade.sh -u postgres
The DB schema upgrade will fail like so:
Running upgrade script upgrade/03_01_0260_add_job_ table.sql psql:upgrade/03_01_0260_add_ job_table.sql:29: NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "pk_jobs" for table "job" CONTEXT: SQL statement "CREATE TABLE job ( job_id UUID NOT NULL, action_type VARCHAR(50) NOT NULL, description TEXT NOT NULL, status VARCHAR(32) NOT NULL, owner_id UUID, visible BOOLEAN NOT NULL DEFAULT true, start_time TIMESTAMP WITH TIME ZONE NOT NULL, end_time TIMESTAMP WITH TIME ZONE default NULL, last_update_time TIMESTAMP WITH TIME ZONE default NULL, correlation_id VARCHAR(50) NOT NULL, CONSTRAINT pk_jobs PRIMARY KEY(job_id) ) WITH OIDS" PL/pgSQL function "__temp_upgrade_add_job_table" line 6 at SQL statement psql:/tmp/tmp.mXz8U4xpWr:3: ERROR: column "comment" of relation "schema_version" does not exist LINE 1: ...ksum,installed_by,started_ at,ended_at,state,current, comment)
My assumption here is that if the DB schema upgrade would work, that this should be the cleanest way to upgrade from 3.0 to 3.1.
- DHC
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
______________________________ _________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/ mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users
participants (4)
-
Dead Horse
-
Eli Mesika
-
Ofer Schreiber
-
Robert Middleswarth