Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1myVVJ-0003NJ-UB for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Dec 2021 08:55:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1myVVH-0006M6-8t for pgsql-hackers@arkaria.postgresql.org; Sat, 18 Dec 2021 08:55:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1myVVG-0006Lx-Pd for pgsql-hackers@lists.postgresql.org; Sat, 18 Dec 2021 08:55:42 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1myVVC-0001D6-S6 for pgsql-hackers@postgresql.org; Sat, 18 Dec 2021 08:55:42 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id v138so13162591ybb.8 for ; Sat, 18 Dec 2021 00:55:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:cc; bh=SF6BVJ7/esint3+NWQS/G5pvUViQC1JRFA6JkdtMGTQ=; b=CZny7LigX2+tjhpYjb9lHxAZTDT4LGWJBV6vLv+ufgZFaQeTao4Zk/si5NCPPCy1cw FO2g/P+ohdUMJlUCWEqd7GWE+dmC9VmY8RNRhrqD8fLI2uNblbTsfk5/Mn5m5wGlhJPp XgDXZ/8sRTmxuSpBXMZ2cQ+q9Pw+9kyzgP+Q56wEmienckPT46ZL+KJzKs/vpNqZNtb+ efO753BkI/Lpd1WFh/XpPbSHQuFlwhpTRM8C3TqXDG+XrFwSMDQ7O/PkijxPNv8pLoHz V91khfrzqEGEk3X8zOfYCdGviQvRXwatNH72hgrwZTO5mhrMjCVqNf2ZPKSJ3UKBlh4Q vIBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:cc; bh=SF6BVJ7/esint3+NWQS/G5pvUViQC1JRFA6JkdtMGTQ=; b=bzHhydox6ppb18iGQimq7R3JyUILpFhg3kFdWD5B1I7EgFYZekKe4f1u4qFNPXVqI1 zgtcV69g9Sv0owsqTHw0LTv6sG6+SVu4gddYF2annJ5kXf1XRmM/3a6EbJLeROmsRHJQ c9qZ6IdoVN01yL6mHr3RnbNZ8gxpR9823wIhbenLVnw3PZ6uwyaWc7vL5+yZgSdld0An cLUfUWmKX8ARQzSzjST4EbQvqp6RxRDd3CBM2yOmjzcE1Dy0tktn18JX1KvDmprwMRgi te+W8S9o5uGZuhIWzz6rih0KbmOnjSE014wUvWPq/eFzMSQKgH0TT3if7FJXAxxLPJdt esqg== X-Gm-Message-State: AOAM530QlkyW40GyFwtN77mJnYntfsdNrC6Zr1NNC0nUavJoqUI7VGuF ssh9vJMvYn4x29dLuv09vgTbybj66dPhu7BoPaSoX+kt1ZY= X-Google-Smtp-Source: ABdhPJzbF5z4YN6nSEQ/lChgqYpfrQ5zJZMU/oVgqzZunYVyl0jvZquyus2tGbEk+Q4GCcZkMn4ONrmEpLG146NomNM= X-Received: by 2002:a25:a2cd:: with SMTP id c13mr8601238ybn.95.1639817735691; Sat, 18 Dec 2021 00:55:35 -0800 (PST) MIME-Version: 1.0 References: <1197371508.4255.1327.camel@ebony.site> <1197660423.1536.8.camel@dell.linuxdev.us.dell.com> <15007.1197674561@sss.pgh.pa.us> <200712141830.16877.trent_shipley@qwest.net> <87k31ftoe0.fsf_-_@commandprompt.com> In-Reply-To: From: Damir Belyalov Date: Sat, 18 Dec 2021 11:55:24 +0300 Message-ID: Subject: Re: POC PATCH: copy from ... exceptions to: (was Re: VLDB Features) Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000a25fcb05d367d1b4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000a25fcb05d367d1b4 Content-Type: multipart/alternative; boundary="000000000000a25fca05d367d1b2" --000000000000a25fca05d367d1b2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello. Wrote a patch implementing COPY with ignoring errors in rows using block subtransactions. Syntax: COPY [table] FROM [file/stdin] WITH IGNORE_ERROS; Examples: CREATE TABLE check_ign_err (n int, m int, k int); COPY check_ign_err FROM STDIN WITH IGNORE_ERRORS; 1 1 1 2 2 2 2 3 3 3 \. WARNING: COPY check_ign_err, line 2: "2 2 2 2" SELECT * FROM check_ign_err; n | m | k ---+---+--- 1 | 1 | 1 3 | 3 | 3 (2 rows) ################################################## TRUNCATE check_ign_err; COPY check_ign_err FROM STDIN WITH IGNORE_ERRORS; 1 1 1 2 2 3 3 3 \. WARNING: COPY check_ign_err, line 2: "2 2" SELECT * FROM check_ign_err; n | m | k ---+---+--- 1 | 1 | 1 3 | 3 | 3 (2 rows) ################################################## TRUNCATE check_ign_err; COPY check_ign_err FROM STDIN WITH IGNORE_ERRORS; 1 1 1 2 a 2 3 3 3 \. WARNING: COPY check_ign_err, line 2, column m: "a" SELECT * FROM check_ign_err; n | m | k ---+---+--- 1 | 1 | 1 3 | 3 | 3 (2 rows) Regards, Damir =D0=BF=D1=82, 10 =D0=B4=D0=B5=D0=BA. 2021 =D0=B3. =D0=B2 21:48, Pavel Stehu= le : > > > 2014-12-26 11:41 GMT+01:00 Pavel Stehule : > >> >> >> 2014-12-25 22:23 GMT+01:00 Alex Shulgin : >> >>> Trent Shipley writes: >>> >>> > On Friday 2007-12-14 16:22, Tom Lane wrote: >>> >> Neil Conway writes: >>> >> > By modifying COPY: COPY IGNORE ERRORS or some such would instruct >>> COPY >>> >> > to drop (and log) rows that contain malformed data. That is, rows >>> with >>> >> > too many or too few columns, rows that result in constraint >>> violations, >>> >> > and rows containing columns where the data type's input function >>> raises >>> >> > an error. The last case is the only thing that would be a bit >>> tricky to >>> >> > implement, I think: you could use PG_TRY() around the >>> InputFunctionCall, >>> >> > but I guess you'd need a subtransaction to ensure that you reset >>> your >>> >> > state correctly after catching an error. >>> >> >>> >> Yeah. It's the subtransaction per row that's daunting --- not only >>> the >>> >> cycles spent for that, but the ensuing limitation to 4G rows importe= d >>> >> per COPY. >>> > >>> > You could extend the COPY FROM syntax with a COMMIT EVERY n clause. >>> This >>> > would help with the 4G subtransaction limit. The cost to the ETL >>> process is >>> > that a simple rollback would not be guaranteed send the process back >>> to it's >>> > initial state. There are easy ways to deal with the rollback issue >>> though. >>> > >>> > A {NO} RETRY {USING algorithm} clause might be useful. If the NO >>> RETRY >>> > option is selected then the COPY FROM can run without subtransactions >>> and in >>> > excess of the 4G per transaction limit. NO RETRY should be the >>> default since >>> > it preserves the legacy behavior of COPY FROM. >>> > >>> > You could have an EXCEPTIONS TO {filename|STDERR} clause. I would not >>> give the >>> > option of sending exceptions to a table since they are presumably >>> malformed, >>> > otherwise they would not be exceptions. (Users should re-process >>> exception >>> > files if they want an if good then table a else exception to table b >>> ...) >>> > >>> > EXCEPTIONS TO and NO RETRY would be mutually exclusive. >>> > >>> > >>> >> If we could somehow only do a subtransaction per failure, things wou= ld >>> >> be much better, but I don't see how. >>> >>> Hello, >>> >>> Attached is a proof of concept patch for this TODO item. There is no >>> docs yet, I just wanted to know if approach is sane. >>> >>> The added syntax is like the following: >>> >>> COPY [table] FROM [file/program/stdin] EXCEPTIONS TO [file or stdout] >>> >>> The way it's done it is abusing Copy Both mode and from my limited >>> testing, that seems to just work. The error trapping itself is done >>> using PG_TRY/PG_CATCH and can only catch formatting or before-insert >>> trigger errors, no attempt is made to recover from a failed unique >>> constraint, etc. >>> >>> Example in action: >>> >>> postgres=3D# \d test_copy2 >>> Table "public.test_copy2" >>> Column | Type | Modifiers >>> --------+---------+----------- >>> id | integer | >>> val | integer | >>> >>> postgres=3D# copy test_copy2 from program 'seq 3' exceptions to stdout; >>> 1 >>> NOTICE: missing data for column "val" >>> CONTEXT: COPY test_copy2, line 1: "1" >>> 2 >>> NOTICE: missing data for column "val" >>> CONTEXT: COPY test_copy2, line 2: "2" >>> 3 >>> NOTICE: missing data for column "val" >>> CONTEXT: COPY test_copy2, line 3: "3" >>> NOTICE: total exceptions ignored: 3 >>> >>> postgres=3D# \d test_copy1 >>> Table "public.test_copy1" >>> Column | Type | Modifiers >>> --------+---------+----------- >>> id | integer | not null >>> >>> postgres=3D# set client_min_messages to warning; >>> SET >>> postgres=3D# copy test_copy1 from program 'ls /proc' exceptions to stdo= ut; >>> ... >>> vmstat >>> zoneinfo >>> postgres=3D# >>> >>> Limited performance testing shows no significant difference between >>> error-catching and plain code path. For example, timing >>> >>> copy test_copy1 from program 'seq 1000000' [exceptions to stdout] >>> >>> shows similar numbers with or without the added "exceptions to" clause. >>> >>> Now that I'm sending this I wonder if the original comment about the >>> need for subtransaction around every loaded line still holds. Any >>> example of what would be not properly rolled back by just PG_TRY? >>> >> >> this method is unsafe .. exception handlers doesn't free memory usually = - >> there is risk of memory leaks, source leaks >> >> you can enforce same performance with block subtransactions - when you >> use subtransaction for 1000 rows, then impact of subtransactions is mini= mal >> >> when block fails, then you can use row level subtransaction - it works >> well when you expect almost correct data. >> > > Two years ago I wrote a extension that did it - but I have not time to > finish it and push to upstream. > > Regards > > Pavel > > >> >> Regards >> >> Pavel >> >> >>> >>> Happy hacking! >>> -- >>> Alex >>> >>> >>> >>> -- >>> Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) >>> To make changes to your subscription: >>> http://www.postgresql.org/mailpref/pgsql-hackers >>> >>> >> > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers > --000000000000a25fca05d367d1b2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello.

Wrote a p= atch implementing COPY with ignoring errors in rows using block subtransact= ions.

Syntax: COPY [table] FROM [file/stdin] WITH IGNORE= _ERROS;

Examples:
CREATE TABLE check= _ign_err (n int, m int, k int);
COPY check_ign_err FROM STDIN WITH IGNOR= E_ERRORS;
1 1 1
2 2 2 2
3 3 3
\.
WARNING: =C2=A0COPY = check_ign_err, line 2: "2 2 2 2"
SELECT * FRO= M check_ign_err;
=C2=A0n | m | k
---+---+---
=C2=A01 | 1 | 1
= =C2=A03 | 3 | 3
(2 rows)

##################= ################################

TRUNCATE check_ig= n_err;
COPY check_ign_err FROM STDIN WITH IGNORE_ERRORS;
1 1 1
2 2=
3 3 3
\.
WARNING: =C2=A0COPY check_ign_err, line 2: &q= uot;2 2"
SELECT * FROM check_ign_err;
=C2=A0n | m | k
---+--= -+---
=C2=A01 | 1 | 1
=C2=A03 | 3 | 3
(2 rows)

<= /div>
##################################################

TRUNCATE check_ign_err;
COPY check_ign_err FROM ST= DIN WITH IGNORE_ERRORS;
1 1 1
2 a 2
3 3 3
\.
WARN= ING: =C2=A0COPY check_ign_err, line 2, column m: "a"
SELECT * = FROM check_ign_err;
=C2=A0n | m | k
---+---+---
=C2=A01 | 1 | 1=C2=A03 | 3 | 3
(2 rows)


=

Regards, Damir

=D0=BF=D1=82, 10 =D0=B4=D0=B5= =D0=BA. 2021 =D0=B3. =D0=B2 21:48, Pavel Stehule <pavel.stehule@gmail.com>:


2014-12-26 11:41 GMT+01:00 Pavel = Stehule <pavel.stehule@gmail.com>:


2014-12-25 22:23 GMT+01:00 = Alex Shulgin <ash@commandprompt.com>:
Trent Shipley <trent_shipley@qwest.net> writ= es:

> On Friday 2007-12-14 16:22, Tom Lane wrote:
>> Neil Conway <neilc@samurai.com> writes:
>> > By modifying COPY: COPY IGNORE ERRORS or some such would inst= ruct COPY
>> > to drop (and log) rows that contain malformed data. That is, = rows with
>> > too many or too few columns, rows that result in constraint v= iolations,
>> > and rows containing columns where the data type's input f= unction raises
>> > an error. The last case is the only thing that would be a bit= tricky to
>> > implement, I think: you could use PG_TRY() around the InputFu= nctionCall,
>> > but I guess you'd need a subtransaction to ensure that yo= u reset your
>> > state correctly after catching an error.
>>
>> Yeah.=C2=A0 It's the subtransaction per row that's dauntin= g --- not only the
>> cycles spent for that, but the ensuing limitation to 4G rows impor= ted
>> per COPY.
>
> You could extend the COPY FROM syntax with a COMMIT EVERY n clause.=C2= =A0 This
> would help with the 4G subtransaction limit.=C2=A0 The cost to the ETL= process is
> that a simple rollback would not be guaranteed send the process back t= o it's
> initial state.=C2=A0 There are easy ways to deal with the rollback iss= ue though.
>
> A {NO} RETRY {USING algorithm} clause might be useful.=C2=A0 =C2=A0If = the NO RETRY
> option is selected then the COPY FROM can run without subtransactions = and in
> excess of the 4G per transaction limit.=C2=A0 NO RETRY should be the d= efault since
> it preserves the legacy behavior of COPY FROM.
>
> You could have an EXCEPTIONS TO {filename|STDERR} clause. I would not = give the
> option of sending exceptions to a table since they are presumably malf= ormed,
> otherwise they would not be exceptions.=C2=A0 (Users should re-process= exception
> files if they want an if good then table a else exception to table b .= ..)
>
> EXCEPTIONS TO and NO RETRY would be mutually exclusive.
>
>
>> If we could somehow only do a subtransaction per failure, things w= ould
>> be much better, but I don't see how.

Hello,

Attached is a proof of concept patch for this TODO item.=C2=A0 There is no<= br> docs yet, I just wanted to know if approach is sane.

The added syntax is like the following:

=C2=A0 COPY [table] FROM [file/program/stdin] EXCEPTIONS TO [file or stdout= ]

The way it's done it is abusing Copy Both mode and from my limited
testing, that seems to just work.=C2=A0 The error trapping itself is done using PG_TRY/PG_CATCH and can only catch formatting or before-insert
trigger errors, no attempt is made to recover from a failed unique
constraint, etc.

Example in action:

postgres=3D# \d test_copy2
=C2=A0 Table "public.test_copy2"
=C2=A0Column |=C2=A0 Type=C2=A0 =C2=A0| Modifiers
--------+---------+-----------
=C2=A0id=C2=A0 =C2=A0 =C2=A0| integer |
=C2=A0val=C2=A0 =C2=A0 | integer |

postgres=3D# copy test_copy2 from program 'seq 3' exceptions to std= out;
1
NOTICE:=C2=A0 missing data for column "val"
CONTEXT:=C2=A0 COPY test_copy2, line 1: "1"
2
NOTICE:=C2=A0 missing data for column "val"
CONTEXT:=C2=A0 COPY test_copy2, line 2: "2"
3
NOTICE:=C2=A0 missing data for column "val"
CONTEXT:=C2=A0 COPY test_copy2, line 3: "3"
NOTICE:=C2=A0 total exceptions ignored: 3

postgres=3D# \d test_copy1
=C2=A0 Table "public.test_copy1"
=C2=A0Column |=C2=A0 Type=C2=A0 =C2=A0| Modifiers
--------+---------+-----------
=C2=A0id=C2=A0 =C2=A0 =C2=A0| integer | not null

postgres=3D# set client_min_messages to warning;
SET
postgres=3D# copy test_copy1 from program 'ls /proc' exceptions to = stdout;
...
vmstat
zoneinfo
postgres=3D#

Limited performance testing shows no significant difference between
error-catching and plain code path.=C2=A0 For example, timing

=C2=A0 copy test_copy1 from program 'seq 1000000' [exceptions to st= dout]

shows similar numbers with or without the added "exceptions to" c= lause.

Now that I'm sending this I wonder if the original comment about the need for subtransaction around every loaded line still holds.=C2=A0 Any
example of what would be not properly rolled back by just PG_TRY?

this method is unsa= fe .. exception handlers doesn't free memory usually - there is risk of= memory leaks, source leaks

you can enforce same performance with block subtransactions - when= you use subtransaction for 1000 rows, then impact of subtransactions is mi= nimal

when block fails, then you can use row level subtra= nsaction - it works well when you expect almost correct data.

Two years ago I wrote a exte= nsion that did it - but I have not time to finish it and push to upstream.<= br>
Regards

Pavel
=C2=A0

Regards

Pave= l
=C2=A0

Happy hacking!
--
Alex



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers




--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers=
--000000000000a25fca05d367d1b2-- --000000000000a25fcb05d367d1b4 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-COPY-IGNORE_ERRORS-option.patch" Content-Disposition: attachment; filename="0001-COPY-IGNORE_ERRORS-option.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kxbl1cmh0 RnJvbSBiMmRiZTExZjEwMzY1NWJmODQ1YWFiYzNkN2FmMzY5N2QxNDQxYjQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW1pciBCZWx5YWxvdiA8ZGFtLmJlbDA3QGdtYWlsLmNvbT4K RGF0ZTogRnJpLCAxNSBPY3QgMjAyMSAxMTo1NToxOCArMDMwMApTdWJqZWN0OiBbUEFUQ0hdIENP UFkgSUdOT1JFX0VSUk9SUyBvcHRpb24KCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwg ICAgICAgICAgICAgICB8ICAxMyArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5LmMgICAgICAg ICAgICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMgICAgICAgICAg fCAgNzIgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYyAgICAgfCAg MTMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgfCAgIDggKy0K IHNyYy9iYWNrZW5kL3V0aWxzLy5naXRpZ25vcmUgICAgICAgICAgICAgfCAgIDEgLQogc3JjL2Jh Y2tlbmQvdXRpbHMvZXJyY29kZXMuaCAgICAgICAgICAgICB8IDM1NCArKysrKysrKysrKysrKysr KysrKysrKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICB8ICAgMyAr LQogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oIHwgICAxICsKIHNyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb3B5Mi5vdXQgICAgICB8ICAzMiArKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29w eTIuc3FsICAgICAgICAgICB8ICAyNiArKwogMTMgZmlsZXMgY2hhbmdlZCwgNTI1IGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRp bHMvZXJyY29kZXMuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29weS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKaW5kZXggNDYyNGM4ZjRjOS4uNWNhOGZmODc2ZCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb3B5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9jb3B5LnNnbWwKQEAgLTM0LDYgKzM0LDcgQEAgQ09QWSB7IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZQog CiAgICAgRk9STUFUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JtYXRfbmFtZTwv cmVwbGFjZWFibGU+CiAgICAgRlJFRVpFIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmJvb2xlYW48L3JlcGxhY2VhYmxlPiBdCisgICAgSUdOT1JFX0VSUk9SUyBbIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5ib29sZWFuPC9yZXBsYWNlYWJsZT4gXQogICAgIERFTElNSVRF UiAnPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlbGltaXRlcl9jaGFyYWN0ZXI8L3Jl cGxhY2VhYmxlPicKICAgICBOVUxMICc8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVs bF9zdHJpbmc8L3JlcGxhY2VhYmxlPicKICAgICBIRUFERVIgWyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF0KQEAgLTIzMyw2ICsyMzQsMTggQEAg Q09QWSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNl YWJsZT4gWyAoIDxyZXBsYWNlYWJsZQogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5JR05PUkVfRVJST1JT PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRHJv cCByb3dzIHRoYXQgY29udGFpbiBtYWxmb3JtZWQgZGF0YSB3aGlsZSBjb3B5aW5nLiBUaGF0IGlz IHJvd3MKKyAgICAgIGNvbnRhaW5pbmcgc3ludGF4IGVycm9ycyBpbiBkYXRhLCByb3dzIHdpdGgg dG9vIG1hbnkgb3IgdG9vIGZldyBjb2x1bW5zLAorICAgICAgcm93cyB0aGF0IHJlc3VsdCBpbiBj b25zdHJhaW50IHZpb2xhdGlvbnMsIHJvd3MgY29udGFpbmluZyBjb2x1bW5zIHdoZXJlCisgICAg ICB0aGUgZGF0YSB0eXBlJ3MgaW5wdXQgZnVuY3Rpb24gcmFpc2VzIGFuIGVycm9yLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlz dGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPkRFTElNSVRFUjwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvY29weS5jCmluZGV4IDUzZjQ4NTMxNDEuLjlkZGM4YzNkOTYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHkuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb3B5LmMKQEAgLTMzNyw2ICszMzcsNyBAQCBQcm9jZXNzQ29weU9wdGlvbnMo UGFyc2VTdGF0ZSAqcHN0YXRlLAogewogCWJvb2wJCWZvcm1hdF9zcGVjaWZpZWQgPSBmYWxzZTsK IAlib29sCQlmcmVlemVfc3BlY2lmaWVkID0gZmFsc2U7CisJYm9vbAkJaWdub3JlX2Vycm9yc19z cGVjaWZpZWQgPSBmYWxzZTsKIAlib29sCQloZWFkZXJfc3BlY2lmaWVkID0gZmFsc2U7CiAJTGlz dENlbGwgICAqb3B0aW9uOwogCkBAIC0zNzcsNiArMzc4LDEzIEBAIFByb2Nlc3NDb3B5T3B0aW9u cyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlmcmVlemVfc3BlY2lmaWVkID0gdHJ1ZTsKIAkJCW9w dHNfb3V0LT5mcmVlemUgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKIAkJfQorCQllbHNlIGlmIChz dHJjbXAoZGVmZWwtPmRlZm5hbWUsICJpZ25vcmVfZXJyb3JzIikgPT0gMCkKKwkJeworCQkJaWYg KGlnbm9yZV9lcnJvcnNfc3BlY2lmaWVkKQorCQkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRl ZmVsLCBwc3RhdGUpOworCQkJaWdub3JlX2Vycm9yc19zcGVjaWZpZWQgPSB0cnVlOworCQkJb3B0 c19vdXQtPmlnbm9yZV9lcnJvcnMgPSBkZWZHZXRCb29sZWFuKGRlZmVsKTsKKwkJfQogCQllbHNl IGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJkZWxpbWl0ZXIiKSA9PSAwKQogCQl7CiAJCQlp ZiAob3B0c19vdXQtPmRlbGltKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29w eWZyb20uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHlmcm9tLmMKaW5kZXggZjM2NmE4MThh MS4uZDQxNjIyMmZhZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb20u YworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5ZnJvbS5jCkBAIC04NTIsOSArODUyLDc1 IEBAIENvcHlGcm9tKENvcHlGcm9tU3RhdGUgY3N0YXRlKQogCiAJCUV4ZWNDbGVhclR1cGxlKG15 c2xvdCk7CiAKLQkJLyogRGlyZWN0bHkgc3RvcmUgdGhlIHZhbHVlcy9udWxscyBhcnJheSBpbiB0 aGUgc2xvdCAqLwotCQlpZiAoIU5leHRDb3B5RnJvbShjc3RhdGUsIGVjb250ZXh0LCBteXNsb3Qt PnR0c192YWx1ZXMsIG15c2xvdC0+dHRzX2lzbnVsbCkpCi0JCQlicmVhazsKKwkJLyoKKwkJICog SWYgb3B0aW9uIElHTk9SRV9FUlJPUlMgaXMgZW5hYmxlZCwgQ09QWSBza2lwIHJvd3Mgd2l0aCBl cnJvcnMuCisJCSAqIE5leHRDb3B5RnJvbSgpIGRpcmVjdGx5IHN0b3JlIHRoZSB2YWx1ZXMvbnVs bHMgYXJyYXkgaW4gdGhlIHNsb3QuCisJCSAqLworCQlpZiAoY3N0YXRlLT5vcHRzLmlnbm9yZV9l cnJvcnMpCisJCXsKKwkJCWJvb2wgYnJlYWtfZm9yID0gZmFsc2U7CisJCQlib29sIHNraXBfdHVw bGVfaWdub3JlX2Vycm9ycyA9IGZhbHNlOworCQkJTWVtb3J5Q29udGV4dCBjY3h0ID0gQ3VycmVu dE1lbW9yeUNvbnRleHQ7CisJCQlSZXNvdXJjZU93bmVyIG9sZG93bmVyID0gQ3VycmVudFJlc291 cmNlT3duZXI7CisKKwkJCUJlZ2luSW50ZXJuYWxTdWJUcmFuc2FjdGlvbihOVUxMKTsKKwkJCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhjY3h0KTsKKworCQkJUEdfVFJZKCk7CisJCQl7CisJCQkJaWYg KCFOZXh0Q29weUZyb20oY3N0YXRlLCBlY29udGV4dCwgbXlzbG90LT50dHNfdmFsdWVzLCBteXNs b3QtPnR0c19pc251bGwpKQorCQkJCXsKKwkJCQkJLy8gY2FuJ3QgZG8gYnJlYWsgaW4gUEdfVFJZ CisJCQkJCWJyZWFrX2ZvciA9IHRydWU7CisJCQkJfQorCisJCQkJUmVsZWFzZUN1cnJlbnRTdWJU cmFuc2FjdGlvbigpOworCQkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhjY3h0KTsKKwkJCQlDdXJy ZW50UmVzb3VyY2VPd25lciA9IG9sZG93bmVyOworCQkJfQorCQkJUEdfQ0FUQ0goKTsKKwkJCXsK KwkJCQlNZW1vcnlDb250ZXh0IGVjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oY2N4dCk7CisJ CQkJRXJyb3JEYXRhICplcnJkYXRhID0gQ29weUVycm9yRGF0YSgpOworCisJCQkJc3dpdGNoIChl cnJkYXRhLT5zcWxlcnJjb2RlKQorCQkJCXsKKwkJCQkJY2FzZSBFUlJDT0RFX0JBRF9DT1BZX0ZJ TEVfRk9STUFUOgorCQkJCQljYXNlIEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9O OgorCQkJCQkJc2tpcF90dXBsZV9pZ25vcmVfZXJyb3JzID0gdHJ1ZTsKKwkJCQkJCWVsb2coV0FS TklORywgZXJyZGF0YS0+Y29udGV4dCk7CisKKwkJCQkJCVJvbGxiYWNrQW5kUmVsZWFzZUN1cnJl bnRTdWJUcmFuc2FjdGlvbigpOworCQkJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKGNjeHQpOwor CQkJCQkJQ3VycmVudFJlc291cmNlT3duZXIgPSBvbGRvd25lcjsKKworCQkJCQkJRXhlY0NsZWFy VHVwbGUobXlzbG90KTsKKwkJCQkJCU1lbVNldChteXNsb3QtPnR0c192YWx1ZXMsIDAsIGNzdGF0 ZS0+YXR0cl9jb3VudCAqIHNpemVvZihEYXR1bSkpOworCQkJCQkJTWVtU2V0KG15c2xvdC0+dHRz X2lzbnVsbCwgdHJ1ZSwgY3N0YXRlLT5hdHRyX2NvdW50ICogc2l6ZW9mKGJvb2wpKTsKKworCQkJ CQkJYnJlYWs7CisJCQkJCWRlZmF1bHQ6CisJCQkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8oZWN4 dCk7CisJCQkJCQlQR19SRV9USFJPVygpOworCQkJCX0KKworCQkJCUZsdXNoRXJyb3JTdGF0ZSgp OworCQkJCUZyZWVFcnJvckRhdGEoZXJyZGF0YSk7CisJCQkJZXJyZGF0YSA9IE5VTEw7CisJCQl9 CisJCQlQR19FTkRfVFJZKCk7CisKKwkJCWlmIChicmVha19mb3IpCisJCQkJYnJlYWs7CisKKwkJ CWlmIChza2lwX3R1cGxlX2lnbm9yZV9lcnJvcnMpCisJCQkJY29udGludWU7CisJCX0KKwkJZWxz ZQorCQl7CisJCQlpZiAoIU5leHRDb3B5RnJvbShjc3RhdGUsIGVjb250ZXh0LCBteXNsb3QtPnR0 c192YWx1ZXMsIG15c2xvdC0+dHRzX2lzbnVsbCkpCisJCQkJYnJlYWs7CisJCX0KIAogCQlFeGVj U3RvcmVWaXJ0dWFsVHVwbGUobXlzbG90KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29weWZyb21wYXJzZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weWZyb21wYXJz ZS5jCmluZGV4IGFhYzEwMTY1ZWMuLjcwMmI3MDg2MWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvcHlmcm9tcGFyc2UuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb3B5 ZnJvbXBhcnNlLmMKQEAgLTgxNyw2ICs4MTcsNyBAQCBOZXh0Q29weUZyb20oQ29weUZyb21TdGF0 ZSBjc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwKIAl0dXBEZXNjID0gUmVsYXRpb25HZXRE ZXNjcihjc3RhdGUtPnJlbCk7CiAJbnVtX3BoeXNfYXR0cnMgPSB0dXBEZXNjLT5uYXR0czsKIAlh dHRyX2NvdW50ID0gbGlzdF9sZW5ndGgoY3N0YXRlLT5hdHRudW1saXN0KTsKKwljc3RhdGUtPmF0 dHJfY291bnQgPSBhdHRyX2NvdW50OwogCiAJLyogSW5pdGlhbGl6ZSBhbGwgdmFsdWVzIGZvciBy b3cgdG8gTlVMTCAqLwogCU1lbVNldCh2YWx1ZXMsIDAsIG51bV9waHlzX2F0dHJzICogc2l6ZW9m KERhdHVtKSk7CkBAIC04OTMsNiArODk0LDcgQEAgTmV4dENvcHlGcm9tKENvcHlGcm9tU3RhdGUg Y3N0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsCiAJCQkJCQkJCQkJICBzdHJpbmcsCiAJCQkJ CQkJCQkJICB0eXBpb3BhcmFtc1ttXSwKIAkJCQkJCQkJCQkgIGF0dC0+YXR0dHlwbW9kKTsKKwog CQkJaWYgKHN0cmluZyAhPSBOVUxMKQogCQkJCW51bGxzW21dID0gZmFsc2U7CiAJCQljc3RhdGUt PmN1cl9hdHRuYW1lID0gTlVMTDsKQEAgLTE0NDYsMTAgKzE0NDgsMTcgQEAgQ29weVJlYWRBdHRy aWJ1dGVzVGV4dChDb3B5RnJvbVN0YXRlIGNzdGF0ZSkKIAlpZiAoY3N0YXRlLT5tYXhfZmllbGRz IDw9IDApCiAJewogCQlpZiAoY3N0YXRlLT5saW5lX2J1Zi5sZW4gIT0gMCkKLQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCShlcnJjb2RlKEVSUkNPREVfQkFEX0NPUFlfRklMRV9GT1JNQVQpLAorCQl7 CisJCQlpZiAoY3N0YXRlLT5vcHRzLmlnbm9yZV9lcnJvcnMpCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GT1JfSUdOT1JFX0VSUk9SUyksCiAJCQkJCSBlcnJtc2co ImV4dHJhIGRhdGEgYWZ0ZXIgbGFzdCBleHBlY3RlZCBjb2x1bW4iKSkpOworCQkJZWxzZQorCQkJ CWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0JBRF9DT1BZX0ZJTEVfRk9S TUFUKSwKKwkJCQkJCWVycm1zZygiZXh0cmEgZGF0YSBhZnRlciBsYXN0IGV4cGVjdGVkIGNvbHVt biIpKSk7CiAJCXJldHVybiAwOworCQl9CiAJfQogCiAJcmVzZXRTdHJpbmdJbmZvKCZjc3RhdGUt PmF0dHJpYnV0ZV9idWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBi L3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggODZjZTMzYmQ5Ny4uNWY2ODYzZTVlMSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CkBAIC02NzQsNyArNjc0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAogCUhBTkRMRVIgSEFWSU5HIEhFQURFUl9QIEhPTEQgSE9VUl9QCiAKLQlJREVOVElUWV9QIElG X1AgSUxJS0UgSU1NRURJQVRFIElNTVVUQUJMRSBJTVBMSUNJVF9QIElNUE9SVF9QIElOX1AgSU5D TFVERQorCUlERU5USVRZX1AgSUZfUCBJR05PUkVfRVJST1JTIElMSUtFIElNTUVESUFURSBJTU1V VEFCTEUgSU1QTElDSVRfUCBJTVBPUlRfUCBJTl9QIElOQ0xVREUKIAlJTkNMVURJTkcgSU5DUkVN RU5UIElOREVYIElOREVYRVMgSU5IRVJJVCBJTkhFUklUUyBJTklUSUFMTFkgSU5MSU5FX1AKIAlJ Tk5FUl9QIElOT1VUIElOUFVUX1AgSU5TRU5TSVRJVkUgSU5TRVJUIElOU1RFQUQgSU5UX1AgSU5U RUdFUgogCUlOVEVSU0VDVCBJTlRFUlZBTCBJTlRPIElOVk9LRVIgSVMgSVNOVUxMIElTT0xBVElP TgpAQCAtMzE2MCw2ICszMTYwLDEwIEBAIGNvcHlfb3B0X2l0ZW06CiAJCQkJewogCQkJCQkkJCA9 IG1ha2VEZWZFbGVtKCJmcmVlemUiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCBAMSk7CiAJ CQkJfQorCQkJfCBJR05PUkVfRVJST1JTCisJCQkJeworCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJp Z25vcmVfZXJyb3JzIiwgKE5vZGUgKiltYWtlSW50ZWdlcih0cnVlKSwgQDEpOworCQkJCX0KIAkJ CXwgREVMSU1JVEVSIG9wdF9hcyBTY29uc3QKIAkJCQl7CiAJCQkJCSQkID0gbWFrZURlZkVsZW0o ImRlbGltaXRlciIsIChOb2RlICopbWFrZVN0cmluZygkMyksIEAxKTsKQEAgLTE1NjU5LDYgKzE1 NjYzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBIT1VSX1AKIAkJCXwgSURFTlRJVFlf UAogCQkJfCBJRl9QCisJCQl8IElHTk9SRV9FUlJPUlMKIAkJCXwgSU1NRURJQVRFCiAJCQl8IElN TVVUQUJMRQogCQkJfCBJTVBMSUNJVF9QCkBAIC0xNjIwOSw2ICsxNjIxNCw3IEBAIGJhcmVfbGFi ZWxfa2V5d29yZDoKIAkJCXwgSE9MRAogCQkJfCBJREVOVElUWV9QCiAJCQl8IElGX1AKKwkJCXwg SUdOT1JFX0VSUk9SUwogCQkJfCBJTElLRQogCQkJfCBJTU1FRElBVEUKIAkJCXwgSU1NVVRBQkxF CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy8uZ2l0aWdub3JlIGIvc3JjL2JhY2tlbmQv dXRpbHMvLmdpdGlnbm9yZQppbmRleCAwNjg1NTU2OTU5Li4zYzY3OWQwN2ZmIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy8uZ2l0aWdub3JlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzLy5n aXRpZ25vcmUKQEAgLTMsNCArMywzIEBACiAvZm1ncnByb3Rvcy5oCiAvZm1nci1zdGFtcAogL3By b2Jlcy5oCi0vZXJyY29kZXMuaApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29k ZXMuaCBiL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMC4uYjE4NzU5OWJkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2VycmNvZGVzLmgKQEAgLTAsMCArMSwzNTQgQEAKKy8qIGF1dG9nZW5lcmF0ZWQg ZnJvbSBzcmMvYmFja2VuZC91dGlscy9lcnJjb2Rlcy50eHQsIGRvIG5vdCBlZGl0ICovCisvKiB0 aGVyZSBpcyBkZWxpYmVyYXRlbHkgbm90IGFuICNpZm5kZWYgRVJSQ09ERVNfSCBoZXJlICovCisK Ky8qIENsYXNzIDAwIC0gU3VjY2Vzc2Z1bCBDb21wbGV0aW9uICovCisjZGVmaW5lIEVSUkNPREVf U1VDQ0VTU0ZVTF9DT01QTEVUSU9OIE1BS0VfU1FMU1RBVEUoJzAnLCcwJywnMCcsJzAnLCcwJykK KworLyogQ2xhc3MgMDEgLSBXYXJuaW5nICovCisjZGVmaW5lIEVSUkNPREVfV0FSTklORyBNQUtF X1NRTFNUQVRFKCcwJywnMScsJzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfV0FSTklOR19E WU5BTUlDX1JFU1VMVF9TRVRTX1JFVFVSTkVEIE1BS0VfU1FMU1RBVEUoJzAnLCcxJywnMCcsJzAn LCdDJykKKyNkZWZpbmUgRVJSQ09ERV9XQVJOSU5HX0lNUExJQ0lUX1pFUk9fQklUX1BBRERJTkcg TUFLRV9TUUxTVEFURSgnMCcsJzEnLCcwJywnMCcsJzgnKQorI2RlZmluZSBFUlJDT0RFX1dBUk5J TkdfTlVMTF9WQUxVRV9FTElNSU5BVEVEX0lOX1NFVF9GVU5DVElPTiBNQUtFX1NRTFNUQVRFKCcw JywnMScsJzAnLCcwJywnMycpCisjZGVmaW5lIEVSUkNPREVfV0FSTklOR19QUklWSUxFR0VfTk9U X0dSQU5URUQgTUFLRV9TUUxTVEFURSgnMCcsJzEnLCcwJywnMCcsJzcnKQorI2RlZmluZSBFUlJD T0RFX1dBUk5JTkdfUFJJVklMRUdFX05PVF9SRVZPS0VEIE1BS0VfU1FMU1RBVEUoJzAnLCcxJywn MCcsJzAnLCc2JykKKyNkZWZpbmUgRVJSQ09ERV9XQVJOSU5HX1NUUklOR19EQVRBX1JJR0hUX1RS VU5DQVRJT04gTUFLRV9TUUxTVEFURSgnMCcsJzEnLCcwJywnMCcsJzQnKQorI2RlZmluZSBFUlJD T0RFX1dBUk5JTkdfREVQUkVDQVRFRF9GRUFUVVJFIE1BS0VfU1FMU1RBVEUoJzAnLCcxJywnUCcs JzAnLCcxJykKKworLyogQ2xhc3MgMDIgLSBObyBEYXRhICh0aGlzIGlzIGFsc28gYSB3YXJuaW5n IGNsYXNzIHBlciB0aGUgU1FMIHN0YW5kYXJkKSAqLworI2RlZmluZSBFUlJDT0RFX05PX0RBVEEg TUFLRV9TUUxTVEFURSgnMCcsJzInLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX05PX0FE RElUSU9OQUxfRFlOQU1JQ19SRVNVTFRfU0VUU19SRVRVUk5FRCBNQUtFX1NRTFNUQVRFKCcwJywn MicsJzAnLCcwJywnMScpCisKKy8qIENsYXNzIDAzIC0gU1FMIFN0YXRlbWVudCBOb3QgWWV0IENv bXBsZXRlICovCisjZGVmaW5lIEVSUkNPREVfU1FMX1NUQVRFTUVOVF9OT1RfWUVUX0NPTVBMRVRF IE1BS0VfU1FMU1RBVEUoJzAnLCczJywnMCcsJzAnLCcwJykKKworLyogQ2xhc3MgMDggLSBDb25u ZWN0aW9uIEV4Y2VwdGlvbiAqLworI2RlZmluZSBFUlJDT0RFX0NPTk5FQ1RJT05fRVhDRVBUSU9O IE1BS0VfU1FMU1RBVEUoJzAnLCc4JywnMCcsJzAnLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9DT05O RUNUSU9OX0RPRVNfTk9UX0VYSVNUIE1BS0VfU1FMU1RBVEUoJzAnLCc4JywnMCcsJzAnLCczJykK KyNkZWZpbmUgRVJSQ09ERV9DT05ORUNUSU9OX0ZBSUxVUkUgTUFLRV9TUUxTVEFURSgnMCcsJzgn LCcwJywnMCcsJzYnKQorI2RlZmluZSBFUlJDT0RFX1NRTENMSUVOVF9VTkFCTEVfVE9fRVNUQUJM SVNIX1NRTENPTk5FQ1RJT04gTUFLRV9TUUxTVEFURSgnMCcsJzgnLCcwJywnMCcsJzEnKQorI2Rl ZmluZSBFUlJDT0RFX1NRTFNFUlZFUl9SRUpFQ1RFRF9FU1RBQkxJU0hNRU5UX09GX1NRTENPTk5F Q1RJT04gTUFLRV9TUUxTVEFURSgnMCcsJzgnLCcwJywnMCcsJzQnKQorI2RlZmluZSBFUlJDT0RF X1RSQU5TQUNUSU9OX1JFU09MVVRJT05fVU5LTk9XTiBNQUtFX1NRTFNUQVRFKCcwJywnOCcsJzAn LCcwJywnNycpCisjZGVmaW5lIEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9OIE1BS0VfU1FMU1RB VEUoJzAnLCc4JywnUCcsJzAnLCcxJykKKworLyogQ2xhc3MgMDkgLSBUcmlnZ2VyZWQgQWN0aW9u IEV4Y2VwdGlvbiAqLworI2RlZmluZSBFUlJDT0RFX1RSSUdHRVJFRF9BQ1RJT05fRVhDRVBUSU9O IE1BS0VfU1FMU1RBVEUoJzAnLCc5JywnMCcsJzAnLCcwJykKKworLyogQ2xhc3MgMEEgLSBGZWF0 dXJlIE5vdCBTdXBwb3J0ZWQgKi8KKyNkZWZpbmUgRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQgTUFLRV9TUUxTVEFURSgnMCcsJ0EnLCcwJywnMCcsJzAnKQorCisvKiBDbGFzcyAwQiAtIElu dmFsaWQgVHJhbnNhY3Rpb24gSW5pdGlhdGlvbiAqLworI2RlZmluZSBFUlJDT0RFX0lOVkFMSURf VFJBTlNBQ1RJT05fSU5JVElBVElPTiBNQUtFX1NRTFNUQVRFKCcwJywnQicsJzAnLCcwJywnMCcp CisKKy8qIENsYXNzIDBGIC0gTG9jYXRvciBFeGNlcHRpb24gKi8KKyNkZWZpbmUgRVJSQ09ERV9M T0NBVE9SX0VYQ0VQVElPTiBNQUtFX1NRTFNUQVRFKCcwJywnRicsJzAnLCcwJywnMCcpCisjZGVm aW5lIEVSUkNPREVfTF9FX0lOVkFMSURfU1BFQ0lGSUNBVElPTiBNQUtFX1NRTFNUQVRFKCcwJywn RicsJzAnLCcwJywnMScpCisKKy8qIENsYXNzIDBMIC0gSW52YWxpZCBHcmFudG9yICovCisjZGVm aW5lIEVSUkNPREVfSU5WQUxJRF9HUkFOVE9SIE1BS0VfU1FMU1RBVEUoJzAnLCdMJywnMCcsJzAn LCcwJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX0dSQU5UX09QRVJBVElPTiBNQUtFX1NRTFNU QVRFKCcwJywnTCcsJ1AnLCcwJywnMScpCisKKy8qIENsYXNzIDBQIC0gSW52YWxpZCBSb2xlIFNw ZWNpZmljYXRpb24gKi8KKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX1JPTEVfU1BFQ0lGSUNBVElP TiBNQUtFX1NRTFNUQVRFKCcwJywnUCcsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIDBaIC0gRGlh Z25vc3RpY3MgRXhjZXB0aW9uICovCisjZGVmaW5lIEVSUkNPREVfRElBR05PU1RJQ1NfRVhDRVBU SU9OIE1BS0VfU1FMU1RBVEUoJzAnLCdaJywnMCcsJzAnLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9T VEFDS0VEX0RJQUdOT1NUSUNTX0FDQ0VTU0VEX1dJVEhPVVRfQUNUSVZFX0hBTkRMRVIgTUFLRV9T UUxTVEFURSgnMCcsJ1onLCcwJywnMCcsJzInKQorCisvKiBDbGFzcyAyMCAtIENhc2UgTm90IEZv dW5kICovCisjZGVmaW5lIEVSUkNPREVfQ0FTRV9OT1RfRk9VTkQgTUFLRV9TUUxTVEFURSgnMics JzAnLCcwJywnMCcsJzAnKQorCisvKiBDbGFzcyAyMSAtIENhcmRpbmFsaXR5IFZpb2xhdGlvbiAq LworI2RlZmluZSBFUlJDT0RFX0NBUkRJTkFMSVRZX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCcy JywnMScsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIDIyIC0gRGF0YSBFeGNlcHRpb24gKi8KKyNk ZWZpbmUgRVJSQ09ERV9EQVRBX0VYQ0VQVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcw JywnMCcpCisjZGVmaW5lIEVSUkNPREVfQVJSQVlfRUxFTUVOVF9FUlJPUiBNQUtFX1NRTFNUQVRF KCcyJywnMicsJzAnLCcyJywnRScpCisjZGVmaW5lIEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VS Uk9SIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcsJzInLCdFJykKKyNkZWZpbmUgRVJSQ09ERV9D SEFSQUNURVJfTk9UX0lOX1JFUEVSVE9JUkUgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMics JzEnKQorI2RlZmluZSBFUlJDT0RFX0RBVEVUSU1FX0ZJRUxEX09WRVJGTE9XIE1BS0VfU1FMU1RB VEUoJzInLCcyJywnMCcsJzAnLCc4JykKKyNkZWZpbmUgRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9P VVRfT0ZfUkFOR0UgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJzgnKQorI2RlZmluZSBF UlJDT0RFX0RJVklTSU9OX0JZX1pFUk8gTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMScsJzIn KQorI2RlZmluZSBFUlJDT0RFX0VSUk9SX0lOX0FTU0lHTk1FTlQgTUFLRV9TUUxTVEFURSgnMics JzInLCcwJywnMCcsJzUnKQorI2RlZmluZSBFUlJDT0RFX0VTQ0FQRV9DSEFSQUNURVJfQ09ORkxJ Q1QgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJ0InKQorI2RlZmluZSBFUlJDT0RFX0lO RElDQVRPUl9PVkVSRkxPVyBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcyJywnMicpCisjZGVm aW5lIEVSUkNPREVfSU5URVJWQUxfRklFTERfT1ZFUkZMT1cgTUFLRV9TUUxTVEFURSgnMicsJzIn LCcwJywnMScsJzUnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQVJHVU1FTlRfRk9SX0xPRyBN QUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcxJywnRScpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJ RF9BUkdVTUVOVF9GT1JfTlRJTEUgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMScsJzQnKQor I2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQVJHVU1FTlRfRk9SX05USF9WQUxVRSBNQUtFX1NRTFNU QVRFKCcyJywnMicsJzAnLCcxJywnNicpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9BUkdVTUVO VF9GT1JfUE9XRVJfRlVOQ1RJT04gTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMScsJ0YnKQor I2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQVJHVU1FTlRfRk9SX1dJRFRIX0JVQ0tFVF9GVU5DVElP TiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcxJywnRycpCisjZGVmaW5lIEVSUkNPREVfSU5W QUxJRF9DSEFSQUNURVJfVkFMVUVfRk9SX0NBU1QgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywn MScsJzgnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfREFURVRJTUVfRk9STUFUIE1BS0VfU1FM U1RBVEUoJzInLCcyJywnMCcsJzAnLCc3JykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX0VTQ0FQ RV9DSEFSQUNURVIgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMScsJzknKQorI2RlZmluZSBF UlJDT0RFX0lOVkFMSURfRVNDQVBFX09DVEVUIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcsJzAn LCdEJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX0VTQ0FQRV9TRVFVRU5DRSBNQUtFX1NRTFNU QVRFKCcyJywnMicsJzAnLCcyJywnNScpCisjZGVmaW5lIEVSUkNPREVfTk9OU1RBTkRBUkRfVVNF X09GX0VTQ0FQRV9DSEFSQUNURVIgTUFLRV9TUUxTVEFURSgnMicsJzInLCdQJywnMCcsJzYnKQor I2RlZmluZSBFUlJDT0RFX0lOVkFMSURfSU5ESUNBVE9SX1BBUkFNRVRFUl9WQUxVRSBNQUtFX1NR TFNUQVRFKCcyJywnMicsJzAnLCcxJywnMCcpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9QQVJB TUVURVJfVkFMVUUgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMicsJzMnKQorI2RlZmluZSBF UlJDT0RFX0lOVkFMSURfUFJFQ0VESU5HX09SX0ZPTExPV0lOR19TSVpFIE1BS0VfU1FMU1RBVEUo JzInLCcyJywnMCcsJzEnLCczJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX1JFR1VMQVJfRVhQ UkVTU0lPTiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcxJywnQicpCisjZGVmaW5lIEVSUkNP REVfSU5WQUxJRF9ST1dfQ09VTlRfSU5fTElNSVRfQ0xBVVNFIE1BS0VfU1FMU1RBVEUoJzInLCcy JywnMCcsJzEnLCdXJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX1JPV19DT1VOVF9JTl9SRVNV TFRfT0ZGU0VUX0NMQVVTRSBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcxJywnWCcpCisjZGVm aW5lIEVSUkNPREVfSU5WQUxJRF9UQUJMRVNBTVBMRV9BUkdVTUVOVCBNQUtFX1NRTFNUQVRFKCcy JywnMicsJzAnLCcyJywnSCcpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9UQUJMRVNBTVBMRV9S RVBFQVQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMicsJ0cnKQorI2RlZmluZSBFUlJDT0RF X0lOVkFMSURfVElNRV9aT05FX0RJU1BMQUNFTUVOVF9WQUxVRSBNQUtFX1NRTFNUQVRFKCcyJywn MicsJzAnLCcwJywnOScpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9VU0VfT0ZfRVNDQVBFX0NI QVJBQ1RFUiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcwJywnQycpCisjZGVmaW5lIEVSUkNP REVfTU9TVF9TUEVDSUZJQ19UWVBFX01JU01BVENIIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcs JzAnLCdHJykKKyNkZWZpbmUgRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEIE1BS0VfU1FM U1RBVEUoJzInLCcyJywnMCcsJzAnLCc0JykKKyNkZWZpbmUgRVJSQ09ERV9OVUxMX1ZBTFVFX05P X0lORElDQVRPUl9QQVJBTUVURVIgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJzInKQor I2RlZmluZSBFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFIE1BS0VfU1FMU1RBVEUo JzInLCcyJywnMCcsJzAnLCczJykKKyNkZWZpbmUgRVJSQ09ERV9TRVFVRU5DRV9HRU5FUkFUT1Jf TElNSVRfRVhDRUVERUQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJ0gnKQorI2RlZmlu ZSBFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRDSCBNQUtFX1NRTFNUQVRFKCcyJywn MicsJzAnLCcyJywnNicpCisjZGVmaW5lIEVSUkNPREVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNB VElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVf U1VCU1RSSU5HX0VSUk9SIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcsJzEnLCcxJykKKyNkZWZp bmUgRVJSQ09ERV9UUklNX0VSUk9SIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcsJzInLCc3JykK KyNkZWZpbmUgRVJSQ09ERV9VTlRFUk1JTkFURURfQ19TVFJJTkcgTUFLRV9TUUxTVEFURSgnMics JzInLCcwJywnMicsJzQnKQorI2RlZmluZSBFUlJDT0RFX1pFUk9fTEVOR1RIX0NIQVJBQ1RFUl9T VFJJTkcgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJ0YnKQorI2RlZmluZSBFUlJDT0RF X0ZMT0FUSU5HX1BPSU5UX0VYQ0VQVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJ1AnLCcwJywn MScpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9URVhUX1JFUFJFU0VOVEFUSU9OIE1BS0VfU1FM U1RBVEUoJzInLCcyJywnUCcsJzAnLCcyJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX0JJTkFS WV9SRVBSRVNFTlRBVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMicsJ1AnLCcwJywnMycpCisjZGVm aW5lIEVSUkNPREVfQkFEX0NPUFlfRklMRV9GT1JNQVQgTUFLRV9TUUxTVEFURSgnMicsJzInLCdQ JywnMCcsJzQnKQorI2RlZmluZSBFUlJDT0RFX1VOVFJBTlNMQVRBQkxFX0NIQVJBQ1RFUiBNQUtF X1NRTFNUQVRFKCcyJywnMicsJ1AnLCcwJywnNScpCisjZGVmaW5lIEVSUkNPREVfTk9UX0FOX1hN TF9ET0NVTUVOVCBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCcwJywnTCcpCisjZGVmaW5lIEVS UkNPREVfSU5WQUxJRF9YTUxfRE9DVU1FTlQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcs J00nKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfWE1MX0NPTlRFTlQgTUFLRV9TUUxTVEFURSgn MicsJzInLCcwJywnMCcsJ04nKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfWE1MX0NPTU1FTlQg TUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMCcsJ1MnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFM SURfWE1MX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywn MCcsJ1QnKQorI2RlZmluZSBFUlJDT0RFX0RVUExJQ0FURV9KU09OX09CSkVDVF9LRVlfVkFMVUUg TUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMycsJzAnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFM SURfQVJHVU1FTlRfRk9SX1NRTF9KU09OX0RBVEVUSU1FX0ZVTkNUSU9OIE1BS0VfU1FMU1RBVEUo JzInLCcyJywnMCcsJzMnLCcxJykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElEX0pTT05fVEVYVCBN QUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCczJywgICAnMicpCisjZGVmaW5lIEVSUkNPREVfSU5W QUxJRF9TUUxfSlNPTl9TVUJTQ1JJUFQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMycsJzMn KQorI2RlZmluZSBFUlJDT0RFX01PUkVfVEhBTl9PTkVfU1FMX0pTT05fSVRFTSBNQUtFX1NRTFNU QVRFKCcyJywnMicsJzAnLCczJywnNCcpCisjZGVmaW5lIEVSUkNPREVfTk9fU1FMX0pTT05fSVRF TSBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCczJywnNScpCisjZGVmaW5lIEVSUkNPREVfTk9O X05VTUVSSUNfU1FMX0pTT05fSVRFTSBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCczJywnNicp CisjZGVmaW5lIEVSUkNPREVfTk9OX1VOSVFVRV9LRVlTX0lOX0FfSlNPTl9PQkpFQ1QgTUFLRV9T UUxTVEFURSgnMicsJzInLCcwJywnMycsJzcnKQorI2RlZmluZSBFUlJDT0RFX1NJTkdMRVRPTl9T UUxfSlNPTl9JVEVNX1JFUVVJUkVEIE1BS0VfU1FMU1RBVEUoJzInLCcyJywnMCcsJzMnLCc4JykK KyNkZWZpbmUgRVJSQ09ERV9TUUxfSlNPTl9BUlJBWV9OT1RfRk9VTkQgTUFLRV9TUUxTVEFURSgn MicsJzInLCcwJywnMycsJzknKQorI2RlZmluZSBFUlJDT0RFX1NRTF9KU09OX01FTUJFUl9OT1Rf Rk9VTkQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMycsJ0EnKQorI2RlZmluZSBFUlJDT0RF X1NRTF9KU09OX05VTUJFUl9OT1RfRk9VTkQgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMycs J0InKQorI2RlZmluZSBFUlJDT0RFX1NRTF9KU09OX09CSkVDVF9OT1RfRk9VTkQgTUFLRV9TUUxT VEFURSgnMicsJzInLCcwJywnMycsJ0MnKQorI2RlZmluZSBFUlJDT0RFX1RPT19NQU5ZX0pTT05f QVJSQVlfRUxFTUVOVFMgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnMycsJ0QnKQorI2RlZmlu ZSBFUlJDT0RFX1RPT19NQU5ZX0pTT05fT0JKRUNUX01FTUJFUlMgTUFLRV9TUUxTVEFURSgnMics JzInLCcwJywnMycsJ0UnKQorI2RlZmluZSBFUlJDT0RFX1NRTF9KU09OX1NDQUxBUl9SRVFVSVJF RCBNQUtFX1NRTFNUQVRFKCcyJywnMicsJzAnLCczJywnRicpCisjZGVmaW5lIEVSUkNPREVfRk9S X0lHTk9SRV9FUlJPUlMgTUFLRV9TUUxTVEFURSgnMicsJzInLCcwJywnNCcsJzAnKQorCisvKiBD bGFzcyAyMyAtIEludGVncml0eSBDb25zdHJhaW50IFZpb2xhdGlvbiAqLworI2RlZmluZSBFUlJD T0RFX0lOVEVHUklUWV9DT05TVFJBSU5UX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMycs JzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfUkVTVFJJQ1RfVklPTEFUSU9OIE1BS0VfU1FM U1RBVEUoJzInLCczJywnMCcsJzAnLCcxJykKKyNkZWZpbmUgRVJSQ09ERV9OT1RfTlVMTF9WSU9M QVRJT04gTUFLRV9TUUxTVEFURSgnMicsJzMnLCc1JywnMCcsJzInKQorI2RlZmluZSBFUlJDT0RF X0ZPUkVJR05fS0VZX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMycsJzUnLCcwJywnMycp CisjZGVmaW5lIEVSUkNPREVfVU5JUVVFX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnMycs JzUnLCcwJywnNScpCisjZGVmaW5lIEVSUkNPREVfQ0hFQ0tfVklPTEFUSU9OIE1BS0VfU1FMU1RB VEUoJzInLCczJywnNScsJzEnLCc0JykKKyNkZWZpbmUgRVJSQ09ERV9FWENMVVNJT05fVklPTEFU SU9OIE1BS0VfU1FMU1RBVEUoJzInLCczJywnUCcsJzAnLCcxJykKKworLyogQ2xhc3MgMjQgLSBJ bnZhbGlkIEN1cnNvciBTdGF0ZSAqLworI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQ1VSU09SX1NU QVRFIE1BS0VfU1FMU1RBVEUoJzInLCc0JywnMCcsJzAnLCcwJykKKworLyogQ2xhc3MgMjUgLSBJ bnZhbGlkIFRyYW5zYWN0aW9uIFN0YXRlICovCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9UUkFO U0FDVElPTl9TVEFURSBNQUtFX1NRTFNUQVRFKCcyJywnNScsJzAnLCcwJywnMCcpCisjZGVmaW5l IEVSUkNPREVfQUNUSVZFX1NRTF9UUkFOU0FDVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnNScsJzAn LCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfQlJBTkNIX1RSQU5TQUNUSU9OX0FMUkVBRFlfQUNU SVZFIE1BS0VfU1FMU1RBVEUoJzInLCc1JywnMCcsJzAnLCcyJykKKyNkZWZpbmUgRVJSQ09ERV9I RUxEX0NVUlNPUl9SRVFVSVJFU19TQU1FX0lTT0xBVElPTl9MRVZFTCBNQUtFX1NRTFNUQVRFKCcy JywnNScsJzAnLCcwJywnOCcpCisjZGVmaW5lIEVSUkNPREVfSU5BUFBST1BSSUFURV9BQ0NFU1Nf TU9ERV9GT1JfQlJBTkNIX1RSQU5TQUNUSU9OIE1BS0VfU1FMU1RBVEUoJzInLCc1JywnMCcsJzAn LCczJykKKyNkZWZpbmUgRVJSQ09ERV9JTkFQUFJPUFJJQVRFX0lTT0xBVElPTl9MRVZFTF9GT1Jf QlJBTkNIX1RSQU5TQUNUSU9OIE1BS0VfU1FMU1RBVEUoJzInLCc1JywnMCcsJzAnLCc0JykKKyNk ZWZpbmUgRVJSQ09ERV9OT19BQ1RJVkVfU1FMX1RSQU5TQUNUSU9OX0ZPUl9CUkFOQ0hfVFJBTlNB Q1RJT04gTUFLRV9TUUxTVEFURSgnMicsJzUnLCcwJywnMCcsJzUnKQorI2RlZmluZSBFUlJDT0RF X1JFQURfT05MWV9TUUxfVFJBTlNBQ1RJT04gTUFLRV9TUUxTVEFURSgnMicsJzUnLCcwJywnMCcs JzYnKQorI2RlZmluZSBFUlJDT0RFX1NDSEVNQV9BTkRfREFUQV9TVEFURU1FTlRfTUlYSU5HX05P VF9TVVBQT1JURUQgTUFLRV9TUUxTVEFURSgnMicsJzUnLCcwJywnMCcsJzcnKQorI2RlZmluZSBF UlJDT0RFX05PX0FDVElWRV9TUUxfVFJBTlNBQ1RJT04gTUFLRV9TUUxTVEFURSgnMicsJzUnLCdQ JywnMCcsJzEnKQorI2RlZmluZSBFUlJDT0RFX0lOX0ZBSUxFRF9TUUxfVFJBTlNBQ1RJT04gTUFL RV9TUUxTVEFURSgnMicsJzUnLCdQJywnMCcsJzInKQorI2RlZmluZSBFUlJDT0RFX0lETEVfSU5f VFJBTlNBQ1RJT05fU0VTU0lPTl9USU1FT1VUIE1BS0VfU1FMU1RBVEUoJzInLCc1JywnUCcsJzAn LCczJykKKworLyogQ2xhc3MgMjYgLSBJbnZhbGlkIFNRTCBTdGF0ZW1lbnQgTmFtZSAqLworI2Rl ZmluZSBFUlJDT0RFX0lOVkFMSURfU1FMX1NUQVRFTUVOVF9OQU1FIE1BS0VfU1FMU1RBVEUoJzIn LCc2JywnMCcsJzAnLCcwJykKKworLyogQ2xhc3MgMjcgLSBUcmlnZ2VyZWQgRGF0YSBDaGFuZ2Ug VmlvbGF0aW9uICovCisjZGVmaW5lIEVSUkNPREVfVFJJR0dFUkVEX0RBVEFfQ0hBTkdFX1ZJT0xB VElPTiBNQUtFX1NRTFNUQVRFKCcyJywnNycsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIDI4IC0g SW52YWxpZCBBdXRob3JpemF0aW9uIFNwZWNpZmljYXRpb24gKi8KKyNkZWZpbmUgRVJSQ09ERV9J TlZBTElEX0FVVEhPUklaQVRJT05fU1BFQ0lGSUNBVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnOCcs JzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9QQVNTV09SRCBNQUtFX1NRTFNU QVRFKCcyJywnOCcsJ1AnLCcwJywnMScpCisKKy8qIENsYXNzIDJCIC0gRGVwZW5kZW50IFByaXZp bGVnZSBEZXNjcmlwdG9ycyBTdGlsbCBFeGlzdCAqLworI2RlZmluZSBFUlJDT0RFX0RFUEVOREVO VF9QUklWSUxFR0VfREVTQ1JJUFRPUlNfU1RJTExfRVhJU1QgTUFLRV9TUUxTVEFURSgnMicsJ0In LCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX0RFUEVOREVOVF9PQkpFQ1RTX1NUSUxMX0VY SVNUIE1BS0VfU1FMU1RBVEUoJzInLCdCJywnUCcsJzAnLCcxJykKKworLyogQ2xhc3MgMkQgLSBJ bnZhbGlkIFRyYW5zYWN0aW9uIFRlcm1pbmF0aW9uICovCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJ RF9UUkFOU0FDVElPTl9URVJNSU5BVElPTiBNQUtFX1NRTFNUQVRFKCcyJywnRCcsJzAnLCcwJywn MCcpCisKKy8qIENsYXNzIDJGIC0gU1FMIFJvdXRpbmUgRXhjZXB0aW9uICovCisjZGVmaW5lIEVS UkNPREVfU1FMX1JPVVRJTkVfRVhDRVBUSU9OIE1BS0VfU1FMU1RBVEUoJzInLCdGJywnMCcsJzAn LCcwJykKKyNkZWZpbmUgRVJSQ09ERV9TX1JfRV9GVU5DVElPTl9FWEVDVVRFRF9OT19SRVRVUk5f U1RBVEVNRU5UIE1BS0VfU1FMU1RBVEUoJzInLCdGJywnMCcsJzAnLCc1JykKKyNkZWZpbmUgRVJS Q09ERV9TX1JfRV9NT0RJRllJTkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBNQUtFX1NRTFNUQVRF KCcyJywnRicsJzAnLCcwJywnMicpCisjZGVmaW5lIEVSUkNPREVfU19SX0VfUFJPSElCSVRFRF9T UUxfU1RBVEVNRU5UX0FUVEVNUFRFRCBNQUtFX1NRTFNUQVRFKCcyJywnRicsJzAnLCcwJywnMycp CisjZGVmaW5lIEVSUkNPREVfU19SX0VfUkVBRElOR19TUUxfREFUQV9OT1RfUEVSTUlUVEVEIE1B S0VfU1FMU1RBVEUoJzInLCdGJywnMCcsJzAnLCc0JykKKworLyogQ2xhc3MgMzQgLSBJbnZhbGlk IEN1cnNvciBOYW1lICovCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9DVVJTT1JfTkFNRSBNQUtF X1NRTFNUQVRFKCczJywnNCcsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIDM4IC0gRXh0ZXJuYWwg Um91dGluZSBFeGNlcHRpb24gKi8KKyNkZWZpbmUgRVJSQ09ERV9FWFRFUk5BTF9ST1VUSU5FX0VY Q0VQVElPTiBNQUtFX1NRTFNUQVRFKCczJywnOCcsJzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNP REVfRV9SX0VfQ09OVEFJTklOR19TUUxfTk9UX1BFUk1JVFRFRCBNQUtFX1NRTFNUQVRFKCczJywn OCcsJzAnLCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfRV9SX0VfTU9ESUZZSU5HX1NRTF9EQVRB X05PVF9QRVJNSVRURUQgTUFLRV9TUUxTVEFURSgnMycsJzgnLCcwJywnMCcsJzInKQorI2RlZmlu ZSBFUlJDT0RFX0VfUl9FX1BST0hJQklURURfU1FMX1NUQVRFTUVOVF9BVFRFTVBURUQgTUFLRV9T UUxTVEFURSgnMycsJzgnLCcwJywnMCcsJzMnKQorI2RlZmluZSBFUlJDT0RFX0VfUl9FX1JFQURJ TkdfU1FMX0RBVEFfTk9UX1BFUk1JVFRFRCBNQUtFX1NRTFNUQVRFKCczJywnOCcsJzAnLCcwJywn NCcpCisKKy8qIENsYXNzIDM5IC0gRXh0ZXJuYWwgUm91dGluZSBJbnZvY2F0aW9uIEV4Y2VwdGlv biAqLworI2RlZmluZSBFUlJDT0RFX0VYVEVSTkFMX1JPVVRJTkVfSU5WT0NBVElPTl9FWENFUFRJ T04gTUFLRV9TUUxTVEFURSgnMycsJzknLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX0Vf Ul9JX0VfSU5WQUxJRF9TUUxTVEFURV9SRVRVUk5FRCBNQUtFX1NRTFNUQVRFKCczJywnOScsJzAn LCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfRV9SX0lfRV9OVUxMX1ZBTFVFX05PVF9BTExPV0VE IE1BS0VfU1FMU1RBVEUoJzMnLCc5JywnMCcsJzAnLCc0JykKKyNkZWZpbmUgRVJSQ09ERV9FX1Jf SV9FX1RSSUdHRVJfUFJPVE9DT0xfVklPTEFURUQgTUFLRV9TUUxTVEFURSgnMycsJzknLCdQJywn MCcsJzEnKQorI2RlZmluZSBFUlJDT0RFX0VfUl9JX0VfU1JGX1BST1RPQ09MX1ZJT0xBVEVEIE1B S0VfU1FMU1RBVEUoJzMnLCc5JywnUCcsJzAnLCcyJykKKyNkZWZpbmUgRVJSQ09ERV9FX1JfSV9F X0VWRU5UX1RSSUdHRVJfUFJPVE9DT0xfVklPTEFURUQgTUFLRV9TUUxTVEFURSgnMycsJzknLCdQ JywnMCcsJzMnKQorCisvKiBDbGFzcyAzQiAtIFNhdmVwb2ludCBFeGNlcHRpb24gKi8KKyNkZWZp bmUgRVJSQ09ERV9TQVZFUE9JTlRfRVhDRVBUSU9OIE1BS0VfU1FMU1RBVEUoJzMnLCdCJywnMCcs JzAnLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9TX0VfSU5WQUxJRF9TUEVDSUZJQ0FUSU9OIE1BS0Vf U1FMU1RBVEUoJzMnLCdCJywnMCcsJzAnLCcxJykKKworLyogQ2xhc3MgM0QgLSBJbnZhbGlkIENh dGFsb2cgTmFtZSAqLworI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQ0FUQUxPR19OQU1FIE1BS0Vf U1FMU1RBVEUoJzMnLCdEJywnMCcsJzAnLCcwJykKKworLyogQ2xhc3MgM0YgLSBJbnZhbGlkIFNj aGVtYSBOYW1lICovCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9TQ0hFTUFfTkFNRSBNQUtFX1NR TFNUQVRFKCczJywnRicsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIDQwIC0gVHJhbnNhY3Rpb24g Um9sbGJhY2sgKi8KKyNkZWZpbmUgRVJSQ09ERV9UUkFOU0FDVElPTl9ST0xMQkFDSyBNQUtFX1NR TFNUQVRFKCc0JywnMCcsJzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfVF9SX0lOVEVHUklU WV9DT05TVFJBSU5UX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCc0JywnMCcsJzAnLCcwJywnMicp CisjZGVmaW5lIEVSUkNPREVfVF9SX1NFUklBTElaQVRJT05fRkFJTFVSRSBNQUtFX1NRTFNUQVRF KCc0JywnMCcsJzAnLCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfVF9SX1NUQVRFTUVOVF9DT01Q TEVUSU9OX1VOS05PV04gTUFLRV9TUUxTVEFURSgnNCcsJzAnLCcwJywnMCcsJzMnKQorI2RlZmlu ZSBFUlJDT0RFX1RfUl9ERUFETE9DS19ERVRFQ1RFRCBNQUtFX1NRTFNUQVRFKCc0JywnMCcsJ1An LCcwJywnMScpCisKKy8qIENsYXNzIDQyIC0gU3ludGF4IEVycm9yIG9yIEFjY2VzcyBSdWxlIFZp b2xhdGlvbiAqLworI2RlZmluZSBFUlJDT0RFX1NZTlRBWF9FUlJPUl9PUl9BQ0NFU1NfUlVMRV9W SU9MQVRJT04gTUFLRV9TUUxTVEFURSgnNCcsJzInLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJD T0RFX1NZTlRBWF9FUlJPUiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJzYnLCcwJywnMScpCisjZGVm aW5lIEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSBNQUtFX1NRTFNUQVRFKCc0JywnMics JzUnLCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfQ0FOTk9UX0NPRVJDRSBNQUtFX1NRTFNUQVRF KCc0JywnMicsJzgnLCc0JywnNicpCisjZGVmaW5lIEVSUkNPREVfR1JPVVBJTkdfRVJST1IgTUFL RV9TUUxTVEFURSgnNCcsJzInLCc4JywnMCcsJzMnKQorI2RlZmluZSBFUlJDT0RFX1dJTkRPV0lO R19FUlJPUiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJ1AnLCcyJywnMCcpCisjZGVmaW5lIEVSUkNP REVfSU5WQUxJRF9SRUNVUlNJT04gTUFLRV9TUUxTVEFURSgnNCcsJzInLCdQJywnMScsJzknKQor I2RlZmluZSBFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkgTUFLRV9TUUxTVEFURSgnNCcsJzIn LCc4JywnMycsJzAnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfTkFNRSBNQUtFX1NRTFNUQVRF KCc0JywnMicsJzYnLCcwJywnMicpCisjZGVmaW5lIEVSUkNPREVfTkFNRV9UT09fTE9ORyBNQUtF X1NRTFNUQVRFKCc0JywnMicsJzYnLCcyJywnMicpCisjZGVmaW5lIEVSUkNPREVfUkVTRVJWRURf TkFNRSBNQUtFX1NRTFNUQVRFKCc0JywnMicsJzknLCczJywnOScpCisjZGVmaW5lIEVSUkNPREVf REFUQVRZUEVfTUlTTUFUQ0ggTUFLRV9TUUxTVEFURSgnNCcsJzInLCc4JywnMCcsJzQnKQorI2Rl ZmluZSBFUlJDT0RFX0lOREVURVJNSU5BVEVfREFUQVRZUEUgTUFLRV9TUUxTVEFURSgnNCcsJzIn LCdQJywnMScsJzgnKQorI2RlZmluZSBFUlJDT0RFX0NPTExBVElPTl9NSVNNQVRDSCBNQUtFX1NR TFNUQVRFKCc0JywnMicsJ1AnLCcyJywnMScpCisjZGVmaW5lIEVSUkNPREVfSU5ERVRFUk1JTkFU RV9DT0xMQVRJT04gTUFLRV9TUUxTVEFURSgnNCcsJzInLCdQJywnMicsJzInKQorI2RlZmluZSBF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnOCcsJzAnLCc5 JykKKyNkZWZpbmUgRVJSQ09ERV9HRU5FUkFURURfQUxXQVlTIE1BS0VfU1FMU1RBVEUoJzQnLCcy JywnOCcsJ0MnLCc5JykKKyNkZWZpbmUgRVJSQ09ERV9VTkRFRklORURfQ09MVU1OIE1BS0VfU1FM U1RBVEUoJzQnLCcyJywnNycsJzAnLCczJykKKyNkZWZpbmUgRVJSQ09ERV9VTkRFRklORURfQ1VS U09SIE1BS0VfU1FMU1RBVEUoJzMnLCc0JywnMCcsJzAnLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9V TkRFRklORURfREFUQUJBU0UgTUFLRV9TUUxTVEFURSgnMycsJ0QnLCcwJywnMCcsJzAnKQorI2Rl ZmluZSBFUlJDT0RFX1VOREVGSU5FRF9GVU5DVElPTiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJzgn LCc4JywnMycpCisjZGVmaW5lIEVSUkNPREVfVU5ERUZJTkVEX1BTVEFURU1FTlQgTUFLRV9TUUxT VEFURSgnMicsJzYnLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX1VOREVGSU5FRF9TQ0hF TUEgTUFLRV9TUUxTVEFURSgnMycsJ0YnLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX1VO REVGSU5FRF9UQUJMRSBNQUtFX1NRTFNUQVRFKCc0JywnMicsJ1AnLCcwJywnMScpCisjZGVmaW5l IEVSUkNPREVfVU5ERUZJTkVEX1BBUkFNRVRFUiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJ1AnLCcw JywnMicpCisjZGVmaW5lIEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCBNQUtFX1NRTFNUQVRFKCc0 JywnMicsJzcnLCcwJywnNCcpCisjZGVmaW5lIEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiBNQUtF X1NRTFNUQVRFKCc0JywnMicsJzcnLCcwJywnMScpCisjZGVmaW5lIEVSUkNPREVfRFVQTElDQVRF X0NVUlNPUiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJ1AnLCcwJywnMycpCisjZGVmaW5lIEVSUkNP REVfRFVQTElDQVRFX0RBVEFCQVNFIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzAnLCc0JykK KyNkZWZpbmUgRVJSQ09ERV9EVVBMSUNBVEVfRlVOQ1RJT04gTUFLRV9TUUxTVEFURSgnNCcsJzIn LCc3JywnMicsJzMnKQorI2RlZmluZSBFUlJDT0RFX0RVUExJQ0FURV9QU1RBVEVNRU5UIE1BS0Vf U1FMU1RBVEUoJzQnLCcyJywnUCcsJzAnLCc1JykKKyNkZWZpbmUgRVJSQ09ERV9EVVBMSUNBVEVf U0NIRU1BIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzAnLCc2JykKKyNkZWZpbmUgRVJSQ09E RV9EVVBMSUNBVEVfVEFCTEUgTUFLRV9TUUxTVEFURSgnNCcsJzInLCdQJywnMCcsJzcnKQorI2Rl ZmluZSBFUlJDT0RFX0RVUExJQ0FURV9BTElBUyBNQUtFX1NRTFNUQVRFKCc0JywnMicsJzcnLCcx JywnMicpCisjZGVmaW5lIEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCBNQUtFX1NRTFNUQVRFKCc0 JywnMicsJzcnLCcxJywnMCcpCisjZGVmaW5lIEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiBNQUtF X1NRTFNUQVRFKCc0JywnMicsJzcnLCcwJywnMicpCisjZGVmaW5lIEVSUkNPREVfQU1CSUdVT1VT X0ZVTkNUSU9OIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnNycsJzInLCc1JykKKyNkZWZpbmUgRVJS Q09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzAnLCc4 JykKKyNkZWZpbmUgRVJSQ09ERV9BTUJJR1VPVVNfQUxJQVMgTUFLRV9TUUxTVEFURSgnNCcsJzIn LCdQJywnMCcsJzknKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSBN QUtFX1NRTFNUQVRFKCc0JywnMicsJ1AnLCcxJywnMCcpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJ RF9DT0xVTU5fREVGSU5JVElPTiBNQUtFX1NRTFNUQVRFKCc0JywnMicsJzYnLCcxJywnMScpCisj ZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9DVVJTT1JfREVGSU5JVElPTiBNQUtFX1NRTFNUQVRFKCc0 JywnMicsJ1AnLCcxJywnMScpCisjZGVmaW5lIEVSUkNPREVfSU5WQUxJRF9EQVRBQkFTRV9ERUZJ TklUSU9OIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzEnLCcyJykKKyNkZWZpbmUgRVJSQ09E RV9JTlZBTElEX0ZVTkNUSU9OX0RFRklOSVRJT04gTUFLRV9TUUxTVEFURSgnNCcsJzInLCdQJywn MScsJzMnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfUFNUQVRFTUVOVF9ERUZJTklUSU9OIE1B S0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzEnLCc0JykKKyNkZWZpbmUgRVJSQ09ERV9JTlZBTElE X1NDSEVNQV9ERUZJTklUSU9OIE1BS0VfU1FMU1RBVEUoJzQnLCcyJywnUCcsJzEnLCc1JykKKyNk ZWZpbmUgRVJSQ09ERV9JTlZBTElEX1RBQkxFX0RFRklOSVRJT04gTUFLRV9TUUxTVEFURSgnNCcs JzInLCdQJywnMScsJzYnKQorI2RlZmluZSBFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJ T04gTUFLRV9TUUxTVEFURSgnNCcsJzInLCdQJywnMScsJzcnKQorCisvKiBDbGFzcyA0NCAtIFdJ VEggQ0hFQ0sgT1BUSU9OIFZpb2xhdGlvbiAqLworI2RlZmluZSBFUlJDT0RFX1dJVEhfQ0hFQ0tf T1BUSU9OX1ZJT0xBVElPTiBNQUtFX1NRTFNUQVRFKCc0JywnNCcsJzAnLCcwJywnMCcpCisKKy8q IENsYXNzIDUzIC0gSW5zdWZmaWNpZW50IFJlc291cmNlcyAqLworI2RlZmluZSBFUlJDT0RFX0lO U1VGRklDSUVOVF9SRVNPVVJDRVMgTUFLRV9TUUxTVEFURSgnNScsJzMnLCcwJywnMCcsJzAnKQor I2RlZmluZSBFUlJDT0RFX0RJU0tfRlVMTCBNQUtFX1NRTFNUQVRFKCc1JywnMycsJzEnLCcwJywn MCcpCisjZGVmaW5lIEVSUkNPREVfT1VUX09GX01FTU9SWSBNQUtFX1NRTFNUQVRFKCc1JywnMycs JzInLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfVE9PX01BTllfQ09OTkVDVElPTlMgTUFLRV9T UUxTVEFURSgnNScsJzMnLCczJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX0NPTkZJR1VSQVRJ T05fTElNSVRfRVhDRUVERUQgTUFLRV9TUUxTVEFURSgnNScsJzMnLCc0JywnMCcsJzAnKQorCisv KiBDbGFzcyA1NCAtIFByb2dyYW0gTGltaXQgRXhjZWVkZWQgKi8KKyNkZWZpbmUgRVJSQ09ERV9Q Uk9HUkFNX0xJTUlUX0VYQ0VFREVEIE1BS0VfU1FMU1RBVEUoJzUnLCc0JywnMCcsJzAnLCcwJykK KyNkZWZpbmUgRVJSQ09ERV9TVEFURU1FTlRfVE9PX0NPTVBMRVggTUFLRV9TUUxTVEFURSgnNScs JzQnLCcwJywnMCcsJzEnKQorI2RlZmluZSBFUlJDT0RFX1RPT19NQU5ZX0NPTFVNTlMgTUFLRV9T UUxTVEFURSgnNScsJzQnLCcwJywnMScsJzEnKQorI2RlZmluZSBFUlJDT0RFX1RPT19NQU5ZX0FS R1VNRU5UUyBNQUtFX1NRTFNUQVRFKCc1JywnNCcsJzAnLCcyJywnMycpCisKKy8qIENsYXNzIDU1 IC0gT2JqZWN0IE5vdCBJbiBQcmVyZXF1aXNpdGUgU3RhdGUgKi8KKyNkZWZpbmUgRVJSQ09ERV9P QkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSBNQUtFX1NRTFNUQVRFKCc1JywnNScsJzAn LCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfT0JKRUNUX0lOX1VTRSBNQUtFX1NRTFNUQVRFKCc1 JywnNScsJzAnLCcwJywnNicpCisjZGVmaW5lIEVSUkNPREVfQ0FOVF9DSEFOR0VfUlVOVElNRV9Q QVJBTSBNQUtFX1NRTFNUQVRFKCc1JywnNScsJ1AnLCcwJywnMicpCisjZGVmaW5lIEVSUkNPREVf TE9DS19OT1RfQVZBSUxBQkxFIE1BS0VfU1FMU1RBVEUoJzUnLCc1JywnUCcsJzAnLCczJykKKyNk ZWZpbmUgRVJSQ09ERV9VTlNBRkVfTkVXX0VOVU1fVkFMVUVfVVNBR0UgTUFLRV9TUUxTVEFURSgn NScsJzUnLCdQJywnMCcsJzQnKQorCisvKiBDbGFzcyA1NyAtIE9wZXJhdG9yIEludGVydmVudGlv biAqLworI2RlZmluZSBFUlJDT0RFX09QRVJBVE9SX0lOVEVSVkVOVElPTiBNQUtFX1NRTFNUQVRF KCc1JywnNycsJzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfUVVFUllfQ0FOQ0VMRUQgTUFL RV9TUUxTVEFURSgnNScsJzcnLCcwJywnMScsJzQnKQorI2RlZmluZSBFUlJDT0RFX0FETUlOX1NI VVRET1dOIE1BS0VfU1FMU1RBVEUoJzUnLCc3JywnUCcsJzAnLCcxJykKKyNkZWZpbmUgRVJSQ09E RV9DUkFTSF9TSFVURE9XTiBNQUtFX1NRTFNUQVRFKCc1JywnNycsJ1AnLCcwJywnMicpCisjZGVm aW5lIEVSUkNPREVfQ0FOTk9UX0NPTk5FQ1RfTk9XIE1BS0VfU1FMU1RBVEUoJzUnLCc3JywnUCcs JzAnLCczJykKKyNkZWZpbmUgRVJSQ09ERV9EQVRBQkFTRV9EUk9QUEVEIE1BS0VfU1FMU1RBVEUo JzUnLCc3JywnUCcsJzAnLCc0JykKKyNkZWZpbmUgRVJSQ09ERV9JRExFX1NFU1NJT05fVElNRU9V VCBNQUtFX1NRTFNUQVRFKCc1JywnNycsJ1AnLCcwJywnNScpCisKKy8qIENsYXNzIDU4IC0gU3lz dGVtIEVycm9yIChlcnJvcnMgZXh0ZXJuYWwgdG8gUG9zdGdyZVNRTCBpdHNlbGYpICovCisjZGVm aW5lIEVSUkNPREVfU1lTVEVNX0VSUk9SIE1BS0VfU1FMU1RBVEUoJzUnLCc4JywnMCcsJzAnLCcw JykKKyNkZWZpbmUgRVJSQ09ERV9JT19FUlJPUiBNQUtFX1NRTFNUQVRFKCc1JywnOCcsJzAnLCcz JywnMCcpCisjZGVmaW5lIEVSUkNPREVfVU5ERUZJTkVEX0ZJTEUgTUFLRV9TUUxTVEFURSgnNScs JzgnLCdQJywnMCcsJzEnKQorI2RlZmluZSBFUlJDT0RFX0RVUExJQ0FURV9GSUxFIE1BS0VfU1FM U1RBVEUoJzUnLCc4JywnUCcsJzAnLCcyJykKKworLyogQ2xhc3MgNzIgLSBTbmFwc2hvdCBGYWls dXJlICovCisjZGVmaW5lIEVSUkNPREVfU05BUFNIT1RfVE9PX09MRCBNQUtFX1NRTFNUQVRFKCc3 JywnMicsJzAnLCcwJywnMCcpCisKKy8qIENsYXNzIEYwIC0gQ29uZmlndXJhdGlvbiBGaWxlIEVy cm9yICovCisjZGVmaW5lIEVSUkNPREVfQ09ORklHX0ZJTEVfRVJST1IgTUFLRV9TUUxTVEFURSgn RicsJzAnLCcwJywnMCcsJzAnKQorI2RlZmluZSBFUlJDT0RFX0xPQ0tfRklMRV9FWElTVFMgTUFL RV9TUUxTVEFURSgnRicsJzAnLCcwJywnMCcsJzEnKQorCisvKiBDbGFzcyBIViAtIEZvcmVpZ24g RGF0YSBXcmFwcGVyIEVycm9yIChTUUwvTUVEKSAqLworI2RlZmluZSBFUlJDT0RFX0ZEV19FUlJP UiBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnMCcpCisjZGVmaW5lIEVSUkNPREVfRkRX X0NPTFVNTl9OQU1FX05PVF9GT1VORCBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnNScp CisjZGVmaW5lIEVSUkNPREVfRkRXX0RZTkFNSUNfUEFSQU1FVEVSX1ZBTFVFX05FRURFRCBNQUtF X1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnMicpCisjZGVmaW5lIEVSUkNPREVfRkRXX0ZVTkNU SU9OX1NFUVVFTkNFX0VSUk9SIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzEnLCcwJykKKyNk ZWZpbmUgRVJSQ09ERV9GRFdfSU5DT05TSVNURU5UX0RFU0NSSVBUT1JfSU5GT1JNQVRJT04gTUFL RV9TUUxTVEFURSgnSCcsJ1YnLCcwJywnMicsJzEnKQorI2RlZmluZSBFUlJDT0RFX0ZEV19JTlZB TElEX0FUVFJJQlVURV9WQUxVRSBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcyJywnNCcpCisj ZGVmaW5lIEVSUkNPREVfRkRXX0lOVkFMSURfQ09MVU1OX05BTUUgTUFLRV9TUUxTVEFURSgnSCcs J1YnLCcwJywnMCcsJzcnKQorI2RlZmluZSBFUlJDT0RFX0ZEV19JTlZBTElEX0NPTFVNTl9OVU1C RVIgTUFLRV9TUUxTVEFURSgnSCcsJ1YnLCcwJywnMCcsJzgnKQorI2RlZmluZSBFUlJDT0RFX0ZE V19JTlZBTElEX0RBVEFfVFlQRSBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnNCcpCisj ZGVmaW5lIEVSUkNPREVfRkRXX0lOVkFMSURfREFUQV9UWVBFX0RFU0NSSVBUT1JTIE1BS0VfU1FM U1RBVEUoJ0gnLCdWJywnMCcsJzAnLCc2JykKKyNkZWZpbmUgRVJSQ09ERV9GRFdfSU5WQUxJRF9E RVNDUklQVE9SX0ZJRUxEX0lERU5USUZJRVIgTUFLRV9TUUxTVEFURSgnSCcsJ1YnLCcwJywnOScs JzEnKQorI2RlZmluZSBFUlJDT0RFX0ZEV19JTlZBTElEX0hBTkRMRSBNQUtFX1NRTFNUQVRFKCdI JywnVicsJzAnLCcwJywnQicpCisjZGVmaW5lIEVSUkNPREVfRkRXX0lOVkFMSURfT1BUSU9OX0lO REVYIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCdDJykKKyNkZWZpbmUgRVJSQ09ERV9G RFdfSU5WQUxJRF9PUFRJT05fTkFNRSBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnRCcp CisjZGVmaW5lIEVSUkNPREVfRkRXX0lOVkFMSURfU1RSSU5HX0xFTkdUSF9PUl9CVUZGRVJfTEVO R1RIIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzknLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9G RFdfSU5WQUxJRF9TVFJJTkdfRk9STUFUIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCdB JykKKyNkZWZpbmUgRVJSQ09ERV9GRFdfSU5WQUxJRF9VU0VfT0ZfTlVMTF9QT0lOVEVSIE1BS0Vf U1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCc5JykKKyNkZWZpbmUgRVJSQ09ERV9GRFdfVE9PX01B TllfSEFORExFUyBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcxJywnNCcpCisjZGVmaW5lIEVS UkNPREVfRkRXX09VVF9PRl9NRU1PUlkgTUFLRV9TUUxTVEFURSgnSCcsJ1YnLCcwJywnMCcsJzEn KQorI2RlZmluZSBFUlJDT0RFX0ZEV19OT19TQ0hFTUFTIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywn MCcsJzAnLCdQJykKKyNkZWZpbmUgRVJSQ09ERV9GRFdfT1BUSU9OX05BTUVfTk9UX0ZPVU5EIE1B S0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCdKJykKKyNkZWZpbmUgRVJSQ09ERV9GRFdfUkVQ TFlfSEFORExFIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCdLJykKKyNkZWZpbmUgRVJS Q09ERV9GRFdfU0NIRU1BX05PVF9GT1VORCBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywn UScpCisjZGVmaW5lIEVSUkNPREVfRkRXX1RBQkxFX05PVF9GT1VORCBNQUtFX1NRTFNUQVRFKCdI JywnVicsJzAnLCcwJywnUicpCisjZGVmaW5lIEVSUkNPREVfRkRXX1VOQUJMRV9UT19DUkVBVEVf RVhFQ1VUSU9OIE1BS0VfU1FMU1RBVEUoJ0gnLCdWJywnMCcsJzAnLCdMJykKKyNkZWZpbmUgRVJS Q09ERV9GRFdfVU5BQkxFX1RPX0NSRUFURV9SRVBMWSBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAn LCcwJywnTScpCisjZGVmaW5lIEVSUkNPREVfRkRXX1VOQUJMRV9UT19FU1RBQkxJU0hfQ09OTkVD VElPTiBNQUtFX1NRTFNUQVRFKCdIJywnVicsJzAnLCcwJywnTicpCisKKy8qIENsYXNzIFAwIC0g UEwvcGdTUUwgRXJyb3IgKi8KKyNkZWZpbmUgRVJSQ09ERV9QTFBHU1FMX0VSUk9SIE1BS0VfU1FM U1RBVEUoJ1AnLCcwJywnMCcsJzAnLCcwJykKKyNkZWZpbmUgRVJSQ09ERV9SQUlTRV9FWENFUFRJ T04gTUFLRV9TUUxTVEFURSgnUCcsJzAnLCcwJywnMCcsJzEnKQorI2RlZmluZSBFUlJDT0RFX05P X0RBVEFfRk9VTkQgTUFLRV9TUUxTVEFURSgnUCcsJzAnLCcwJywnMCcsJzInKQorI2RlZmluZSBF UlJDT0RFX1RPT19NQU5ZX1JPV1MgTUFLRV9TUUxTVEFURSgnUCcsJzAnLCcwJywnMCcsJzMnKQor I2RlZmluZSBFUlJDT0RFX0FTU0VSVF9GQUlMVVJFIE1BS0VfU1FMU1RBVEUoJ1AnLCcwJywnMCcs JzAnLCc0JykKKworLyogQ2xhc3MgWFggLSBJbnRlcm5hbCBFcnJvciAqLworI2RlZmluZSBFUlJD T0RFX0lOVEVSTkFMX0VSUk9SIE1BS0VfU1FMU1RBVEUoJ1gnLCdYJywnMCcsJzAnLCcwJykKKyNk ZWZpbmUgRVJSQ09ERV9EQVRBX0NPUlJVUFRFRCBNQUtFX1NRTFNUQVRFKCdYJywnWCcsJzAnLCcw JywnMScpCisjZGVmaW5lIEVSUkNPREVfSU5ERVhfQ09SUlVQVEVEIE1BS0VfU1FMU1RBVEUoJ1gn LCdYJywnMCcsJzAnLCcyJykKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu YyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYwppbmRleCAyZjQxMmNhM2RiLi44NTVjYmVi NDAxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBAIC0yNTQ1LDcgKzI1NDUsOCBAQCBwc3FsX2NvbXBsZXRp b24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCWVsc2UgaWYgKE1hdGNo ZXMoIkNPUFl8XFxjb3B5IiwgTWF0Y2hBbnksICJGUk9NfFRPIiwgTWF0Y2hBbnksICJXSVRIIiwg IigiKSkKIAkJQ09NUExFVEVfV0lUSCgiRk9STUFUIiwgIkZSRUVaRSIsICJERUxJTUlURVIiLCAi TlVMTCIsCiAJCQkJCSAgIkhFQURFUiIsICJRVU9URSIsICJFU0NBUEUiLCAiRk9SQ0VfUVVPVEUi LAotCQkJCQkgICJGT1JDRV9OT1RfTlVMTCIsICJGT1JDRV9OVUxMIiwgIkVOQ09ESU5HIik7CisJ CQkJCSAgIkZPUkNFX05PVF9OVUxMIiwgIkZPUkNFX05VTEwiLCAiRU5DT0RJTkciLAorCQkJCQkg ICJJR05PUkVfRVJST1JTIik7CiAKIAkvKiBDb21wbGV0ZSBDT1BZIDxzdGg+IEZST018VE8gZmls ZW5hbWUgV0lUSCAoRk9STUFUICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09QWXxcXGNvcHkiLCBN YXRjaEFueSwgIkZST018VE8iLCBNYXRjaEFueSwgIldJVEgiLCAiKCIsICJGT1JNQVQiKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2NvcHkuaCBiL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2NvcHkuaAppbmRleCAyNjQ4OTVkMjc4Li5hZGU3NGNlNWExIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9jb3B5LmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weS5o CkBAIC0zMSw2ICszMSw3IEBAIHR5cGVkZWYgc3RydWN0IENvcHlGb3JtYXRPcHRpb25zCiAJCQkJ CQkJCSAqIC0xIGlmIG5vdCBzcGVjaWZpZWQgKi8KIAlib29sCQliaW5hcnk7CQkJLyogYmluYXJ5 IGZvcm1hdD8gKi8KIAlib29sCQlmcmVlemU7CQkJLyogZnJlZXplIHJvd3Mgb24gbG9hZGluZz8g Ki8KKwlib29sCQlpZ25vcmVfZXJyb3JzOyAgLyogaWdub3JlIHJvd3Mgd2l0aCBlcnJvcnMgKi8K IAlib29sCQljc3ZfbW9kZTsJCS8qIENvbW1hIFNlcGFyYXRlZCBWYWx1ZSBmb3JtYXQ/ICovCiAJ Ym9vbAkJaGVhZGVyX2xpbmU7CS8qIENTViBoZWFkZXIgbGluZT8gKi8KIAljaGFyCSAgICpudWxs X3ByaW50OwkJLyogTlVMTCBtYXJrZXIgc3RyaW5nIChzZXJ2ZXIgZW5jb2RpbmchKSAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJuYWwuaCBiL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2NvcHlmcm9tX2ludGVybmFsLmgKaW5kZXggNGQ2OGQ5Y2NlYi4uOTNh M2I3NDk5OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29weWZyb21faW50ZXJu YWwuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb3B5ZnJvbV9pbnRlcm5hbC5oCkBAIC02 OCw2ICs2OCw3IEBAIHR5cGVkZWYgc3RydWN0IENvcHlGcm9tU3RhdGVEYXRhCiAJLyogcGFyYW1l dGVycyBmcm9tIHRoZSBDT1BZIGNvbW1hbmQgKi8KIAlSZWxhdGlvbglyZWw7CQkJLyogcmVsYXRp b24gdG8gY29weSBmcm9tICovCiAJTGlzdAkgICAqYXR0bnVtbGlzdDsJCS8qIGludGVnZXIgbGlz dCBvZiBhdHRudW1zIHRvIGNvcHkgKi8KKwlpbnQJCQlhdHRyX2NvdW50OwkJLyogbGVuZ3RoIG9m IGF0dG51bWxpc3QgKi8KIAljaGFyCSAgICpmaWxlbmFtZTsJCS8qIGZpbGVuYW1lLCBvciBOVUxM IGZvciBTVERJTiAqLwogCWJvb2wJCWlzX3Byb2dyYW07CQkvKiBpcyAnZmlsZW5hbWUnIGEgcHJv Z3JhbSB0byBwb3Blbj8gKi8KIAljb3B5X2RhdGFfc291cmNlX2NiIGRhdGFfc291cmNlX2NiOyAv KiBmdW5jdGlvbiBmb3IgcmVhZGluZyBkYXRhICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggZjgzNmFj Zjg3Ni4uMmJiM2NjY2VhOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMTk2LDYgKzE5Niw3IEBAIFBH X0tFWVdPUkQoImhvbGQiLCBIT0xELCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJob3VyIiwgSE9VUl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQog UEdfS0VZV09SRCgiaWRlbnRpdHkiLCBJREVOVElUWV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJpZiIsIElGX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKK1BHX0tFWVdPUkQoImlnbm9yZV9lcnJvcnMiLCBJR05PUkVfRVJST1JTLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJpbGlrZSIsIElMSUtFLCBU WVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiaW1tZWRpYXRl IiwgSU1NRURJQVRFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JE KCJpbW11dGFibGUiLCBJTU1VVEFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKaW5kZXggNWYzNjg1ZTllZi4uNGUwNGVmY2Ji YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTY0OSw2ICs2NDksMzcgQEAg U0VMRUNUICogRlJPTSBpbnN0ZWFkX29mX2luc2VydF90Ymw7CiAoMiByb3dzKQogCiBDT01NSVQ7 CistLSB0ZXN0IElHTk9SRV9FUlJPUlMgb3B0aW9uCitDUkVBVEUgVEFCTEUgY2hlY2tfaWduX2Vy ciAobiBpbnQsIG0gaW50LCBrIGludCk7CitDT1BZIGNoZWNrX2lnbl9lcnIgRlJPTSBTVERJTiBX SVRIIElHTk9SRV9FUlJPUlM7CitXQVJOSU5HOiAgQ09QWSBjaGVja19pZ25fZXJyLCBsaW5lIDI6 ICIyCTIJMgkyIgorU0VMRUNUICogRlJPTSBjaGVja19pZ25fZXJyOworIG4gfCBtIHwgayAKKy0t LSstLS0rLS0tCisgMSB8IDEgfCAxCisgMyB8IDMgfCAzCisoMiByb3dzKQorCitUUlVOQ0FURSBj aGVja19pZ25fZXJyOworQ09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCBJR05PUkVf RVJST1JTOworV0FSTklORzogIENPUFkgY2hlY2tfaWduX2VyciwgbGluZSAyOiAiMgkyIgorU0VM RUNUICogRlJPTSBjaGVja19pZ25fZXJyOworIG4gfCBtIHwgayAKKy0tLSstLS0rLS0tCisgMSB8 IDEgfCAxCisgMyB8IDMgfCAzCisoMiByb3dzKQorCitUUlVOQ0FURSBjaGVja19pZ25fZXJyOwor Q09QWSBjaGVja19pZ25fZXJyIEZST00gU1RESU4gV0lUSCBJR05PUkVfRVJST1JTOworV0FSTklO RzogIENPUFkgY2hlY2tfaWduX2VyciwgbGluZSAyLCBjb2x1bW4gbTogImEiCitTRUxFQ1QgKiBG Uk9NIGNoZWNrX2lnbl9lcnI7CisgbiB8IG0gfCBrIAorLS0tKy0tLSstLS0KKyAxIHwgMSB8IDEK KyAzIHwgMyB8IDMKKygyIHJvd3MpCisKIC0tIGNsZWFuIHVwCiBEUk9QIFRBQkxFIGZvcmNldGVz dDsKIERST1AgVEFCTEUgdmlzdGVzdDsKQEAgLTY2MywzICs2OTQsNCBAQCBEUk9QIFRBQkxFIGlu c3RlYWRfb2ZfaW5zZXJ0X3RibDsKIERST1AgVklFVyBpbnN0ZWFkX29mX2luc2VydF90Ymxfdmll dzsKIERST1AgVklFVyBpbnN0ZWFkX29mX2luc2VydF90Ymxfdmlld18yOwogRFJPUCBGVU5DVElP TiBmdW5faW5zdGVhZF9vZl9pbnNlcnRfdGJsKCk7CitEUk9QIFRBQkxFIGNoZWNrX2lnbl9lcnI7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb3B5Mi5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jb3B5Mi5zcWwKaW5kZXggYjNjMTZhZjQ4ZS4uMzY0MmMxMWY5MSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29weTIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NvcHkyLnNxbApAQCAtNDU0LDYgKzQ1NCwzMSBAQCB0ZXN0MQogU0VMRUNUICogRlJP TSBpbnN0ZWFkX29mX2luc2VydF90Ymw7CiBDT01NSVQ7CiAKKy0tIHRlc3QgSUdOT1JFX0VSUk9S UyBvcHRpb24KK0NSRUFURSBUQUJMRSBjaGVja19pZ25fZXJyIChuIGludCwgbSBpbnQsIGsgaW50 KTsKK0NPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJVEggSUdOT1JFX0VSUk9SUzsKKzEJ MQkxCisyCTIJMgkyCiszCTMJMworXC4KK1NFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsKKwor VFJVTkNBVEUgY2hlY2tfaWduX2VycjsKK0NPUFkgY2hlY2tfaWduX2VyciBGUk9NIFNURElOIFdJ VEggSUdOT1JFX0VSUk9SUzsKKzEJMQkxCisyCTIKKzMJMwkzCitcLgorU0VMRUNUICogRlJPTSBj aGVja19pZ25fZXJyOworCitUUlVOQ0FURSBjaGVja19pZ25fZXJyOworQ09QWSBjaGVja19pZ25f ZXJyIEZST00gU1RESU4gV0lUSCBJR05PUkVfRVJST1JTOworMQkxCTEKKzIJYQkyCiszCTMJMwor XC4KK1NFTEVDVCAqIEZST00gY2hlY2tfaWduX2VycjsKKwogLS0gY2xlYW4gdXAKIERST1AgVEFC TEUgZm9yY2V0ZXN0OwogRFJPUCBUQUJMRSB2aXN0ZXN0OwpAQCAtNDY4LDMgKzQ5Myw0IEBAIERS T1AgVEFCTEUgaW5zdGVhZF9vZl9pbnNlcnRfdGJsOwogRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5z ZXJ0X3RibF92aWV3OwogRFJPUCBWSUVXIGluc3RlYWRfb2ZfaW5zZXJ0X3RibF92aWV3XzI7CiBE Uk9QIEZVTkNUSU9OIGZ1bl9pbnN0ZWFkX29mX2luc2VydF90YmwoKTsKK0RST1AgVEFCTEUgY2hl Y2tfaWduX2VycjsKLS0gCjIuMjUuMQoK --000000000000a25fcb05d367d1b4--