Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wEV3D-0045FK-39 for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Apr 2026 16:31:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wEV3B-00FfE1-0z for pgsql-hackers@arkaria.postgresql.org; Sun, 19 Apr 2026 16:31:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wESa1-00FO6Y-15 for pgsql-hackers@lists.postgresql.org; Sun, 19 Apr 2026 13:52:57 +0000 Received: from mail-pj1-x1030.google.com ([2607:f8b0:4864:20::1030]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wESZn-00000001ypZ-2Ons for pgsql-hackers@postgresql.org; Sun, 19 Apr 2026 13:52:57 +0000 Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-35e576110adso1458095a91.0 for ; Sun, 19 Apr 2026 06:52:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776606760; cv=none; d=google.com; s=arc-20240605; b=RSVw2T/82Yk2w2aOxAP/BxSQikBOM1+cRJzBHZMI46NJ7Hn0r4LWD1zWVF09rFiOqR yz16ByO9/IOFmtUVXq0jRGUcFo/EiVTY8jhARi5mf9NK1I11W1MTH3j/zeaKLITh6Ku4 /SzNgra+Re2N1cw0Vdp0lhf1bCGBOyrSpsrxdPpeVHV9EknomETSU4zaRr2wEof9zLvU pR4QGcVQ6d7QVB2/wE5G4VLKBqvLh8T6CcVxyiSYcVycrpJB7WijNKVYEItOiKpatGcu L1/KeqVOt5fd207B3OQN/mvwmmb52f0t7fuK3VI+dIL0BLOlw//Wbk7UUo4bYqcDvi4N cuhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:dkim-signature; bh=N2tFkshkfHtpY/CI04fPqQ62U9ZC1MGjRykIPmCYw00=; fh=AC2pxXijm4zjpuVcUaePPdBzS8ih36aBWMqBExHs7Do=; b=EHP5Y0B7iX+tYvLsggFl5H1TBg+LcrSMAoCHrpIKuiIwM+SB5XyCKwTDjdSqlJg55p 8at8b8QS+LPnK42IxCr+HrEe/8xC4N61fuOTMX607H03NBA1UadVWQNdYs8+gRvfEo/7 QSFk74JhwmrDZTAIQlEvDkFh00zyqnEhhM+GUyzjPXTnh6UvRW6+b1ooa8fhsyrm0CMv 3g7Mgp5pWrIoEeZS7JjBc/bu58qXS/f3RwL1xSLNyZO+yoNT2nHAzvIyYgykx774rdU/ /gQ0zPSyNVJrOXoBbGD+VThENBvhcV1WoS1Jpp6UIrEG2kwOlgdqX5odX+GH7TTG9rtp KrBA==; darn=postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776606760; x=1777211560; darn=postgresql.org; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=N2tFkshkfHtpY/CI04fPqQ62U9ZC1MGjRykIPmCYw00=; b=iE29iv671n/3dO2UK737M7kcRP5WocqwF93zVTKMRj/vseqnh8pr5cs045JmmsLceY BN5p7gd2i6hJ0wJgvqGOgklvpl1ab9+4epMRD2+dZi7Q9W7E/VTCXzKLXn1vB53jgzvV wQJbFhW/o33zwie5NVupkGFpuiBHWWzJEbaa4q430t0oY+5kDDXjGOtzij+c8vLn/grR a4i7uXlzaOGnXhsMUE8JobcxiiM2BaYK1AfpP5EsUY0EgKH8fo68IiQomQ4PXJDThZCn VgZznUAQ0Dwo8VnlBZDMThGgxcRF5M9n5GOUmUR+9wqdtE33fxrHSiCs5x9VBjhQZiQa Guqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776606760; x=1777211560; h=cc:to:subject:message-id:date:from:reply-to:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=N2tFkshkfHtpY/CI04fPqQ62U9ZC1MGjRykIPmCYw00=; b=GZ1klHQc1s3OCkrT59ZOU/9B3dH5LEGioloaY3sfIF5uBQ9LgTKu1SkdrT2oLAWii5 tU8ZRzH81KD63SCKwiLJaUB0foHjRrc7D+9VTOb+z/akjOtUvIjrCEQgY4ypYHpohfW1 VHWPKvFTgu4Y2SVXzMir0r2OFV5YHU10VMOSMGwycVEG/vDd3Qgn5rymmYfzIMYGpcLY y2XiUUX48GjShTslW618yxITM2xR1y3t2tNKMXjOl/kq+gsBFcx6a8c/Obr2HrSmQGs1 V6qbK4257ypqG7pWcA8riuGy80FcdnT1X9mx3NCdya7pCZ8uvwVQrxFXGkZQAWEtONQY NV0A== X-Forwarded-Encrypted: i=1; AFNElJ8oUxIDOAOo29XD9GRm439r157fYaXJ0KypoPhBq2KH8FHc7TrP7e36zIVqIRShrZBsnitvJRYgi9PDYHkx@postgresql.org X-Gm-Message-State: AOJu0YwNPFkJspZaygVjZY21Y9kAns5JQ+oaOQYdPT4soMCqTZNM1tfV +FwMGC7L5bVyzdNOVo97mutkQtCP3TsqAITyCBrk5fEr2qJRTOTw+AI+32/0RtD1Y2Ap4x7aIdP 5sHapnOdPvXdZMoAXFkqqDj8IfdlzqRg= X-Gm-Gg: AeBDietkgg5eb1gRj8di0PzfTuLXXk3L/LptpgFpG1fGzpK3kw/WhK6D7gWb15G2zah xEZI5Kjlqy1eM7dXi+AteBrzLK+yVv3/vW1H6H4WQknzwOG0MI87bnEx0K+C4VhVe3k/euDosGx jW0xINuJ9SxDyV9j4jPKulUGAjfRmOcuHaeVtLnAAs4JQJyXER3aHRN6kRy/byCzQ1FaJsMlMGL sW+nKeOQh4UdQjuMOQG6aw4vFrV8NIObpoPJ7a4PzKEFqWkmiTK5o+xip4OuGHjRKR8iw0AAEQS TzaStk99zs5jZp7VKVoOiIUL3XLnbwdAPtDPX1MNwHz5WP2XSC4= X-Received: by 2002:a17:90b:558e:b0:35f:c1cc:fee0 with SMTP id 98e67ed59e1d1-36140290941mr6554467a91.8.1776606759819; Sun, 19 Apr 2026 06:52:39 -0700 (PDT) MIME-Version: 1.0 References: <20260417.224708.424973995260396036.ishii@postgresql.org> <20260419.191801.590286723326428236.ishii@postgresql.org> In-Reply-To: <20260419.191801.590286723326428236.ishii@postgresql.org> Reply-To: assam258@gmail.com From: Henson Choi Date: Sun, 19 Apr 2026 22:52:26 +0900 X-Gm-Features: AQROBzC54ZQm77gpeBzDcxs7iOljLWeB2Y-p4LFxOx9bzQhCS308uu9DGWVH8jU Message-ID: Subject: Re: Row pattern recognition To: Tatsuo Ishii Cc: zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, pgsql-hackers@postgresql.org Content-Type: multipart/mixed; boundary="000000000000d35376064fd07e6d" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000d35376064fd07e6d Content-Type: multipart/alternative; boundary="000000000000d35375064fd07e6b" --000000000000d35375064fd07e6b Content-Type: text/plain; charset="UTF-8" Hi Tatsuo, Thank you for the careful review and for confirming the build on your side. Ok, I will not rebase current v46 and continue to apply your > incremental patches and review them, until we agree to ship v47. I > may see conflicts while creating v47 patch sets. I will ask help if if > your assistance needed. Thanks in advance. > Understood. Please let me know whenever a conflict comes up while assembling v47 and I will help resolve it on my side. > I confirmed 0001-0008 applied cleanly and see no compile > warning. Regression test passed, no crash. > Thank you for confirming. > > Regarding the README.rpr suggestion from the 0008 review: the > > documentation in execRPR.c has dependencies spread across the patch > > series, so separating it mid-review would be disruptive. I plan to > > split it out as part of the final patch list once all 31 patches have > > been reviewed. > > Ok. Thank you. I will prepare the README.rpr split as a follow-up patch after the current 0031 once the series review is complete. Looking forward to seeing revised incremental patch sets. Attached is the revised v47 series, with the review comments on 0006, 0007, and 0008 incorporated. Numbering and subjects are unchanged from the previous send. Since the edits in 0006-0008 propagate into the later patches -- mostly as context-line shifts, and in 0017/0023 as updates to the rpr_integration expected output -- I have attached the full 0001-0031 set rather than only the updated patches. Applying this set on top of v46 should give the same final tree as before, just with the review adjustments folded in. Summary of changes from the previous v47: - 0006 (Fix DEFINE expression handling): per your comment, the first occurrence of "RPR" now carries the "(Row Pattern Recognition)" expansion and the later occurrence is the bare abbreviation. - 0007 (Add RPR planner integration tests): overall strengthening of the tests and their comments. Each block now carries an intent comment describing what the block is trying to cover and what the expected plan or result is, the "Non-RPR / RPR" comment pair is reworded as complete sentences, and B8 is reworked so that the EXPLAIN plan actually exercises Incremental Sort. Because some blocks cover features that are only introduced later in the series, a few tests in 0007 temporarily produce error output. Concretely, B4 (RPR + prepared statements) uses the 2-argument form PREV(val, $1), which is not yet available at the 0007 point: it is introduced in 0017 (1-slot PREV/NEXT navigation), and the accompanying "Nav Mark Lookback" EXPLAIN property referenced in the B4 comments is added in 0023. The rpr_integration expected-output file is updated by 0017 (to clear the PREV/prepared-statement errors) and then again by 0023 (to add the "Nav Mark Lookback" lines to the EXPLAIN output), so that by the end of the series the output is clean. XXX notes have been added in three places where a test records behaviour that may be revisited later: (1) The subquery-output test documents why the column guard in allpaths.c has to be conservative: a column referenced only by DEFINE is indistinguishable from an exposed column at the targetlist level, so remove_unused_subquery_outputs() cannot apply its NULL-replacement selectively without risking DEFINE evaluation on NULL inputs. The XXX flags this as a candidate for a precise follow-up optimization. (2) The B7 Recursive CTE test carries an XXX noting that it is unclear whether this case falls under the ISO/IEC 9075-2 4.18.5 / 6.17.5 prohibition, and even if it does not, whether a query that does trigger the prohibition can be constructed at all. The disposition is left to the community. (3) The B9 volatile-in-DEFINE test records current behaviour using "random() >= 0.0" (structurally equivalent to TRUE, so the expected output stays deterministic). The XXX flags that if we decide to reject volatile functions in DEFINE, this test must be converted into an error-case test. See the dedicated section at the end of this mail. - 0008 (Replace reduced frame map with single match result): * Comment block X-1 now uses the full field names rpr_match_valid / rpr_match_matched / rpr_match_length. * get_reduced_frame_status() sentence rephrased in the passive voice, as you suggested: "Row's status against the current match result can be obtained by calling get_reduced_frame_status()." * README.rpr split deferred per the above. - 0009-0031: no semantic code changes. Most patches only carry context-line shifts from the edits above. The two exceptions are 0017 and 0023, whose rpr_integration.out hunks are updated to match the revised B4 test in 0007 (clearing the temporary errors and adding the "Nav Mark Lookback" lines, respectively). On volatile functions in DEFINE (your 2026-04-13 mail): the SQL standard itself is relatively narrow here -- the only explicit restriction it places is that a navigation function's offset must be a runtime constant. Volatile expressions in the DEFINE predicate are not forbidden by the standard. That said, once we move into the pattern-matching machinery, the observable semantics of a volatile DEFINE become quite murky. Depending on the situation, the DEFINE predicate may be evaluated once per row, or separately per active matching context, or some combination of both as the NFA explores alternatives. A user writing "random() > 0.5" in DEFINE would have a hard time predicting, let alone relying on, the evaluation count -- and I have not been able to think of a realistic use case that actually benefits from this flexibility. Given the gap between "permitted by the standard" and "meaningful to the user," my own leaning is toward prohibiting volatile functions in DEFINE at transformation time, and -- if we go that way -- also examining whether the new check would make the existing runtime-constant check on the navigation-function offset redundant, or whether the two could be folded into a single check pass. That said, this is ultimately a policy call, and I would rather defer the final decision to your judgment as a senior member of the community: does prohibition seem like the right direction, or would you prefer to keep the current behaviour in place? On sequencing, if we do take it up, I would suggest handling it after the 31-patch set, alongside the README.rpr split as follow-up work on top of 0031. Whether it ultimately lands inside v47 or as a separate piece on top does not need to be decided right now -- there is still room to discuss it as the review progresses, and I am happy to adjust either way based on your direction. Regards, Henson --000000000000d35375064fd07e6b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
=C2= =A0Hi Tatsuo,

Thank you for the careful review and for confirming = the build on
your side.

Ok, I will not rebase current v46 and continue to apply your
incremental patches and review them, until we agree to ship v47.=C2=A0 I may see conflicts while creating v47 patch sets. I will ask help if if
your assistance needed. Thanks in advance.

U= nderstood.=C2=A0 Please let me know whenever a conflict comes up while
<= div>assembling v47 and I will help resolve it on my side.
=C2=A0<= /div>
I confirmed 0001-000= 8 applied cleanly and see no compile
warning. Regression test passed, no crash.

<= div>Thank you for confirming.
=C2=A0
> Regarding the README.rpr suggestion f= rom the 0008 review: the
> documentation in execRPR.c has dependencies spread across the patch > series, so separating it mid-review would be disruptive. I plan to
> split it out as part of the final patch list once all 31 patches have<= br> > been reviewed.

Ok.

Thank you.=C2=A0 I will prepare the REA= DME.rpr split as a follow-up patch
after the current 0031 once the ser= ies review is complete.

Looking forward to seeing revised incremental patch sets.
=
Attached is the revised v47 series, with the review comments= on
0006, 0007, and 0008 incorporated.=C2=A0 Numbering and subjects are<= br>unchanged from the previous send.

Since the edits in 0006-0008 pr= opagate into the later patches --
mostly as context-line shifts, and in = 0017/0023 as updates to the
rpr_integration expected output -- I have at= tached the full
0001-0031 set rather than only the updated patches.=C2= =A0 Applying this
set on top of v46 should give the same final tree as b= efore, just
with the review adjustments folded in.

Summary of cha= nges from the previous v47:

=C2=A0 - 0006 (Fix DEFINE expression han= dling): per your comment, the
=C2=A0 =C2=A0 first occurrence of "RP= R" now carries the "(Row Pattern
=C2=A0 =C2=A0 Recognition)&qu= ot; expansion and the later occurrence is the bare
=C2=A0 =C2=A0 abbrevi= ation.

=C2=A0 - 0007 (Add RPR planner integration tests): overall=C2=A0 =C2=A0 strengthening of the tests and their comments.=C2=A0 Each bl= ock
=C2=A0 =C2=A0 now carries an intent comment describing what the bloc= k is
=C2=A0 =C2=A0 trying to cover and what the expected plan or result = is,
=C2=A0 =C2=A0 the "Non-RPR / RPR" comment pair is reworded= as complete
=C2=A0 =C2=A0 sentences, and B8 is reworked so that the EXP= LAIN plan
=C2=A0 =C2=A0 actually exercises Incremental Sort.

=C2= =A0 =C2=A0 Because some blocks cover features that are only
=C2=A0 =C2= =A0 introduced later in the series, a few tests in 0007
=C2=A0 =C2=A0 te= mporarily produce error output.=C2=A0 Concretely, B4
=C2=A0 =C2=A0 (RPR = + prepared statements) uses the 2-argument form
=C2=A0 =C2=A0 PREV(val, = $1), which is not yet available at the 0007
=C2=A0 =C2=A0 point: it is i= ntroduced in 0017 (1-slot PREV/NEXT
=C2=A0 =C2=A0 navigation), and the a= ccompanying "Nav Mark Lookback"
=C2=A0 =C2=A0 EXPLAIN property= referenced in the B4 comments is added
=C2=A0 =C2=A0 in 0023.=C2=A0 The= rpr_integration expected-output file is
=C2=A0 =C2=A0 updated by 0017 (= to clear the PREV/prepared-statement
=C2=A0 =C2=A0 errors) and then agai= n by 0023 (to add the
=C2=A0 =C2=A0 "Nav Mark Lookback" lines = to the EXPLAIN output), so that
=C2=A0 =C2=A0 by the end of the series t= he output is clean.

=C2=A0 =C2=A0 XXX notes have been added in three= places where a test
=C2=A0 =C2=A0 records behaviour that may be revisit= ed later:

=C2=A0 =C2=A0 =C2=A0 (1) The subquery-output test document= s why the column
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 guard in allpaths.c = has to be conservative: a column
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 refe= renced only by DEFINE is indistinguishable from
=C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 an exposed column at the targetlist level, so
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 remove_unused_subquery_outputs() cannot apply its
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 NULL-replacement selectively without ris= king DEFINE
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 evaluation on NULL inputs= .=C2=A0 The XXX flags this as a
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 candi= date for a precise follow-up optimization.

=C2=A0 =C2=A0 =C2=A0 (2) = The B7 Recursive CTE test carries an XXX noting that
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 it is unclear whether this case falls under the
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 ISO/IEC 9075-2 4.18.5 / 6.17.5 prohibition, an= d even
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if it does not, whether a quer= y that does trigger
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 the prohibition c= an be constructed at all.=C2=A0 The
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 d= isposition is left to the community.

=C2=A0 =C2=A0 =C2=A0 (3) The B9= volatile-in-DEFINE test records current
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 behaviour using "random() >=3D 0.0" (structurally
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 equivalent to TRUE, so the expected output = stays
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 deterministic).=C2=A0 The XXX f= lags that if we decide to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 reject vola= tile functions in DEFINE, this test must
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 be converted into an error-case test.=C2=A0 See the
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 dedicated section at the end of this mail.

=C2= =A0 - 0008 (Replace reduced frame map with single match result):
=C2=A0 = =C2=A0 =C2=A0 * Comment block X-1 now uses the full field names
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 rpr_match_valid / rpr_match_matched / rpr_match_length= .
=C2=A0 =C2=A0 =C2=A0 * get_reduced_frame_status() sentence rephrased i= n the
=C2=A0 =C2=A0 =C2=A0 =C2=A0 passive voice, as you suggested:
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 "Row's status against the curre= nt match result can be
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0obtained= by calling get_reduced_frame_status()."
=C2=A0 =C2=A0 =C2=A0 * REA= DME.rpr split deferred per the above.

=C2=A0 - 0009-0031: no semanti= c code changes.=C2=A0 Most patches only
=C2=A0 =C2=A0 carry context-line= shifts from the edits above.=C2=A0 The two
=C2=A0 =C2=A0 exceptions are= 0017 and 0023, whose rpr_integration.out
=C2=A0 =C2=A0 hunks are update= d to match the revised B4 test in 0007
=C2=A0 =C2=A0 (clearing the tempo= rary errors and adding the
=C2=A0 =C2=A0 "Nav Mark Lookback" l= ines, respectively).

On volatile functions in DEFINE (your 2026-04-1= 3 mail): the SQL
standard itself is relatively narrow here -- the only e= xplicit
restriction it places is that a navigation function's offset= must
be a runtime constant.=C2=A0 Volatile expressions in the DEFINEpredicate are not forbidden by the standard.

That said, once we mov= e into the pattern-matching machinery, the
observable semantics of a vol= atile DEFINE become quite murky.
Depending on the situation, the DEFINE = predicate may be evaluated
once per row, or separately per active matchi= ng context, or some
combination of both as the NFA explores alternatives= .=C2=A0 A user
writing "random() > 0.5" in DEFINE would hav= e a hard time
predicting, let alone relying on, the evaluation count -- = and I
have not been able to think of a realistic use case that actually<= br>benefits from this flexibility.

Given the gap between "permi= tted by the standard" and "meaningful
to the user," my ow= n leaning is toward prohibiting volatile
functions in DEFINE at transfor= mation time, and -- if we go that
way -- also examining whether the new = check would make the
existing runtime-constant check on the navigation-f= unction offset
redundant, or whether the two could be folded into a sing= le check
pass.=C2=A0 That said, this is ultimately a policy call, and I = would rather defer
the final decision to your judgment as a senior membe= r of the
community: does prohibition seem like the right direction, orwould you prefer to keep the current behaviour in place?

On sequen= cing, if we do take it up, I would suggest handling it
after the 31-patc= h set, alongside the README.rpr split as
follow-up work on top of 0031.= =C2=A0 Whether it ultimately lands
inside v47 or as a separate piece on = top does not need to be
decided right now -- there is still room to disc= uss it as the
review progresses, and I am happy to adjust either way bas= ed on
your direction.

Regards,
Henson
=C2=A0
--000000000000d35375064fd07e6b-- --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0001-Remove-unused-regex-include.txt" Content-Disposition: attachment; filename="nocfbot-0001-Remove-unused-regex-include.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tpmfs0 RnJvbSBmNzlkNDM1OGJjMDAzM2JjNGZlOGI0ZjhjOWUzMjkwNGQzZGY2YTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDI0IE1hciAyMDI2IDE5OjA0OjE5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gUmVtb3Zl IHVudXNlZCByZWdleC9yZWdleC5oIGluY2x1ZGUgZnJvbSBub2RlV2luZG93QWdnLmMKCi0tLQog c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIHwgMSAtCiAxIGZpbGUgY2hhbmdl ZCwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA0 Zjg4MmI4NzdiMS4uMTg1ZDdhMGQ1YWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX2FnZy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIK LSNpbmNsdWRlICJyZWdleC9yZWdleC5oIgogI2luY2x1ZGUgInV0aWxzL2FjbC5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKLS0gCjIuNTAu MSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Disposition: attachment; filename="nocfbot-0002-CHECK_FOR_INTERRUPTS-nfa_add_state_unique.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tpouz1 RnJvbSAzMWUwN2RjYmQ1MzkxYjdmZjllZjgyOTNmY2IwOTBjZjhmODQ1YzcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjI1OjQwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIENI RUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX2FkZF9zdGF0ZV91bmlxdWUoKSBmb3IKIHN0YXRl IGV4cGxvc2lvbiBwYXR0ZXJucwoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMg fCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQ Ui5jCmluZGV4IGJhYjUyNTdmNjhmLi5jZjU0ZTBjNzZjMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIu YwpAQCAtMTc2Myw2ICsxNzYzLDggQEAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpjdHgsIFJQUk5GQVN0YXRlICoKIAkvKiBDaGVj ayBmb3IgZHVwbGljYXRlIGFuZCBmaW5kIHRhaWwgKi8KIAlmb3IgKHMgPSBjdHgtPnN0YXRlczsg cyAhPSBOVUxMOyBzID0gcy0+bmV4dCkKIAl7CisJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CisK IAkJaWYgKG5mYV9zdGF0ZXNfZXF1YWwod2luc3RhdGUsIHMsIHN0YXRlKSkKIAkJewogCQkJLyoK LS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Disposition: attachment; filename="nocfbot-0003-CHECK_FOR_INTERRUPTS-nfa_try_absorb_context.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tpria2 RnJvbSAwZjE1ZmRhYmMwMWZjMTUwM2YyYTEzMjUzZGY2NTg0NGVjZTRjODZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDExOjAzOjM5ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gQWRkIENI RUNLX0ZPUl9JTlRFUlJVUFRTKCkgdG8gbmZhX3RyeV9hYnNvcmJfY29udGV4dCgpIGxvb3AKCi0t LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCBjZjU0ZTBjNzZjMy4u NThmOWRhMGI4MTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTIwODQsNiArMjA4NCw4IEBA IG5mYV90cnlfYWJzb3JiX2NvbnRleHQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFD b250ZXh0ICpjdHgpCiAKIAlmb3IgKG9sZGVyID0gY3R4LT5wcmV2OyBvbGRlciAhPSBOVUxMOyBv bGRlciA9IG9sZGVyLT5wcmV2KQogCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKKwogCQkv KgogCQkgKiBCeSBpbnZhcmlhbnQ6IGN0eC0+cHJldiBjaGFpbiBpcyBpbiBjcmVhdGlvbiBvcmRl ciAob2xkZXN0IGZpcnN0KSwKIAkJICogYW5kIGVhY2ggcm93IGNyZWF0ZXMgYXQgbW9zdCBvbmUg Y29udGV4dC4gU28gYWxsIGNvbnRleHRzIGluIHRoaXMKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Disposition: attachment; filename="nocfbot-0004-Fix-defineClause-TargetEntry-copy.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tptjz3 RnJvbSA2NjAxZGRhM2QyOTdlZTg5MjhiYmUxYzAzNTEwMmQ2ODNjNzgyNTFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjIwOjA1ICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGlu LXBsYWNlIG1vZGlmaWNhdGlvbiBvZiBkZWZpbmVDbGF1c2UgVGFyZ2V0RW50cnkgaW4KIHNldHJl ZnMuYwoKLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNjljZDE4NjFlOWIuLjgxM2EzMjZiZDc4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yNjMzLDcgKzI2MzMsNyBAQCBz ZXRfdXBwZXJfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0 b2Zmc2V0KQogCQkJCQkgICBOVU1fRVhFQ19RVUFMKHBsYW4pKTsKIAogCS8qCi0JICogTW9kaWZp ZXMgYW4gZXhwcmVzc2lvbiB0cmVlIGluIGVhY2ggREVGSU5FIGNsYXVzZSBzbyB0aGF0IGFsbCBW YXIKKwkgKiBSZXBsYWNlIGFuIGV4cHJlc3Npb24gdHJlZSBpbiBlYWNoIERFRklORSBjbGF1c2Ug c28gdGhhdCBhbGwgVmFyCiAJICogbm9kZXMncyB2YXJubyByZWZlcnMgdG8gT1VURVJfVkFSLgog CSAqLwogCWlmIChJc0EocGxhbiwgV2luZG93QWdnKSkKQEAgLTI2NDYsNiArMjY0Niw3IEBAIHNl dF91cHBlcl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRv ZmZzZXQpCiAJCQl7CiAJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmly c3QobCk7CiAKKwkJCQl0bGUgPSBmbGF0Q29weVRhcmdldEVudHJ5KHRsZSk7CiAJCQkJdGxlLT5l eHByID0gKEV4cHIgKikKIAkJCQkJZml4X3VwcGVyX2V4cHIocm9vdCwKIAkJCQkJCQkJICAgKE5v ZGUgKikgdGxlLT5leHByLApAQCAtMjY1NCw2ICsyNjU1LDcgQEAgc2V0X3VwcGVyX3JlZmVyZW5j ZXMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAkJCQkJCQkJ ICAgcnRvZmZzZXQsCiAJCQkJCQkJCSAgIE5STV9FUVVBTCwKIAkJCQkJCQkJICAgTlVNX0VYRUNf UVVBTChwbGFuKSk7CisJCQkJbGZpcnN0KGwpID0gdGxlOwogCQkJfQogCQl9CiAJfQotLSAKMi41 MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0005-Fix-mark-handling-last_value-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tpvm14 RnJvbSAzMWU3ZGFjYjhiMGZhNmVhZDYzZmY5MmMxOWFhNWRmYjBjZGU3NmExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBXZWQsIDI1IE1hciAyMDI2IDAwOjM3OjUwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IG1h cmsgaGFuZGxpbmcgZm9yIGxhc3RfdmFsdWUoKSB1bmRlciBSUFIKCkVuYWJsZSBtYXJrIGFkdmFu Y2VtZW50IGluIHdpbmRvd19sYXN0X3ZhbHVlKCkgZm9yCmJldHRlciB0dXBsZXN0b3JlIG1lbW9y eSB1c2FnZSBpbiBub24tUlBSIGNhc2VzLCB3aGlsZQphZGRpbmcgYSBndWFyZCBpbiBXaW5HZXRG dW5jQXJnSW5GcmFtZSB0byBzdXBwcmVzcyBpdApmb3IgUlBSIFNFRUtfVEFJTCB0byBwcmV2ZW50 IHBvc2l0aW9uIGludmFsaWRhdGlvbgpmcm9tIHJlZHVjZWQgZnJhbWUgc2hpZnRzLgotLS0KIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDEwICsrKysrKysrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jICB8ICAyICstCiAyIGZpbGVzIGNoYW5nZWQs IDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmMKaW5kZXggMTg1ZDdhMGQ1YWUuLmFlZDdjYmVmOTlhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC00OTMyLDcgKzQ5MzIsMTcgQEAgV2luR2V0U2xvdEluRnJh bWUoV2luZG93T2JqZWN0IHdpbm9iaiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJaWYgKGlzb3V0 KQogCQkqaXNvdXQgPSBmYWxzZTsKIAlpZiAoc2V0X21hcmspCisJeworCQkvKgorCQkgKiBJZiBS UFIgaXMgZW5hYmxlZCBhbmQgc2VlayB0eXBlIGlzIFdJTkRPV19TRUVLX1RBSUwsIHdlIHNldCB0 aGUKKwkJICogbWFyayBwb3NpdGlvbiB1bmNvbmRpdGlvbmFsbHkgdG8gZnJhbWVoZWFkcG9zLiBJ biB0aGlzIGNhc2UgdGhlCisJCSAqIGZyYW1lIGFsd2F5cyBzdGFydHMgYXQgQ1VSUkVOVF9ST1cg YW5kIG5ldmVyIGdvZXMgYmFjaywgdGh1cworCQkgKiBzZXR0aW5nIHRoZSBtYXJrIGF0IHRoZSBw b3NpdGlvbiBpcyBzYWZlLgorCQkgKi8KKwkJaWYgKHdpbnN0YXRlLT5ycFBhdHRlcm4gIT0gTlVM TCAmJiBzZWVrdHlwZSA9PSBXSU5ET1dfU0VFS19UQUlMKQorCQkJbWFya19wb3MgPSB3aW5zdGF0 ZS0+ZnJhbWVoZWFkcG9zOwogCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBtYXJrX3Bvcyk7 CisJfQogCXJldHVybiAwOwogCiBvdXRfb2ZfZnJhbWU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dm dW5jcy5jCmluZGV4IGVmYjYwYzk5MDUyLi43NGVmMTA5ZjcyZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3dpbmRvd2Z1bmNzLmMKQEAgLTY4Miw3ICs2ODIsNyBAQCB3aW5kb3dfbGFzdF92YWx1ZShQR19G VU5DVElPTl9BUkdTKQogCiAJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudCh3aW5v YmosIHRydWUsIGZjaW5mbyk7CiAJcmVzdWx0ID0gV2luR2V0RnVuY0FyZ0luRnJhbWUod2lub2Jq LCAwLAotCQkJCQkJCQkgIDAsIFdJTkRPV19TRUVLX1RBSUwsIGZhbHNlLAorCQkJCQkJCQkgIDAs IFdJTkRPV19TRUVLX1RBSUwsIHRydWUsCiAJCQkJCQkJCSAgJmlzbnVsbCwgTlVMTCk7CiAJaWYg KGlzbnVsbCkKIAkJUEdfUkVUVVJOX05VTEwoKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkK Cg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Disposition: attachment; filename="nocfbot-0006-Fix-DEFINE-expression-handling-RPR-window-planning.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tpxrm5 RnJvbSBiMGYwMTg0ZWYwODJkYmQwYTQ3NDRkMDhmNmIwYjdkNTM2NmMyNzMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTE6NTU6MDIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggREVG SU5FIGV4cHJlc3Npb24gaGFuZGxpbmcgaW4gUlBSIHdpbmRvdyBwbGFubmluZwoKdHJhbnNmb3Jt RGVmaW5lQ2xhdXNlKCkgYWRkZWQgZnVsbCBERUZJTkUgZXhwcmVzc2lvbnMgaW5jbHVkaW5nClJQ Uk5hdkV4cHIgKFBSRVYvTkVYVCkgbm9kZXMgdG8gdGhlIHF1ZXJ5IHRhcmdldGxpc3QuICBUaGVz ZQpwcm9wYWdhdGVkIHRvIHVwcGVyIFdpbmRvd0FnZyBub2RlcyB0aGF0IGxhY2sgUlBSIG5hdmln YXRpb24gc3RhdGUsCmNhdXNpbmcgYSBTSUdTRUdWIHdoZW4gUlBSIGFuZCBub24tUlBSIHdpbmRv d3MgY29leGlzdCBpbiB0aGUgc2FtZQpxdWVyeS4KCkFkZCBvbmx5IHRoZSBWYXIgbm9kZXMgcmVm ZXJlbmNlZCBieSBERUZJTkUgZXhwcmVzc2lvbnMgdG8gdGhlCnRhcmdldGxpc3QsIGFuZCBwcm90 ZWN0IHRob3NlIFZhcnMgZnJvbSByZW1vdmFsIGJ5CnJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0 cHV0cygpIHNvIHRoZXkgcmVtYWluIGF2YWlsYWJsZSBpbiB0aGUKdHVwbGVzdG9yZSBzbG90IGZv ciBwYXR0ZXJuIG1hdGNoaW5nIGV2YWx1YXRpb24uCgpNb3ZlIHRoZSBzdWJxdWVyeSB3cmFwcGlu ZyB0ZXN0cyBmcm9tIHJwci5zcWwgdG8gcnByX2ludGVncmF0aW9uLnNxbC4KLS0tCiBzcmMvYmFj a2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRocy5jIHwgIDY4ICsrKysrKysrKysrKysrKysrCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgICAgICAgIHwgMTA2ICsrKysrKysrKysrKysr LS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEyNiBpbnNlcnRpb25zKCspLCA0OCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGF0aC9hbGxwYXRo cy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwppbmRleCBmNDJhMmJh ZTE0YS4uNDcwMDI5ZTQyZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wYXRo L2FsbHBhdGhzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BhdGgvYWxscGF0aHMuYwpA QCAtNDc1MCw2ICs0NzUwLDc0IEBAIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cyhRdWVy eSAqc3VicXVlcnksIFJlbE9wdEluZm8gKnJlbCwKIAkJaWYgKGNvbnRhaW5fdm9sYXRpbGVfZnVu Y3Rpb25zKHRleHByKSkKIAkJCWNvbnRpbnVlOwogCisJCS8qCisJCSAqIElmIGFueSBSUFIgKFJv dyBQYXR0ZXJuIFJlY29nbml0aW9uKSB3aW5kb3cgY2xhdXNlIHJlZmVyZW5jZXMgdGhpcworCQkg KiBjb2x1bW4gaW4gaXRzIERFRklORSBjbGF1c2UsIGRvbid0IHJlbW92ZSBpdC4gIFRoZSBERUZJ TkUKKwkJICogZXhwcmVzc2lvbiBuZWVkcyB0aGVzZSBjb2x1bW5zIGluIHRoZSB0dXBsZXN0b3Jl IHNsb3QgZm9yIHBhdHRlcm4KKwkJICogbWF0Y2hpbmcgZXZhbHVhdGlvbiwgZXZlbiBpZiB0aGUg b3V0ZXIgcXVlcnkgZG9lc24ndCByZWZlcmVuY2UKKwkJICogdGhlbS4KKwkJICovCisJCWlmIChJ c0EodGV4cHIsIFZhcikpCisJCXsKKwkJCVZhcgkJICAgKnZhciA9IChWYXIgKikgdGV4cHI7CisJ CQlMaXN0Q2VsbCAgICp3bGM7CisJCQlib29sCQluZWVkZWRfYnlfZGVmaW5lID0gZmFsc2U7CisK KwkJCWZvcmVhY2god2xjLCBzdWJxdWVyeS0+d2luZG93Q2xhdXNlKQorCQkJeworCQkJCVdpbmRv d0NsYXVzZSAqd2MgPSBsZmlyc3Rfbm9kZShXaW5kb3dDbGF1c2UsIHdsYyk7CisKKwkJCQlpZiAo d2MtPmRlZmluZUNsYXVzZSAhPSBOSUwpCisJCQkJeworCQkJCQlMaXN0CSAgICp2YXJzID0gcHVs bF92YXJfY2xhdXNlKChOb2RlICopIHdjLT5kZWZpbmVDbGF1c2UsIDApOworCQkJCQlMaXN0Q2Vs bCAgICp2bGM7CisKKwkJCQkJZm9yZWFjaCh2bGMsIHZhcnMpCisJCQkJCXsKKwkJCQkJCVZhcgkJ ICAgKmR2YXIgPSAoVmFyICopIGxmaXJzdCh2bGMpOworCisJCQkJCQlpZiAoZHZhci0+dmFyYXR0 bm8gPT0gdmFyLT52YXJhdHRubykKKwkJCQkJCXsKKwkJCQkJCQluZWVkZWRfYnlfZGVmaW5lID0g dHJ1ZTsKKwkJCQkJCQlicmVhazsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQlsaXN0X2ZyZWUodmFy cyk7CisJCQkJCWlmIChuZWVkZWRfYnlfZGVmaW5lKQorCQkJCQkJYnJlYWs7CisJCQkJfQorCQkJ fQorCQkJaWYgKG5lZWRlZF9ieV9kZWZpbmUpCisJCQkJY29udGludWU7CisJCX0KKworCQkvKgor CQkgKiBJZiBpdCdzIGEgd2luZG93IGZ1bmN0aW9uIHJlZmVyZW5jaW5nIGEgd2luZG93IGNsYXVz ZSB3aXRoIFJQUiwKKwkJICogZG9uJ3QgcmVtb3ZlIGl0LiAgRXZlbiB3aGVuIHRoZSB3aW5kb3cg ZnVuY3Rpb24gcmVzdWx0IGlzIHVudXNlZCBieQorCQkgKiB0aGUgb3V0ZXIgcXVlcnksIHRoZSBS UFIgcGF0dGVybiBtYXRjaGluZyAoZnJhbWUgcmVkdWN0aW9uIHZpYQorCQkgKiBERUZJTkUvUEFU VEVSTikgbXVzdCBzdGlsbCBleGVjdXRlLiAgUmVwbGFjaW5nIHRoaXMgd2l0aCBOVUxMIHdvdWxk CisJCSAqIGxlYXZlIG5vIGFjdGl2ZSB3aW5kb3cgZnVuY3Rpb25zIGZvciB0aGUgV2luZG93Q2xh dXNlLCBjYXVzaW5nIHRoZQorCQkgKiBwbGFubmVyIHRvIG9taXQgdGhlIFdpbmRvd0FnZyBub2Rl IGVudGlyZWx5LgorCQkgKi8KKwkJaWYgKElzQSh0ZXhwciwgV2luZG93RnVuYykpCisJCXsKKwkJ CVdpbmRvd0Z1bmMgKndmdW5jID0gKFdpbmRvd0Z1bmMgKikgdGV4cHI7CisJCQlMaXN0Q2VsbCAg ICp3bGM7CisKKwkJCWZvcmVhY2god2xjLCBzdWJxdWVyeS0+d2luZG93Q2xhdXNlKQorCQkJewor CQkJCVdpbmRvd0NsYXVzZSAqd2MgPSBsZmlyc3Rfbm9kZShXaW5kb3dDbGF1c2UsIHdsYyk7CisK KwkJCQlpZiAod2MtPndpbnJlZiA9PSB3ZnVuYy0+d2lucmVmICYmCisJCQkJCXdjLT5kZWZpbmVD bGF1c2UgIT0gTklMKQorCQkJCXsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJfQorCQkJaWYgKHds YyAhPSBOVUxMKQorCQkJCWNvbnRpbnVlOworCQl9CisKIAkJLyoKIAkJICogT0ssIHdlIGRvbid0 IG5lZWQgaXQuICBSZXBsYWNlIHRoZSBleHByZXNzaW9uIHdpdGggYSBOVUxMIGNvbnN0YW50Lgog CQkgKiBQcmVzZXJ2ZSB0aGUgZXhwb3NlZCB0eXBlIG9mIHRoZSBleHByZXNzaW9uLCBpbiBjYXNl IHNvbWV0aGluZwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4IDU1MjgzYWI0YmJlLi5kYjEzMDlj YTMxMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5v ZGVzL25vZGVGdW5jcy5oIgorI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNs dWRlICJvcHRpbWl6ZXIvcnByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NsYXVzZS5oIgog I2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgiCkBAIC0zMTAsOSArMzExLDcgQEAgdHJh bnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3Yywg V2luZG93RGVmICp3aW5kZWYsCiAJcmVzdGFyZ2V0cyA9IE5JTDsKIAlmb3JlYWNoKGxjLCB3aW5k ZWYtPnJwQ29tbW9uU3ludGF4LT5ycERlZnMpCiAJewotCQlUYXJnZXRFbnRyeSAqdGUsCi0JCQkJ ICAgKnRlRGVmaW5lOwotCQlpbnQJCQlkZWZpbmVFeHByTG9jYXRpb247CisJCVRhcmdldEVudHJ5 ICp0ZURlZmluZTsKIAogCQlyZXN0YXJnZXQgPSAoUmVzVGFyZ2V0ICopIGxmaXJzdChsYyk7CiAJ CW5hbWUgPSByZXN0YXJnZXQtPm5hbWU7CkBAIC0zMzUsNTcgKzMzNCw2OCBAQCB0cmFuc2Zvcm1E ZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5kb3dDbGF1c2UgKndjLCBXaW5kb3dE ZWYgKndpbmRlZiwKIAkJcmVzdGFyZ2V0cyA9IGxhcHBlbmQocmVzdGFyZ2V0cywgcmVzdGFyZ2V0 KTsKIAogCQkvKgotCQkgKiBUcmFuc2Zvcm0gdGhlIERFRklORSBleHByZXNzaW9uIChyZXN0YXJn ZXQtPnZhbCkgYW5kIGFkZCBpdCB0byB0aGUKLQkJICogdGFyZ2V0bGlzdCBhcyBhIFRhcmdldEVu dHJ5IGlmIG5vdCBhbHJlYWR5IHByZXNlbnQsIHNvIHRoZSBwbGFubmVyCi0JCSAqIGNhbiBwcm9w YWdhdGUgdGhlIHJlZmVyZW5jZWQgY29sdW1ucyB0byB0aGUgb3V0ZXIgcGxhbidzCi0JCSAqIHRh cmdldGxpc3QuCisJCSAqIFRyYW5zZm9ybSB0aGUgREVGSU5FIGV4cHJlc3Npb24uICBXZSBtdXN0 IE5PVCBhZGQgdGhlIHdob2xlCisJCSAqIGV4cHJlc3Npb24gdG8gdGhlIHF1ZXJ5IHRhcmdldGxp c3QsIGJlY2F1c2UgaXQgbWF5IGNvbnRhaW4KKwkJICogUlBSTmF2RXhwciBub2RlcyAoUFJFVi9O RVhUKSB0aGF0IGNhbiBvbmx5IGJlIGV2YWx1YXRlZCBpbnNpZGUgdGhlCisJCSAqIG93bmluZyBX aW5kb3dBZ2cuCiAJCSAqCi0JCSAqIE5vdGU6IGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSB0cmFu c2Zvcm1zIGFuZCBjbG9iYmVycwotCQkgKiByZXN0YXJnZXQtPnZhbC4KKwkJICogSW5zdGVhZCwg d2UgdHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3VyZSB0aGF0 CisJCSAqIHRoZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBwcmVzZW50 IGluIHRoZQorCQkgKiB0YXJnZXRsaXN0LCBzbyB0aGUgcGxhbm5lciBjYW4gcHJvcGFnYXRlIHRo ZSByZWZlcmVuY2VkIGNvbHVtbnMuCiAJCSAqLworCQl7CisJCQlOb2RlCSAgICpleHByOworCQkJ TGlzdAkgICAqdmFyczsKKwkJCUxpc3RDZWxsICAgKmxjMjsKIAotCQkvKgotCQkgKiBTYXZlIHRo ZSBvcmlnaW5hbCBleHByZXNzaW9uIGxvY2F0aW9uIGJlZm9yZSB0cmFuc2Zvcm1hdGlvbi4KLQkJ ICogZmluZFRhcmdldGxpc3RFbnRyeVNRTDk5IG1heSByZXR1cm4gYW4gZXhpc3RpbmcgVGFyZ2V0 RW50cnkgd2hvc2UKLQkJICogbG9jYXRpb24gcG9pbnRzIHRvIHdoZXJlIGl0IHdhcyBvcmlnaW5h bGx5IGNyZWF0ZWQgKGUuZy4sIE9SREVSCi0JCSAqIEJZKSwgbm90IHRoZSBERUZJTkUgY2xhdXNl LiBXZSBuZWVkIHRvIHByZXNlcnZlIHRoZSBERUZJTkUgbG9jYXRpb24KLQkJICogZm9yIGFjY3Vy YXRlIGVycm9yIHJlcG9ydGluZy4KLQkJICovCi0JCWRlZmluZUV4cHJMb2NhdGlvbiA9IGV4cHJM b2NhdGlvbihyZXN0YXJnZXQtPnZhbCk7CisJCQlleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUs IHJlc3RhcmdldC0+dmFsLAorCQkJCQkJCQkgRVhQUl9LSU5EX1JQUl9ERUZJTkUpOworCisJCQkv KgorCQkJICogUHVsbCBvdXQgVmFyIG5vZGVzIGZyb20gdGhlIHRyYW5zZm9ybWVkIGV4cHJlc3Np b24gYW5kIGVuc3VyZQorCQkJICogZWFjaCBvbmUgaXMgcHJlc2VudCBpbiB0aGUgdGFyZ2V0bGlz dC4gIFRoaXMgaXMgbmVlZGVkIHNvIHRoZQorCQkJICogcGxhbm5lciBwcm9wYWdhdGVzIHRoZSBy ZWZlcmVuY2VkIGNvbHVtbnMgdGhyb3VnaCB0aGUgcGxhbgorCQkJICogdHJlZSwgbWFraW5nIHRo ZW0gYXZhaWxhYmxlIHRvIHRoZSBXaW5kb3dBZ2cncyBERUZJTkUKKwkJCSAqIGV2YWx1YXRpb24u CisJCQkgKi8KKwkJCXZhcnMgPSBwdWxsX3Zhcl9jbGF1c2UoZXhwciwgMCk7CisJCQlmb3JlYWNo KGxjMiwgdmFycykKKwkJCXsKKwkJCQlWYXIJCSAgICp2YXIgPSAoVmFyICopIGxmaXJzdChsYzIp OworCQkJCWJvb2wJCWZvdW5kID0gZmFsc2U7CisJCQkJTGlzdENlbGwgICAqdGw7CiAKLQkJdGUg PSBmaW5kVGFyZ2V0bGlzdEVudHJ5U1FMOTkocHN0YXRlLCByZXN0YXJnZXQtPnZhbCwKLQkJCQkJ CQkJCSAgdGFyZ2V0bGlzdCwgRVhQUl9LSU5EX1JQUl9ERUZJTkUpOworCQkJCWZvcmVhY2godGws ICp0YXJnZXRsaXN0KQorCQkJCXsKKwkJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRy eSAqKSBsZmlyc3QodGwpOwogCi0JCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0KLQkJICogQ29weSB0 aGUgVGFyZ2V0RW50cnkgZm9yIGRlZmluZUNsYXVzZSBhbmQgYWx3YXlzIHNldCB0aGUgcGF0dGVy bgotCQkgKiB2YXJpYWJsZSBuYW1lLiBXZSB1c2UgY29weU9iamVjdCBzbyB0aGUgb3JpZ2luYWwg dGFyZ2V0bGlzdCBlbnRyeQotCQkgKiBpcyBub3QgbW9kaWZpZWQuCi0JCSAqCi0JCSAqIE5vdGU6 IFdlIG11c3QgYWx3YXlzIHNldCByZXNuYW1lIHRvIHRoZSBwYXR0ZXJuIHZhcmlhYmxlIG5hbWUu Ci0JCSAqIGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSBjcmVhdGVzIG5ldyBURXMgd2l0aCByZXNu YW1lID0gTlVMTAotCQkgKiAocmVzanVuayBlbnRyaWVzKSwgYnV0IHJldHVybnMgZXhpc3Rpbmcg VEVzIHVuY2hhbmdlZCB3aGVuIHRoZQotCQkgKiBleHByZXNzaW9uIGFscmVhZHkgZXhpc3RzIGlu IHRhcmdldGxpc3QuCi0JCSAqCi0JCSAqIEV4YW1wbGU6ICJTRUxFQ1QgaWQsIGZsYWcsIC4uLiBX SU5ET1cgdyBBUyAoLi4uIERFRklORSBUIEFTIGZsYWcpIgotCQkgKgotCQkgKiAxLiBTRUxFQ1Qg bGlzdCBwcm9jZXNzaW5nIGNyZWF0ZXM6IFRFe3Jlc25hbWU9ImZsYWciLCBleHByPWZsYWd9Ci0J CSAqIDIuIERFRklORSBUIEFTIGZsYWc6IGZpbmRUYXJnZXRsaXN0RW50cnlTUUw5OSBmaW5kcyBl eGlzdGluZyBURQotCQkgKiAzLiB0ZS0+cmVzbmFtZSBpcyAiZmxhZyIgKGZyb20gU0VMRUNUKSwg bm90IE5VTEwKLQkJICogNC4gV2l0aG91dCB1bmNvbmRpdGlvbmFsbHkgc2V0dGluZyByZXNuYW1l LCB0ZURlZmluZS0+cmVzbmFtZQotCQkgKiAgICB3b3VsZCByZW1haW4gImZsYWciIGluc3RlYWQg b2YgcGF0dGVybiB2YXJpYWJsZSBuYW1lICJUIgotCQkgKiA1LiBidWlsZFJQUlBhdHRlcm4gYnVp bGRzIGRlZmluZVZhcmlhYmxlTGlzdCBmcm9tIHJlc25hbWUsIHNvCi0JCSAqICAgIGl0IHdvdWxk IGNvbnRhaW4gWyJmbGFnIl0gaW5zdGVhZCBvZiBbIlQiXQotCQkgKiA2LiBQYXR0ZXJuIHZhcmlh YmxlICJUIiBub3QgZm91bmQgLT4gQXNzZXJ0IGZhaWx1cmUgY3Jhc2gKLQkJICovCi0JCXRlRGVm aW5lID0gY29weU9iamVjdCh0ZSk7Ci0JCXRlRGVmaW5lLT5yZXNuYW1lID0gcHN0cmR1cChuYW1l KTsKKwkJCQkJaWYgKElzQSh0bGUtPmV4cHIsIFZhcikgJiYKKwkJCQkJCSgoVmFyICopIHRsZS0+ ZXhwciktPnZhcm5vID09IHZhci0+dmFybm8gJiYKKwkJCQkJCSgoVmFyICopIHRsZS0+ZXhwcikt PnZhcmF0dG5vID09IHZhci0+dmFyYXR0bm8pCisJCQkJCXsKKwkJCQkJCWZvdW5kID0gdHJ1ZTsK KwkJCQkJCWJyZWFrOworCQkJCQl9CisJCQkJfQorCQkJCWlmICghZm91bmQpCisJCQkJeworCQkJ CQlUYXJnZXRFbnRyeSAqbmV3dGxlOwogCi0JCS8qCi0JCSAqIFVwZGF0ZSB0aGUgZXhwcmVzc2lv biBsb2NhdGlvbiB0byBwb2ludCB0byB0aGUgREVGSU5FIGNsYXVzZS4gVGhpcwotCQkgKiBlbnN1 cmVzIGVycm9yIG1lc3NhZ2VzIHJlZmVyZW5jZSB0aGUgY29ycmVjdCBzb3VyY2UgbG9jYXRpb24u Ci0JCSAqLwotCQlpZiAoZGVmaW5lRXhwckxvY2F0aW9uID49IDAgJiYgSXNBKHRlRGVmaW5lLT5l eHByLCBWYXIpKQotCQkJKChWYXIgKikgdGVEZWZpbmUtPmV4cHIpLT5sb2NhdGlvbiA9IGRlZmlu ZUV4cHJMb2NhdGlvbjsKKwkJCQkJbmV3dGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIGNv cHlPYmplY3QodmFyKSwKKwkJCQkJCQkJCQkJIGxpc3RfbGVuZ3RoKCp0YXJnZXRsaXN0KSArIDEs CisJCQkJCQkJCQkJCSBOVUxMLAorCQkJCQkJCQkJCQkgdHJ1ZSk7CisJCQkJCSp0YXJnZXRsaXN0 ID0gbGFwcGVuZCgqdGFyZ2V0bGlzdCwgbmV3dGxlKTsKKwkJCQl9CisJCQl9CisJCQlsaXN0X2Zy ZWUodmFycyk7CisKKwkJCS8qIEJ1aWxkIHRoZSBkZWZpbmVDbGF1c2UgZW50cnkgZGlyZWN0bHkg ZnJvbSB0aGUgdHJhbnNmb3JtZWQgZXhwciAqLworCQkJdGVEZWZpbmUgPSBtYWtlVGFyZ2V0RW50 cnkoKEV4cHIgKikgZXhwciwKKwkJCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGRlZmluZUNsYXVzZSkg KyAxLAorCQkJCQkJCQkJICAgcHN0cmR1cChuYW1lKSwKKwkJCQkJCQkJCSAgIHRydWUpOworCQl9 CiAKIAkJLyogYnVpbGQgdHJhbnNmb3JtZWQgREVGSU5FIGNsYXVzZSAobGlzdCBvZiBUYXJnZXRF bnRyeSkgKi8KIAkJZGVmaW5lQ2xhdXNlID0gbGFwcGVuZChkZWZpbmVDbGF1c2UsIHRlRGVmaW5l KTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Disposition: attachment; filename="nocfbot-0007-Add-RPR-planner-integration-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tq0da6 RnJvbSBlZTRlZWU5MzVhYmNjNWQwZTA4OWIxOWU4OGE4MWU4ZWNhYzUyNjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgUlBS IHBsYW5uZXIgaW50ZWdyYXRpb24gdGVzdHMKCkFkZCBycHJfaW50ZWdyYXRpb24uc3FsIGNvdmVy aW5nIHBsYW5uZXIgb3B0aW1pemF0aW9uIGludGVyYWN0aW9ucwp3aXRoIFJQUiB3aW5kb3dzOiBm cmFtZSBvcHRpbWl6YXRpb24sIHJ1biBjb25kaXRpb24gcHVzaGRvd24sIHdpbmRvdwpkZWR1cGxp Y2F0aW9uLCB1bnVzZWQgd2luZG93IHJlbW92YWwsIGludmVyc2UgdHJhbnNpdGlvbiwgY29zdApl c3RpbWF0aW9uLCBzdWJxdWVyeSBmbGF0dGVuaW5nLCBERUZJTkUgZXhwcmVzc2lvbiBwcm9wYWdh dGlvbiwgYW5kCkxJTUlULiAgQWxzbyBjb3ZlcnMgaW50ZWdyYXRpb24gc2NlbmFyaW9zIHdpdGgg cGFydGl0aW9uZWQgdGFibGVzLApMQVRFUkFMLCByZWN1cnNpdmUgQ1RFcywgaW5jcmVtZW50YWwg c29ydCwgdm9sYXRpbGUgZnVuY3Rpb25zLCBhbmQKY29ycmVsYXRlZCBzdWJxdWVyaWVzLgotLS0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8IDE0NDkgKysr KysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAg ICAgICB8ICAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwg ICAgICB8ICA5MzQgKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMjM4NCBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMGVlNjEyYjc0ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKQEAgLTAsMCArMSwxNDQ5IEBACistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIFJQUiBJbnRlZ3JhdGlvbiBUZXN0cworLS0gUGxhbm5lciBvcHRpbWl6YXRpb24gaW50ZXJh Y3Rpb24gdGVzdHMgZm9yIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tCistLSBW ZXJpZmllcyB0aGF0IGVhY2ggcGxhbm5lciBvcHRpbWl6YXRpb24gY29ycmVjdGx5IGhhbmRsZXMg UlBSIHdpbmRvd3MuCistLSBFdmVuIGlmIGluZGl2aWR1YWwgb3B0aW1pemF0aW9ucyBhcmUgdGVz dGVkIGVsc2V3aGVyZSwgdGhpcyBmaWxlCistLSBwcm92aWRlcyBhIHNpbmdsZSBjaGVja3BvaW50 IGZvciBhbGwgcGxhbm5lci9SUFIgaW50ZXJhY3Rpb25zLgorLS0KKy0tIEEuIFBsYW5uZXIgT3B0 aW1pemF0aW9uIFByb3RlY3Rpb24gVGVzdHMKKy0tICAgIEExLiBGcmFtZSBvcHRpbWl6YXRpb24g YnlwYXNzCistLSAgICBBMi4gUnVuIGNvbmRpdGlvbiBwdXNoZG93biBieXBhc3MKKy0tICAgIEEz LiBXaW5kb3cgZGVkdXAgcHJldmVudGlvbiAoUlBSIHZzIG5vbi1SUFIpCistLSAgICBBNC4gV2lu ZG93IGRlZHVwIHByZXZlbnRpb24gKHNhbWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklORSkKKy0t ICAgIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gICAgQTYuIEludmVy c2UgdHJhbnNpdGlvbiBieXBhc3MKKy0tICAgIEE3LiBDb3N0IGVzdGltYXRpb24gUlBSIGF3YXJl bmVzcworLS0gICAgQTguIFN1YnF1ZXJ5IGZsYXR0ZW5pbmcgcHJldmVudGlvbgorLS0gICAgQTku IERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gICAgQTEwLiBSUFIgKyBMSU1J VAorLS0KKy0tIEIuIEludGVncmF0aW9uIFNjZW5hcmlvIFRlc3RzCistLSAgICBCMS4gUlBSICsg Q1RFCistLSAgICBCMi4gUlBSICsgSk9JTgorLS0gICAgQjMuIFJQUiArIFNldCBvcGVyYXRpb25z CistLSAgICBCNC4gUlBSICsgUHJlcGFyZWQgc3RhdGVtZW50cworLS0gICAgQjUuIFJQUiArIFBh cnRpdGlvbmVkIHRhYmxlCistLSAgICBCNi4gUlBSICsgTEFURVJBTAorLS0gICAgQjcuIFJQUiAr IFJlY3Vyc2l2ZSBDVEUKKy0tICAgIEI4LiBSUFIgKyBJbmNyZW1lbnRhbCBzb3J0CistLSAgICBC OS4gUlBSICsgVm9sYXRpbGUgZnVuY3Rpb24gaW4gREVGSU5FCistLSAgICBCMTAuIFJQUiArIENv cnJlbGF0ZWQgc3VicXVlcnkKKy0tCitDUkVBVEUgVEFCTEUgcnByX2ludGVnIChpZCBJTlQsIHZh bCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ludGVnIFZBTFVFUworICAgICgxLCAxMCksICgyLCAy MCksICgzLCAxNSksICg0LCAyNSksICg1LCA1KSwKKyAgICAoNiwgMzApLCAoNywgMzUpLCAoOCwg MjApLCAoOSwgNDApLCAoMTAsIDQ1KTsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTEuIEZyYW1lIG9wdGltaXphdGlv biBieXBhc3MKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0gb3B0aW1pemVfd2luZG93X2NsYXVzZXMoKSBtdXN0IG5vdCBh cHBseSBmcmFtZSBvcHRpbWl6YXRpb24gdG8gUlBSIHdpbmRvd3MuCistLSBOb24tUlBSIGNhc2U6 IGZyYW1lIGNhbiBiZSBvcHRpbWl6ZWQgKFJBTkdFIC0+IFJPV1MgY29udmVyc2lvbiwgZXRjLiku CistLSBSUFIgY2FzZTogZnJhbWUgbXVzdCBzdGF5IGFzIHNwZWNpZmllZCAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORAorLS0gVU5CT1VOREVEIEZPTExPV0lORykuCistLSBOb24tUlBSIHdp bmRvdyB3aXRoIGRlZmF1bHQgZnJhbWUgLT4gZnJhbWUgb3B0aW1pemF0aW9uIGFwcGxpZWQKK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcK K1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCk7CisgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQpCisgICAtPiAgU29ydAorICAgICAgICAgU29y dCBLZXk6IGlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNSByb3dzKQor CistLSBSUFIgd2luZG93IC0+IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFuZ2UgdGhl IGZyYW1lCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00g cnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK KyAgIFBhdHRlcm46IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAg ICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g QTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0 IGZpbmRfd2luZG93X3J1bl9jb25kaXRpb25zKCkgZG9lcyBub3QgcHVzaCBhIG1vbm90b25pYwor LS0gZmlsdGVyIGRvd24gYXMgYSBSdW4gQ29uZGl0aW9uIG9uIFJQUiB3aW5kb3dzLiAgUlBSIG1h dGNoIGNvdW50cyBhcmUKKy0tIGRldGVybWluZWQgYnkgcGF0dGVybiBtYXRjaGluZyByYXRoZXIg dGhhbiBieSBhIG1vbm90b25pYworLS0gYWNjdW11bGF0aW9uIG92ZXIgdGhlIGZyYW1lLCBzbyBh IGZpbHRlciBzdWNoIGFzICJjbnQgPiAwIiBjYW5ub3QgYmUKKy0tIHVzZWQgdG8gc3RvcCBldmFs dWF0aW5nIHRoZSB3aW5kb3cgZnVuY3Rpb24gZWFybHkuCistLSBOb24tUlBSIGJhc2VsaW5lOiB0 aGUgZmlsdGVyIGlzIGV4cGVjdGVkIHRvIGFwcGVhciBhcyBhIFJ1biBDb25kaXRpb24uCitFWFBM QUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZF UiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVl cnkgU2NhbiBvbiB0CisgICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCisgICAgICAgICBSdW4gQ29uZGl0aW9uOiAoY291bnQoKikgT1ZFUiB3ID4g MCkKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVn LmlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoNyByb3dzKQor CistLSBSUFIgY2FzZTogdGhlIGZpbHRlciBtdXN0IGFwcGVhciBhcyBhIEZpbHRlciBhYm92ZSB0 aGUgV2luZG93QWdnLAorLS0gbm90IGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4gKENPU1RT IE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250 CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkK KykgdCBXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU3VicXVlcnkgU2Nh biBvbiB0CisgICBGaWx0ZXI6ICh0LmNudCA+IDApCisgICAtPiAgV2luZG93QWdnCisgICAgICAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQYXR0ZXJuOiBhIGIrCisg ICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAor ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDggcm93cykKKworLS0g VmVyaWZ5IHRoYXQgdGhlIFJQUiBxdWVyeSBzdGlsbCByZXR1cm5zIGV2ZXJ5IHJvdyB3aG9zZSBt YXRjaCBjb3VudCBpcworLS0gZ3JlYXRlciB0aGFuIHplcm8sIGNvbmZpcm1pbmcgdGhlIGZpbHRl ciBpcyBldmFsdWF0ZWQgYWJvdmUgdGhlCistLSBXaW5kb3dBZ2cgcmF0aGVyIHRoYW4gY3V0dGlu ZyBvZmYgcGF0dGVybiBtYXRjaGluZyBwcmVtYXR1cmVseS4KK1NFTEVDVCAqIEZST00gKAorICAg IFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50 ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQisp CisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAw CitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAgMgorICAzIHwgIDE1IHwgICAyCisgIDUgfCAgIDUgfCAgIDMKKyAgOCB8ICAyMCB8 ICAgMworKDQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMy4gV2luZG93IGRlZHVwIHByZXZlbnRpb24g KFJQUiB2cyBub24tUlBSKQorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBQb3N0Z3JlU1FMIGRvZXMg bm90IG1lcmdlIGFuIFJQUiB3aW5kb3cgd2l0aCBhIG5vbi1SUFIKKy0tIHdpbmRvdyBldmVuIHdo ZW4gYm90aCBzaGFyZSB0aGUgc2FtZSBPUkRFUiBCWSBhbmQgZnJhbWUKKy0tIHNwZWNpZmljYXRp b24uICBSUFIgcGF0dGVybiBtYXRjaGluZyBwcm9kdWNlcyByZXN1bHRzIHRoYXQgYXJlCistLSBz ZW1hbnRpY2FsbHkgZGlmZmVyZW50IGZyb20gYSBwbGFpbiBmcmFtZS1iYXNlZCBhZ2dyZWdhdGUs IHNvIHRoZQorLS0gdHdvIHdpbmRvd3MgbXVzdCByZW1haW4gYXMgc2VwYXJhdGUgV2luZG93QWdn IG5vZGVzLiAgSW5saW5lIHdpbmRvdworLS0gc3BlY3MgYXJlIHVzZWQgdGhyb3VnaG91dCB0aGlz IHNlY3Rpb24gYmVjYXVzZSBvbmx5IGlubGluZSB3aW5kb3dzCistLSBhcmUgc3ViamVjdCB0byB0 aGUgZGVkdXAgcGF0aDsgZGlzdGluY3QgbmFtZWQgd2luZG93cyBhcmUgYWx3YXlzCistLSBrZXB0 IHNlcGFyYXRlIHJlZ2FyZGxlc3Mgb2YgZXF1aXZhbGVuY2UuCistLSBOb24tUlBSIGJhc2VsaW5l OiB0d28gaW5saW5lIHdpbmRvd3Mgd2l0aCBpZGVudGljYWwgc3BlYyBhcmUKKy0tIGRlZHVwZWQg YnkgdGhlIHBsYW5uZXIgaW50byBhIHNpbmdsZSBXaW5kb3dBZ2cgbm9kZSwgY29uZmlybWluZwor LS0gdGhhdCB0aGUgZGVkdXAgcGF0aCBpcyBhY3RpdmUgZm9yIG5vbi1SUFIgd2luZG93cy4KK0VY UExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlk CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIEFTIHRvdGFsCitG Uk9NIHJwcl9pbnRlZzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgLT4gIFNvcnQK KyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRl ZworKDUgcm93cykKKworLS0gQW4gaW5saW5lIFJQUiB3aW5kb3cgYW5kIGFuIGlubGluZSBub24t UlBSIHdpbmRvdyBzaGFyZSB0aGUgc2FtZQorLS0gT1JERVIgQlkgYW5kIGZyYW1lIGJ1dCBtdXN0 IHJlbWFpbiBhcyBkaXN0aW5jdCBXaW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChDT1NUUyBPRkYp CitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBycHJfY250 LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgbm9ybWFsX2NudAorRlJPTSBy cHJfaW50ZWc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdzIgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIC0+ ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdzEgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRl cm46IGEgYisKKyAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICBTb3J0IEtleTogaWQK KyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg4IHJvd3MpCisKKy0t IFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBlbmRlbnQgY291bnRzIHBl ciByb3csCistLSBjb25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2VkIGludG8gYSBzaW5nbGUg V2luZG93QWdnLgorU0VMRUNUCisgICAgaWQsIHZhbCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRF UiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlk CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZIGlkOworIGlkIHwgdmFs IHwgcnByX2NudCB8IG5vcm1hbF9jbnQgCistLS0tKy0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyAgMSB8ICAxMCB8ICAgICAgIDIgfCAgICAgICAgIDEwCisgIDIgfCAgMjAgfCAgICAgICAw IHwgICAgICAgICAgOQorICAzIHwgIDE1IHwgICAgICAgMiB8ICAgICAgICAgIDgKKyAgNCB8ICAy NSB8ICAgICAgIDAgfCAgICAgICAgICA3CisgIDUgfCAgIDUgfCAgICAgICAzIHwgICAgICAgICAg NgorICA2IHwgIDMwIHwgICAgICAgMCB8ICAgICAgICAgIDUKKyAgNyB8ICAzNSB8ICAgICAgIDAg fCAgICAgICAgICA0CisgIDggfCAgMjAgfCAgICAgICAzIHwgICAgICAgICAgMworICA5IHwgIDQw IHwgICAgICAgMCB8ICAgICAgICAgIDIKKyAxMCB8ICA0NSB8ICAgICAgIDAgfCAgICAgICAgICAx CisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBBNC4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKHNh bWUgUEFUVEVSTiwgZGlmZmVyZW50IERFRklORSkKKy0tID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgaW5s aW5lLXdpbmRvdyBkZWR1cCBkb2VzIG5vdCBtZXJnZSB0d28gUlBSIHdpbmRvd3MKKy0tIHRoYXQg c2hhcmUgdGhlIHNhbWUgUEFUVEVSTiBzdHJ1Y3R1cmUgYnV0IGhhdmUgZGlmZmVyZW50IERFRklO RQorLS0gY29uZGl0aW9ucy4gIEV2ZW4gdGhvdWdoIHRoZSBPUkRFUiBCWSwgZnJhbWUsIGFuZCBQ QVRURVJOIGNvaW5jaWRlLAorLS0gdGhlIGRpZmZlcmluZyBERUZJTkUgZXhwcmVzc2lvbnMgY2xh c3NpZnkgcm93cyBkaWZmZXJlbnRseSBhbmQKKy0tIG11c3QgdGhlcmVmb3JlIHlpZWxkIHR3byBz ZXBhcmF0ZSBXaW5kb3dBZ2cgbm9kZXMuICBJbmxpbmUgc3BlY3MKKy0tIGFyZSB1c2VkIGhlcmUg YmVjYXVzZSBkZWR1cCBvbmx5IGFwcGxpZXMgdG8gaW5saW5lIHdpbmRvd3MuCistLSBCYXNlbGlu ZTogdHdvIGlubGluZSBSUFIgd2luZG93cyB0aGF0IGFyZSBzdHJ1Y3R1cmFsbHkgaWRlbnRpY2Fs CistLSAoc2FtZSBPUkRFUiBCWSwgZnJhbWUsIFBBVFRFUk4sIGFuZCBERUZJTkUpIGFyZSBkZWR1 cGVkIGJ5IHRoZQorLS0gcGFyc2VyIGludG8gYSBzaW5nbGUgV2luZG93QWdnIG5vZGUsIGNvbmZp cm1pbmcgdGhhdCBwYXJzZXItbGV2ZWwKKy0tIGRlZHVwIGlzIGFjdGl2ZSBmb3IgUlBSIHdpbmRv d3Mgd2hvc2UgREVGSU5FIG1hdGNoZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAg ICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnQsCisgICAgc3VtKHZhbCkg IE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIHRvdGFsCitGUk9NIHJwcl9pbnRlZzsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZwor ICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiKworICAgLT4gIFNvcnQKKyAg ICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwor KDYgcm93cykKKworLS0gVHdvIGlubGluZSBSUFIgd2luZG93cyB3aXRoIHRoZSBzYW1lIFBBVFRF Uk4gYnV0IG9wcG9zaXRlIERFRklORQorLS0gY29uZGl0aW9ucyBtdXN0IHJlbWFpbiBhcyBzZXBh cmF0ZSBXaW5kb3dBZ2cgbm9kZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBj b3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAg ICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyBjbnRfdXAsCisgICAgY291bnQoKikg T1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA8IFBSRVYodmFsKSkgQVMgY250X2Rvd24KK0ZST00gcnByX2ludGVnOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIrCisg ICAtPiAgV2luZG93QWdnCisgICAgICAgICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICBQ YXR0ZXJuOiBhIGIrCisgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgU29ydCBLZXk6 IGlkCisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisoOSByb3dzKQor CistLSBWZXJpZnkgdGhhdCB0aGUgdHdvIHdpbmRvd3MgcmV0dXJuIGRpZmZlcmVudCBjb3VudHMg cGVyIHJvdywKKy0tIGNvbmZpcm1pbmcgdGhlIERFRklORSBjb25kaXRpb25zIHdlcmUgbm90IGNv bGxhcHNlZCBieSBkZWR1cC4KK1NFTEVDVAorICAgIGlkLCB2YWwsCisgICAgY291bnQoKikgT1ZF UiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgY250X3VwLAorICAgIGNvdW50KCopIE9WRVIgKE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwg PCBQUkVWKHZhbCkpIEFTIGNudF9kb3duCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkgaWQ7Cisg aWQgfCB2YWwgfCBjbnRfdXAgfCBjbnRfZG93biAKKy0tLS0rLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLQorICAxIHwgIDEwIHwgICAgICAyIHwgICAgICAgIDAKKyAgMiB8ICAyMCB8ICAgICAgMCB8 ICAgICAgICAyCisgIDMgfCAgMTUgfCAgICAgIDIgfCAgICAgICAgMAorICA0IHwgIDI1IHwgICAg ICAwIHwgICAgICAgIDIKKyAgNSB8ICAgNSB8ICAgICAgMyB8ICAgICAgICAwCisgIDYgfCAgMzAg fCAgICAgIDAgfCAgICAgICAgMAorICA3IHwgIDM1IHwgICAgICAwIHwgICAgICAgIDIKKyAgOCB8 ICAyMCB8ICAgICAgMyB8ICAgICAgICAwCisgIDkgfCAgNDAgfCAgICAgIDAgfCAgICAgICAgMAor IDEwIHwgIDQ1IHwgICAgICAwIHwgICAgICAgIDAKKygxMCByb3dzKQorCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE1 LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgorLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhh dCByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMoKSBkb2VzIG5vdCBkcm9wIGFuIFJQUgor LS0gd2luZG93IGZ1bmN0aW9uIGV2ZW4gd2hlbiB0aGUgb3V0ZXIgcXVlcnkgZG9lcyBub3QgcmVm ZXJlbmNlIGl0cworLS0gcmVzdWx0LiAgVGhlIFJQUiBXaW5kb3dBZ2cgbm9kZSBpcyByZXNwb25z aWJsZSBmb3IgcGVyZm9ybWluZyBwYXR0ZXJuCistLSBtYXRjaGluZywgc28gcmVtb3ZpbmcgdGhl IHdpbmRvdyBmdW5jdGlvbiB3b3VsZCBzaWxlbnRseSBza2lwIHRoZQorLS0gcGF0dGVybiBtYXRj aCBldmVuIHRob3VnaCB0aGUgc3Vycm91bmRpbmcgcXVlcnkgc3RpbGwgZGVwZW5kcyBvbgorLS0g UlBSIHNlbWFudGljcy4KKy0tIFRoZSBvdXRlciBxdWVyeSBpZ25vcmVzIHRoZSBwZXItcm93IHdp bmRvdyByZXN1bHQsIHlldCBwYXR0ZXJuCistLSBtYXRjaGluZyBtdXN0IHN0aWxsIGV4ZWN1dGUu ICBUaGUgcGxhbiBtdXN0IHN0aWxsIGNvbnRhaW4gYQorLS0gV2luZG93QWdnIG5vZGUgYmVsb3cg dGhlIG91dGVyIEFnZ3JlZ2F0ZTsgaWYgdGhlIHdpbmRvdyB3ZXJlCistLSByZW1vdmVkLCBvbmx5 IEFnZ3JlZ2F0ZSArIFNlcSBTY2FuIHdvdWxkIGFwcGVhci4KK0VYUExBSU4gKENPU1RTIE9GRikK K1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00g cnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAg ICAgIERFRklORSBBIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdDsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX2ludGVnCisoNSByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNU IGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgIFBBVFRFUk4gKEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCisp IHQ7CisgY291bnQgCistLS0tLS0tCisgICAgMTAKKygxIHJvdykKKworLS0gVGhlIERFRklORSBl eHByZXNzaW9uIHJlZmVyZW5jZXMgUFJFVih2YWwpLCBzbyB0aGUgd2luZG93IG11c3QgYmUKKy0t IHByZXNlcnZlZCBldmVuIGlmIHRoZSBvdXRlciBxdWVyeSBvbmx5IGFnZ3JlZ2F0ZXMgb3ZlciB0 aGUgY291bnQuCistLSBUaGUgcGxhbiBtdXN0IHN0aWxsIGNvbnRhaW4gYSBXaW5kb3dBZ2cgd2l0 aCB0aGUgUEFUVEVSTi9ERUZJTkUKKy0tIGludGFjdC4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NF TEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcg QVMgYyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4g KEErKQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgV2luZG93QWdn CisgICAgICAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKKyAgICAgICAgIFBhdHRlcm46IGErIgorICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9pbnRlZworKDUgcm93cykKKworU0VMRUNUIGNvdW50KCopLCBzdW0oYykg RlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisg ICAgV0lORE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBB IEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdDsKKyBjb3VudCB8IHN1bSAKKy0tLS0tLS0rLS0tLS0K KyAgICAxMCB8ICAgNgorKDEgcm93KQorCistLSBUaGUgREVGSU5FIGV4cHJlc3Npb24gY29udGFp bnMgbm8gbmF2aWdhdGlvbiwgYnV0IHRoZSBSUFIgd2luZG93CistLSBtdXN0IHN0aWxsIGJlIHBy ZXNlcnZlZCBiZWNhdXNlIHRoZSBtYXRjaCBzdHJ1Y3R1cmUgaXRzZWxmIGFmZmVjdHMKKy0tIHRo ZSBjb3VudC4gIFRoZSBwbGFuIG11c3QgcmV0YWluIHRoZSBXaW5kb3dBZ2cuCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgVFJVRSkKKykgdDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBXaW5kb3dB Z2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gcnByX2ludGVnCisoNSByb3dzKQorCitTRUxFQ1QgY291bnQoKiksIHN1bShj KSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcK KyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5F IEEgQVMgVFJVRSkKKykgdDsKKyBjb3VudCB8IHN1bSAKKy0tLS0tLS0rLS0tLS0KKyAgICAxMCB8 ICAxMAorKDEgcm93KQorCistLSBYWFg6ICJ2YWwiIGlzIG5vbi1yZXNqdW5rIGluIHRoZSBzdWJx dWVyeSBvdXRwdXQgYW5kIGlzIG5vdAorLS0gcmVmZXJlbmNlZCBieSB0aGUgb3V0ZXIgcXVlcnku ICBXaXRob3V0IGEgZ3VhcmQsCistLSByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMoKSB3 b3VsZCByZXBsYWNlIGl0IHdpdGggTlVMTCBpbgorLS0gdGhlIHN1YnF1ZXJ5IG91dHB1dCwgYW5k IHRoYXQgcmVwbGFjZW1lbnQgcHJvcGFnYXRlcyB0byB0aGUKKy0tIHNjYW4ncyB0YXJnZXRsaXN0 IC0tIERFRklORSB3b3VsZCB0aGVuIGV2YWx1YXRlIHdpdGggTlVMTAorLS0gaW5wdXRzLiAgVGhl IHRhcmdldGxpc3QgaGFzIG5vIHdheSB0byBkaXN0aW5ndWlzaCAiZXhwb3NlZCB0bworLS0gdGhl IG91dGVyIHF1ZXJ5IiBmcm9tICJyZWZlcmVuY2VkIG9ubHkgYnkgREVGSU5FIiwgc28gdGhlCist LSBvcHRpbWl6YXRpb24gY2Fubm90IGJlIGFwcGxpZWQgc2VsZWN0aXZlbHkuICBUaGUgY29sdW1u IGd1YXJkCistLSBpbiBhbGxwYXRocy5jIGJsb2NrcyB0aGlzIHJlcGxhY2VtZW50IGZvciBhbnkg Y29sdW1uIHJlZmVyZW5jZWQKKy0tIGJ5IGFuIFJQUiBERUZJTkUgY2xhdXNlLCBrZWVwaW5nIHRo ZSBXaW5kb3dBZ2cgd2l0aCBERUZJTkUKKy0tIGFjdGl2ZSBpbiB0aGUgcGxhbi4KK0VYUExBSU4g KENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKKykgdDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4gIFdp bmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAgICAg UGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQgS2V5 OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcK Kyg3IHJvd3MpCisKK1NFTEVDVCBjb3VudCgqKSBGUk9NICgKKyAgICBTRUxFQ1QgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQK KyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKKykgdDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMAorKDEgcm93KQorCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEE2LiBJbnZlcnNlIHRyYW5zaXRpb24gYnlwYXNzCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0 IFJQUiB3aW5kb3dzIGRvIG5vdCB1c2UgdGhlIG1vdmluZyBhZ2dyZWdhdGUgKGludmVyc2UKKy0t IHRyYW5zaXRpb24pIG9wdGltaXphdGlvbi4gIE1vdmluZyBhZ2dyZWdhdGVzIG1haW50YWluIHN0 YXRlIGJ5CistLSBhZGRpbmcgYXJyaXZpbmcgcm93cyBhbmQgc3VidHJhY3RpbmcgbGVhdmluZyBy b3dzLCBidXQgYW4gUlBSCistLSByZWR1Y2VkIGZyYW1lIGlzIG5vdCBhIHNsaWRpbmcgd2luZG93 OyB0aGUgc2V0IG9mIHJvd3MgaW5jbHVkZWQgaW4KKy0tIHRoZSBmcmFtZSBpcyBkZXRlcm1pbmVk IGJ5IHBhdHRlcm4gbWF0Y2hpbmcgYW5kIGNhbm5vdCBiZSBkZXJpdmVkCistLSBpbmNyZW1lbnRh bGx5IGZyb20gdGhlIHByZXZpb3VzIGZyYW1lLgorLS0gc3VtKCkgd291bGQgbm9ybWFsbHkgYmUg ZWxpZ2libGUgZm9yIHRoZSBtb3ZpbmcgYWdncmVnYXRlCistLSBvcHRpbWl6YXRpb247IHVuZGVy IFJQUiBpdCBtdXN0IGJlIGNvbXB1dGVkIGZyb20gc2NyYXRjaCBvdmVyIGVhY2gKKy0tIHJlZHVj ZWQgZnJhbWUsIGFuZCB0aGUgcmV0dXJuZWQgdmFsdWVzIG11c3QgbWF0Y2ggdGhlIHBhdHRlcm4u CistLSBOb3RlOiBpbnZlcnNlLXRyYW5zaXRpb24gc2VsZWN0aW9uIGlzIG5vdCBleHBvc2VkIGlu IHRoZSBwbGFuLCBzbworLS0gdGhlcmUgaXMgbm8gZGlyZWN0IEVYUExBSU4gYXNzZXJ0aW9uIGZv ciBpdC4gIFRoZSBzdHJ1Y3R1cmFsCistLSBndWFyYW50ZWUgaXMgdGhhdCBSUFIgdXNlcyBpdHMg b3duIG5hdmlnYXRpb24gbWFyaywgZGlzdGluY3QgZnJvbQorLS0gdGhlIG1vdmluZy1hZ2dyZWdh dGUgbWFyaywgc28gdGhlIGludmVyc2UtdHJhbnNpdGlvbiBwYXRoIGlzCistLSBuZXZlciByZWFj aGVkIG9uIHRoZSBSUFIgc2lkZS4gIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0CistLSBzZXBhcmF0 aW9uIGluZGlyZWN0bHk6IGlmIGludmVyc2UgdHJhbnNpdGlvbiBsZWFrZWQgaW50byB0aGUgUlBS CistLSBwYXRoLCBzdGF0ZSB3b3VsZCBtaXggYWNyb3NzIG1hdGNoIGJvdW5kYXJpZXMgYW5kIHBh dHRlcm5fc3VtCistLSB3b3VsZCBkaXZlcmdlIGZyb20gdGhlIGV4cGVjdGVkIG91dHB1dCwgZmFp bGluZyB0aGUgcmVncmVzc2lvbi4KK1NFTEVDVCBpZCwgdmFsLAorICAgIHN1bSh2YWwpIE9WRVIg dyBBUyBwYXR0ZXJuX3N1bQorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JE RVIgQlkgaWQ7CisgaWQgfCB2YWwgfCBwYXR0ZXJuX3N1bSAKKy0tLS0rLS0tLS0rLS0tLS0tLS0t LS0tLQorICAxIHwgIDEwIHwgICAgICAgICAgMzAKKyAgMiB8ICAyMCB8ICAgICAgICAgICAgCisg IDMgfCAgMTUgfCAgICAgICAgICA0MAorICA0IHwgIDI1IHwgICAgICAgICAgICAKKyAgNSB8ICAg NSB8ICAgICAgICAgIDcwCisgIDYgfCAgMzAgfCAgICAgICAgICAgIAorICA3IHwgIDM1IHwgICAg ICAgICAgICAKKyAgOCB8ICAyMCB8ICAgICAgICAgMTA1CisgIDkgfCAgNDAgfCAgICAgICAgICAg IAorIDEwIHwgIDQ1IHwgICAgICAgICAgICAKKygxMCByb3dzKQorCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE3LiBD b3N0IGVzdGltYXRpb24gUlBSIGF3YXJlbmVzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBjb3N0X3dpbmRvd2FnZygp IG11c3QgYWNjb3VudCBmb3IgREVGSU5FIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBjb3N0LgorLS0g VmVyaWZ5IFJQUiBXaW5kb3dBZ2cgY29zdCA+IG5vbi1SUFIgV2luZG93QWdnIGNvc3QuCitDUkVB VEUgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHF1ZXJ5IHRleHQpIFJFVFVSTlMgbnVtZXJp YyBBUyAkJAorREVDTEFSRQorICAgIHBsYW4ganNvbjsKKyAgICBjb3N0IG51bWVyaWM7CitCRUdJ TgorICAgIEVYRUNVVEUgJ0VYUExBSU4gKEZPUk1BVCBKU09OKSAnIHx8IHF1ZXJ5IElOVE8gcGxh bjsKKyAgICBjb3N0IDo9IChwbGFuLT4wLT4nUGxhbictPj4nVG90YWwgQ29zdCcpOjpudW1lcmlj OworICAgIFJFVFVSTiBjb3N0OworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBn ZXRfd2luZG93YWdnX2Nvc3QoCisgICAgJ1NFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJf aW50ZWcKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgICAgICAgUEFUVEVSTiAo QSBCKyBDKykgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpLCBDIEFTIHZhbCA8IFBSRVYodmFs KSknKQorICAgID4KKyAgICBnZXRfd2luZG93YWdnX2Nvc3QoCisgICAgJ1NFTEVDVCBjb3VudCgq KSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyknKQorICAgIEFT IHJwcl9jb3N0X2lzX2hpZ2hlcjsKKyBycHJfY29zdF9pc19oaWdoZXIgCistLS0tLS0tLS0tLS0t LS0tLS0tLQorIHQKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBnZXRfd2luZG93YWdnX2Nvc3Qo dGV4dCk7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRpb24KKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gVmVyaWZ5IHRoYXQgYSBzdWJxdWVyeSBjb250YWluaW5nIGFuIFJQUiB3aW5kb3cg aXMgbm90IGZsYXR0ZW5lZAorLS0gaW50byB0aGUgb3V0ZXIgcXVlcnkuICBpc19zaW1wbGVfc3Vi cXVlcnkoKSBhbHJlYWR5IGJsb2NrcyBwdWxsdXAKKy0tIGZvciBzdWJxdWVyaWVzIHdpdGggd2lu ZG93IGZ1bmN0aW9ucyBpbiBnZW5lcmFsOyB0aGlzIHRlc3QgY29uZmlybXMKKy0tIHRoZSBydWxl IGNvbnRpbnVlcyB0byBhcHBseSB0byBSUFIgd2luZG93cywgc28gRVhQTEFJTiBtdXN0IHN0aWxs CistLSBzaG93IGEgU3VicXVlcnkgU2NhbiBhYm92ZSB0aGUgUlBSIFdpbmRvd0FnZy4KK0VYUExB SU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gKAorICAgIFNFTEVDVCBpZCwgdmFsLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkKKykgc3ViCitXSEVSRSBjbnQgPiAwOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU3VicXVlcnkgU2NhbiBvbiBzdWIKKyAgIEZpbHRlcjogKHN1Yi5jbnQgPiAwKQor ICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50 ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAg IFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKKyAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfaW50ZWcKKyg4IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTkuIERFRklORSBleHByZXNzaW9uIG5v bi1wcm9wYWdhdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBERUZJTkUgZXhwcmVzc2lvbnMg YXJlIG5vdCBwcm9wYWdhdGVkIGludG8gdGhlCistLSB0YXJnZXRsaXN0IG9mIGFueSB1cHBlciBX aW5kb3dBZ2cgbm9kZS4gIE9ubHkgdGhlIGNvbHVtbiByZWZlcmVuY2VzCistLSBjb25zdW1lZCBi eSBERUZJTkUgc2hvdWxkIGJlIHBhc3NlZCB1cDsgdGhlIGZ1bGwgREVGSU5FIGV4cHJlc3Npb24K Ky0tIGlzIG1lYW5pbmdmdWwgb25seSBpbnNpZGUgdGhlIFJQUiBXaW5kb3dBZ2cgdGhhdCBvd25z IGl0LgorLS0gRVhQTEFJTiBWRVJCT1NFIGlzIHRoZXJlZm9yZSBleHBlY3RlZCB0byBzaG93IGEg Y2xlYW4gdGFyZ2V0bGlzdCBvbgorLS0gdGhlIG91dGVyIFdpbmRvd0FnZywgd2l0aCBubyBERUZJ TkUtZGVyaXZlZCBleHByZXNzaW9uIGxlYWtpbmcgaW4uCistLSBOb3RlOiBjb2x1bW5zIHJlZmVy ZW5jZWQgYnkgREVGSU5FIChlLmcuLCAidmFsIikgbWF5IGFwcGVhciBhcworLS0gcmVzanVuayBl bnRyaWVzIGluIHVwcGVyIFdpbmRvd0FnZyB0YXJnZXRsaXN0cyAtLSB0aGF0IGlzIGEKKy0tIGhh cm1sZXNzIGJ5cHJvZHVjdCBvZiB0aGUgY29sdW1uIGd1YXJkJ3MgYnJvYWQgc2NvcGUgYW5kIGRv ZXMgbm90CistLSBhZmZlY3QgY2xpZW50IG91dHB1dC4gIFRoZSBjbGFpbSBoZXJlIGlzIGxpbWl0 ZWQgdG8gdGhlIGZ1bGwKKy0tIERFRklORSBib29sZWFuIGV4cHJlc3Npb24uCitFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVSIHdfcnByIEFTIHJw cl9jbnQsCisgICAgY291bnQoKikgT1ZFUiB3X25vcm1hbCBBUyBub3JtYWxfY250CitGUk9NIHJw cl9pbnRlZworV0lORE9XCisgICAgd19ycHIgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRU RVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpLAorICAgIHdf bm9ybWFsIEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBXaW5kb3dBZ2cKKyAgIE91dHB1dDogKGNvdW50KCopIE9WRVIgd19ycHIpLCBjb3VudCgqKSBP VkVSIHdfbm9ybWFsLCBpZCwgdmFsCisgICBXaW5kb3c6IHdfbm9ybWFsIEFTIChPUkRFUiBCWSBy cHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQorICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgT3V0cHV0OiBpZCwgdmFsLCBjb3VudCgq KSBPVkVSIHdfcnByCisgICAgICAgICBXaW5kb3c6IHdfcnByIEFTIChPUkRFUiBCWSBycHJfaW50 ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAg IE91dHB1dDogaWQsIHZhbAorICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAor ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5ycHJfaW50ZWcKKyAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogaWQsIHZhbAorKDEyIHJvd3MpCisKKy0tIEV4ZWN1dGluZyB0 aGUgc2FtZSBxdWVyeSBzaG93cyB0aGUgY2xpZW50IHJlc3VsdCBpcyBsaW1pdGVkIHRvCistLSB0 aGUgdHdvIHByb2plY3RlZCBjb2x1bW5zOyAiaWQiIGFuZCAidmFsIiB0aGF0IGFwcGVhcmVkIGlu IHRoZQorLS0gdXBwZXIgV2luZG93QWdnIE91dHB1dCBsaW5lIGFyZSByZXNqdW5rLW9ubHkgYW5k IGRvIG5vdCByZWFjaAorLS0gdGhlIGNsaWVudC4KK1NFTEVDVAorICAgIGNvdW50KCopIE9WRVIg d19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9ybWFsIEFTIG5vcm1hbF9j bnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAoT1JERVIgQlkgaWQKKyAg ICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFs KSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKK09SREVSIEJZIHJwcl9jbnQgREVT Qywgbm9ybWFsX2NudCBERVNDOworIHJwcl9jbnQgfCBub3JtYWxfY250IAorLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorICAgICAgIDMgfCAgICAgICAgICA2CisgICAgICAgMyB8ICAgICAgICAgIDMK KyAgICAgICAyIHwgICAgICAgICAxMAorICAgICAgIDIgfCAgICAgICAgICA4CisgICAgICAgMCB8 ICAgICAgICAgIDkKKyAgICAgICAwIHwgICAgICAgICAgNworICAgICAgIDAgfCAgICAgICAgICA1 CisgICAgICAgMCB8ICAgICAgICAgIDQKKyAgICAgICAwIHwgICAgICAgICAgMgorICAgICAgIDAg fCAgICAgICAgICAxCisoMTAgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMTAuIFJQUiArIExJTUlUCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIExJTUlUIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIFJQUiBwYXR0ZXJuIG1hdGNo aW5nLiAgVGhlIExpbWl0CistLSBub2RlIG11c3Qgc2l0IGFib3ZlIHRoZSBXaW5kb3dBZ2cgc28g dGhhdCBwYXR0ZXJuIG1hdGNoaW5nIHJ1bnMKKy0tIG9uIHRoZSBmdWxsIHBhcnRpdGlvbiBmaXJz dDsgdGhlIHJlc3VsdCBpcyB0aGVuIGEgcHJlZml4IG9mIHRoZQorLS0gdW4tTElNSVRlZCBvdXRw dXQuICBQdXNoaW5nIExpbWl0IGJlbG93IHRoZSBXaW5kb3dBZ2cgd291bGQKKy0tIHRydW5jYXRl IGlucHV0IGJlZm9yZSBtYXRjaGluZyBhbmQgc2lsZW50bHkgZHJvcCB2YWxpZCBtYXRjaGVzLgor RVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChB IEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTGlt aXQKKyAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgICAg ICAgUGF0dGVybjogYSBiKworICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgIFNvcnQg S2V5OiBpZAorICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDcgcm93 cykKKworLS0gUmVmZXJlbmNlOiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRoZSBM SU1JVCA1IHJlc3VsdCBpcworLS0gY29tcGFyZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIg QlkgaWQ7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAg IDIKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAg NSB8ICAgNSB8ICAgMworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAy MCB8ICAgMworICA5IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCist LSBMSU1JVCA1IGNhc2U7IHRoZSBmaXJzdCBmaXZlIHJvd3MgbXVzdCBtYXRjaCB0aGUgcmVmZXJl bmNlIGFib3ZlLgorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00g cnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAg IERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK0xJTUlUIDU7CisgaWQgfCB2YWwgfCBjbnQg CistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAgMAorICAz IHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworKDUgcm93cykK KworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQ UiB3aW5kb3cgZW1iZWRkZWQgaW5zaWRlIGEgQ1RFIGJlaGF2ZXMgdGhlIHNhbWUgYXMKKy0tIGEg ZGlyZWN0IFJQUiBxdWVyeToKKy0tICAgKDEpIEEgc2luZ2xlLXJlZmVyZW5jZSBDVEUgaXMgaW5s aW5lZCBieSB0aGUgcGxhbm5lciBhbmQgeWllbGRzCistLSAgICAgICBwZXItcm93IHJlc3VsdHMg aWRlbnRpY2FsIHRvIHRoZSBkaXJlY3QgUlBSIHF1ZXJ5LgorLS0gICAoMikgQSBtdWx0aS1yZWZl cmVuY2UgQ1RFIGlzIG1hdGVyaWFsaXplZCAoQ1RFIFNjYW4gYXBwZWFycyBpbgorLS0gICAgICAg dGhlIHBsYW4pIHNvIHBhdHRlcm4gbWF0Y2hpbmcgcnVucyBvbmNlLCBhbmQgZXZlcnkgcmVmZXJl bmNlCistLSAgICAgICBvYnNlcnZlcyB0aGUgc2FtZSBtYXRjaCByZXN1bHRzLgorLS0gQmFzZWxp bmU6IGRpcmVjdCBSUFIgcHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1dC4KK1NF TEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9pbnRlZworV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2 YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0t LS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAg IDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAg NyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0 NSB8ICAgMAorKDEwIHJvd3MpCisKKy0tIFNpbmdsZS1yZWZlcmVuY2UgQ1RFOiBwbGFuIGhhcyBu byAiQ1RFIHJwcl9yZXN1bHQiIHNjb3BlLCBzaG93aW5nCistLSB0aGUgQ1RFIHdhcyBpbmxpbmVk IGludG8gdGhlIHN1cnJvdW5kaW5nIHF1ZXJ5LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBy cHJfcmVzdWx0IEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkp CispCitTRUxFQ1QgaWQsIHZhbCwgY250IEZST00gcnByX3Jlc3VsdCBPUkRFUiBCWSBpZDsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcu aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSBiKworICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcu aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKKy0tIFJl c3VsdCBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4KK1dJVEggcnByX3Jlc3Vs dCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBG Uk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorKQorU0VM RUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIgQlkgaWQ7CisgaWQgfCB2YWwg fCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAyMCB8ICAg MAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAgMworICA2 IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5IHwgIDQw IHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCistLSBNdWx0aS1yZWZlcmVuY2Ug Q1RFIChzZWxmLWpvaW4pOiBwbGFuIGhhcyBhICJDVEUgcnByX3Jlc3VsdCIgc2NvcGUKKy0tIGFu ZCBDVEUgU2NhbiBub2RlcyBvbiBib3RoIHNpZGVzLCBzaG93aW5nIHRoZSBDVEUgd2FzIG1hdGVy aWFsaXplZAorLS0gYW5kIHBhdHRlcm4gbWF0Y2hpbmcgcmFuIG9ubHkgb25jZS4KK0VYUExBSU4g KENPU1RTIE9GRikKK1dJVEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKQorKQorU0VMRUNUIHIxLmlkLCByMS5jbnQKK0ZST00gcnByX3Jl c3VsdCByMQorSk9JTiBycHJfcmVzdWx0IHIyIE9OIHIxLmlkID0gcjIuaWQgQU5EIHIxLmNudCA9 IHIyLmNudAorV0hFUkUgcjEuY250ID4gMAorT1JERVIgQlkgcjEuaWQ7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgorICAgTWVyZ2UgQ29uZDogKChyMi5pZCA9IHIxLmlk KSBBTkQgKHIyLmNudCA9IHIxLmNudCkpCisgICBDVEUgcnByX3Jlc3VsdAorICAgICAtPiAgV2lu ZG93QWdnCisgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAg ICAgUGF0dGVybjogYSBiKworICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICBT b3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfaW50ZWcKKyAgIC0+ICBJbmNyZW1lbnRhbCBTb3J0CisgICAgICAgICBTb3J0IEtleTogcjIu aWQsIHIyLmNudAorICAgICAgICAgUHJlc29ydGVkIEtleTogcjIuaWQKKyAgICAgICAgIC0+ICBD VEUgU2NhbiBvbiBycHJfcmVzdWx0IHIyCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6 IHIxLmlkLCByMS5jbnQKKyAgICAgICAgIC0+ICBDVEUgU2NhbiBvbiBycHJfcmVzdWx0IHIxCisg ICAgICAgICAgICAgICBGaWx0ZXI6IChjbnQgPiAwKQorKDE3IHJvd3MpCisKKy0tIFJlc3VsdDog Ym90aCByZWZlcmVuY2VzIHNlZSB0aGUgc2FtZSBtYXRjaCBjb3VudHMsIHNvIHRoZSBzZWxmLWpv aW4KKy0tIHByZXNlcnZlcyBhbGwgbWF0Y2hlZCByb3dzIGZyb20gdGhlIGJhc2VsaW5lLgorV0lU SCBycHJfcmVzdWx0IEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpCispCitTRUxFQ1QgcjEuaWQsIHIxLmNudAorRlJPTSBycHJfcmVzdWx0IHIxCitKT0lOIHJw cl9yZXN1bHQgcjIgT04gcjEuaWQgPSByMi5pZCBBTkQgcjEuY250ID0gcjIuY250CitXSEVSRSBy MS5jbnQgPiAwCitPUkRFUiBCWSByMS5pZDsKKyBpZCB8IGNudCAKKy0tLS0rLS0tLS0KKyAgMSB8 ICAgMgorICAzIHwgICAyCisgIDUgfCAgIDMKKyAgOCB8ICAgMworKDQgcm93cykKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCMi4gUlBSICsgSk9JTgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIgc3VicXVl cnkgY2FuIGJlIGpvaW5lZCB3aXRoIGFub3RoZXIgcmVsYXRpb24uCistLSBUd28gYXNwZWN0cyBh cmUgY2hlY2tlZCBhZ2FpbnN0IGEgbm9uLVJQUiBiYXNlbGluZToKKy0tICAgKDEpIEZsYXR0ZW5p bmc6IGEgbm9uLVJQUiBzdWJxdWVyeSBpcyBwdWxsZWQgdXAgYnkgdGhlIHBsYW5uZXIKKy0tICAg ICAgIChubyBTdWJxdWVyeSBTY2FuIGluIHRoZSBwbGFuKTsgYW4gUlBSIHN1YnF1ZXJ5IGlzIGtl cHQKKy0tICAgICAgIHVuLWZsYXR0ZW5lZCAoU3VicXVlcnkgU2NhbiBhYm92ZSBXaW5kb3dBZ2cp LgorLS0gICAoMikgSm9pbiBjb3JyZWN0bmVzczogdGhlIGpvaW4gYWxpZ25zIGVhY2ggUlBSIG1h dGNoIHJvdyB3aXRoCistLSAgICAgICB0aGUgZGltZW5zaW9uLXRhYmxlIHJvdyBvbiB0aGUgc2Ft ZSBrZXkuCitDUkVBVEUgVEFCTEUgcnByX2ludGVnMiAoaWQgSU5ULCBsYWJlbCBURVhUKTsKK0lO U0VSVCBJTlRPIHJwcl9pbnRlZzIgVkFMVUVTCisgICAgKDEsICdhJyksICgyLCAnYicpLCAoMywg J2MnKSwgKDQsICdkJyksICg1LCAnZScpLAorICAgICg2LCAnZicpLCAoNywgJ2cnKSwgKDgsICdo JyksICg5LCAnaScpLCAoMTAsICdqJyk7CistLSBCYXNlbGluZTogYSBub24tUlBSIHN1YnF1ZXJ5 IGlzIGZsYXR0ZW5lZCBieSB0aGUgcGxhbm5lci4gIE5vCistLSBTdWJxdWVyeSBTY2FuIG5vZGUg YXBwZWFyczsgdGhlIGlubmVyIFNFTEVDVCBpcyBtZXJnZWQgaW50byB0aGUKKy0tIG91dGVyIGpv aW4uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci52YWwsIGoubGFiZWwKK0ZS T00gKFNFTEVDVCBpZCwgdmFsIEZST00gcnByX2ludGVnKSByCitKT0lOIHJwcl9pbnRlZzIgaiBP TiByLmlkID0gai5pZAorT1JERVIgQlkgci5pZDsKKyAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIE1l cmdlIEpvaW4KKyAgIE1lcmdlIENvbmQ6IChqLmlkID0gcnByX2ludGVnLmlkKQorICAgLT4gIFNv cnQKKyAgICAgICAgIFNvcnQgS2V5OiBqLmlkCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X2ludGVnMiBqCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAor ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDggcm93cykKKworLS0gUlBSIHN1 YnF1ZXJ5IEpPSU46IHRoZSBTdWJxdWVyeSBTY2FuIGlzIHByZXNlcnZlZCBhYm92ZSB0aGUKKy0t IFdpbmRvd0FnZywgY29uZmlybWluZyB0aGUgUlBSIHN1YnF1ZXJ5IGlzIG5vdCBmbGF0dGVuZWQu CitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00g KAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2lu dGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2lu dGVnMiBqIE9OIHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBNZXJnZSBKb2luCisgICBNZXJnZSBD b25kOiAoci5pZCA9IGouaWQpCisgICAtPiAgU3VicXVlcnkgU2NhbiBvbiByCisgICAgICAgICBG aWx0ZXI6IChyLmNudCA+IDApCisgICAgICAgICAtPiAgV2luZG93QWdnCisgICAgICAgICAgICAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICBQYXR0ZXJuOiBh IGIrCisgICAgICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICAgICAgU29ydCBL ZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9pbnRlZworICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBqLmlkCisgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX2ludGVnMiBqCisoMTMgcm93cykKKworLS0gUmVzdWx0OiBtYXRj aGVkIFJQUiByb3dzIGFsaWduIHdpdGggZGltZW5zaW9uIHJvd3Mgb24gaWQsIHNob3dpbmcKKy0t IHRoZSBqb2luIGNvcnJlY3RseSBwYWlycyBwZXItcm93IG1hdGNoIGNvdW50cyB3aXRoIHRoZWly IGxhYmVscy4KK1NFTEVDVCByLmlkLCByLmNudCwgai5sYWJlbAorRlJPTSAoCisgICAgU0VMRUNU IGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorSk9JTiBycHJfaW50ZWcyIGogT04gci5p ZCA9IGouaWQKK1dIRVJFIHIuY250ID4gMAorT1JERVIgQlkgci5pZDsKKyBpZCB8IGNudCB8IGxh YmVsIAorLS0tLSstLS0tLSstLS0tLS0tCisgIDEgfCAgIDIgfCBhCisgIDMgfCAgIDIgfCBjCisg IDUgfCAgIDMgfCBlCisgIDggfCAgIDMgfCBoCisoNCByb3dzKQorCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEIzLiBS UFIgKyBTZXQgb3BlcmF0aW9ucworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcmVzdWx0cyBj b21iaW5lIGNvcnJlY3RseSB3aXRoIG5vbi1SUFIgcmVzdWx0cworLS0gdW5kZXIgYSBVTklPTiBB TEwuICBUaGUgcGxhbiBtdXN0IHNob3cgYW4gQXBwZW5kIG5vZGUgd2l0aCB0d28KKy0tIGluZGVw ZW5kZW50IGNoaWxkIHBsYW5zOiB0aGUgUlBSIGJyYW5jaCB3aXRoIFBhdHRlcm4vREVGSU5FIGFj dGl2ZSwKKy0tIGFuZCB0aGUgbm9uLVJQUiBicmFuY2ggd2l0aCBhIHBsYWluIFdpbmRvd0FnZy4g IEVhY2ggY2hpbGQgc2NhbnMKKy0tIHRoZSBiYXNlIHJlbGF0aW9uIG9uIGl0cyBvd24gYW5kIGNv bnRyaWJ1dGVzIGl0cyByb3dzIHRvIHRoZQorLS0gdW5pb25lZCBvdXRwdXQuCistLSBQbGFuOiBB cHBlbmQgd2l0aCB0d28gaW5kZXBlbmRlbnQgY2hpbGRyZW4uICBUaGUgUlBSIGJyYW5jaCBoYXMg YQorLS0gV2luZG93QWdnIGNhcnJ5aW5nIFBhdHRlcm4vTmF2IE1hcmsgTG9va2JhY2s7IHRoZSBu b24tUlBSIGJyYW5jaAorLS0gaGFzIGEgcGxhaW4gV2luZG93QWdnIHdpdGggbm8gcGF0dGVybiBt ZXRhZGF0YS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBpZCwgY250LCAncnByJyBBUyBz b3VyY2UgRlJPTSAoCisgICAgU0VMRUNUIGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAg RlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBB VFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBX SEVSRSBjbnQgPiAwCitVTklPTiBBTEwKK1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAoT1JERVIg QlkgaWQpIEFTIGNudCwgJ25vcm1hbCcgQVMgc291cmNlCitGUk9NIHJwcl9pbnRlZworT1JERVIg Qlkgc291cmNlLCBpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFNvcnQKKyAgIFNvcnQgS2V5OiAoJ3Jwcic6OnRleHQpLCB0LmlkCisgICAtPiAgQXBw ZW5kCisgICAgICAgICAtPiAgU3VicXVlcnkgU2NhbiBvbiB0CisgICAgICAgICAgICAgICBGaWx0 ZXI6ICh0LmNudCA+IDApCisgICAgICAgICAgICAgICAtPiAgV2luZG93QWdnCisgICAgICAgICAg ICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICAg ICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworICAgICAgICAgLT4gIFdp bmRvd0FnZworICAgICAgICAgICAgICAgV2luZG93OiB3MSBBUyAoT1JERVIgQlkgcnByX2ludGVn XzEuaWQpCisgICAgICAgICAgICAgICAtPiAgU29ydAorICAgICAgICAgICAgICAgICAgICAgU29y dCBLZXk6IHJwcl9pbnRlZ18xLmlkCisgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX2ludGVnIHJwcl9pbnRlZ18xCisoMTYgcm93cykKKworLS0gUmVzdWx0OiByb3dzIGZy b20gYm90aCBicmFuY2hlcyBhcmUgcHJlc2VudCBpbiB0aGUgdW5pb25lZCBvdXRwdXQuCistLSBU aGUgUlBSIGJyYW5jaCBlbWl0cyBvbmx5IG1hdGNoZWQgcm93cyAoY250ID4gMCksIHdoaWxlIHRo ZQorLS0gbm9uLVJQUiBicmFuY2ggZW1pdHMgYWxsIHJvd3Mgd2l0aCBpdHMgb3duIGNvdW50IHZh bHVlcy4KK1NFTEVDVCBpZCwgY250LCAncnByJyBBUyBzb3VyY2UgRlJPTSAoCisgICAgU0VMRUNU IGlkLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERF RklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgdCBXSEVSRSBjbnQgPiAwCitVTklPTiBBTEwK K1NFTEVDVCBpZCwgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQpIEFTIGNudCwgJ25vcm1hbCcg QVMgc291cmNlCitGUk9NIHJwcl9pbnRlZworT1JERVIgQlkgc291cmNlLCBpZDsKKyBpZCB8IGNu dCB8IHNvdXJjZSAKKy0tLS0rLS0tLS0rLS0tLS0tLS0KKyAgMSB8ICAgMSB8IG5vcm1hbAorICAy IHwgICAyIHwgbm9ybWFsCisgIDMgfCAgIDMgfCBub3JtYWwKKyAgNCB8ICAgNCB8IG5vcm1hbAor ICA1IHwgICA1IHwgbm9ybWFsCisgIDYgfCAgIDYgfCBub3JtYWwKKyAgNyB8ICAgNyB8IG5vcm1h bAorICA4IHwgICA4IHwgbm9ybWFsCisgIDkgfCAgIDkgfCBub3JtYWwKKyAxMCB8ICAxMCB8IG5v cm1hbAorICAxIHwgICAyIHwgcnByCisgIDMgfCAgIDIgfCBycHIKKyAgNSB8ICAgMyB8IHJwcgor ICA4IHwgICAzIHwgcnByCisoMTQgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNC4gUlBSICsgUHJlcGFy ZWQgc3RhdGVtZW50cworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcXVlcmllcyBzdXJ2aXZl IHRoZSBwcmVwYXJlZC1zdGF0ZW1lbnQgcGF0aCBieQorLS0gZXhlcmNpc2luZyBib3RoIHBsYW5j YWNoZSBtb2RlcyB3aXRoIGEgcGFyYW1ldGVyIHRoYXQgZmVlZHMgaW50bworLS0gUlBSJ3MgbmF2 aWdhdGlvbiBvZmZzZXQgKFBSRVYodmFsLCAkMSkpLiAgVGhlIHBhcmFtZXRlciBzdXJmYWNlcwor LS0gdGhlIFJQUi1zcGVjaWZpYyBwbGFuY2FjaGUgZGlmZmVyZW5jZToKKy0tICAgLSBjdXN0b20g cGxhbjogIk5hdiBNYXJrIExvb2tiYWNrIiBpcyByZXNvbHZlZCB0byB0aGUgbGl0ZXJhbAorLS0g ICAgIHBhcmFtZXRlciB2YWx1ZSBhdCBwbGFuIHRpbWUgKGUuZy4sICJOYXYgTWFyayBMb29rYmFj azogMSIpLgorLS0gICAtIGdlbmVyaWMgcGxhbjogIk5hdiBNYXJrIExvb2tiYWNrIiBpcyBkZWZl cnJlZCB0byBleGVjdXRpb24gYW5kCistLSAgICAgYXBwZWFycyBhcyAiTmF2IE1hcmsgTG9va2Jh Y2s6IHJ1bnRpbWUiIGluIHRoZSBwbGFuLgorLS0gVGhlIHJlc3VsdCBtdXN0IGJlIGlkZW50aWNh bCB1bmRlciBib3RoIG1vZGVzLgorLS0gUmVnaXN0ZXIgdGhlIHByZXBhcmVkIHN0YXRlbWVudDsg REVGSU5FIHVzZXMgUFJFVih2YWwsICQxKSBzbyB0aGUKKy0tIHBhcmFtZXRlciByZWFjaGVzIFJQ UidzIG5hdmlnYXRpb24gbWFjaGluZXJ5LgorUFJFUEFSRSBycHJfcHJldihpbnQpIEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRP VyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwsICQxKSkKK09SREVSIEJZIGlkOworRVJST1I6ICBmdW5jdGlvbiBwcmV2KGlu dGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4aXN0CitMSU5FIDc6ICAgICBERUZJTkUgQiBBUyB2 YWwgPiBQUkVWKHZhbCwgJDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorREVU QUlMOiAgTm8gZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdpdmVuIG51bWJlciBv ZiBhcmd1bWVudHMuCistLSBDdXN0b20gcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgcmVzb2x2ZWQg dG8gdGhlIGxpdGVyYWwgMS4KK1NFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9jdXN0b21fcGxh bjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKK0VSUk9SOiAgcHJl cGFyZWQgc3RhdGVtZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKK0VYRUNVVEUgcnByX3By ZXYoMSk7CitFUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3ByZXYiIGRvZXMgbm90IGV4 aXN0CistLSBHZW5lcmljIHBsYW46IE5hdiBNYXJrIExvb2tiYWNrIGRlZmVycmVkIHRvIGV4ZWN1 dGlvbiwgc2hvd24gYXMKKy0tICJydW50aW1lIiBpbiB0aGUgcGxhbi4gIFJlc3VsdCBtdXN0IG1h dGNoIHRoZSBjdXN0b20tcGxhbiByZXN1bHQKKy0tIGV4YWN0bHkuCitTRVQgcGxhbl9jYWNoZV9t b2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJw cl9wcmV2KDEpOworRVJST1I6ICBwcmVwYXJlZCBzdGF0ZW1lbnQgInJwcl9wcmV2IiBkb2VzIG5v dCBleGlzdAorRVhFQ1VURSBycHJfcHJldigxKTsKK0VSUk9SOiAgcHJlcGFyZWQgc3RhdGVtZW50 ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxM T0NBVEUgcnByX3ByZXY7CitFUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3ByZXYiIGRv ZXMgbm90IGV4aXN0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tIEI1LiBSUFIgKyBQYXJ0aXRpb25lZCB0YWJsZQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0bHkg d2hlbiB0aGUgc291cmNlCistLSByZWxhdGlvbiBpcyBwYXJ0aXRpb25lZC4gIFRoZSBwbGFubmVy IG11c3QgZ2F0aGVyIHJvd3MgZnJvbSBldmVyeQorLS0gcGFydGl0aW9uIGludG8gYSBzaW5nbGUg b3JkZXJlZCBzdHJlYW0gYmVmb3JlIFJQUiBjYW4gc2VlIHRoZW0sCistLSBiZWNhdXNlIHBhdHRl cm4gbWF0Y2hpbmcgaXMgc2VxdWVudGlhbCBhY3Jvc3MgdGhlIGVudGlyZQorLS0gcGFydGl0aW9u LWJ5IGdyb3VwIGFuZCBjYW5ub3QgYmUgcGVyZm9ybWVkIGluZGVwZW5kZW50bHkgb24gZWFjaAor LS0gdGFibGUgcGFydGl0aW9uLgorQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0IChpZCBJTlQsIHZhbCBJ TlQpIFBBUlRJVElPTiBCWSBSQU5HRSAoaWQpOworQ1JFQVRFIFRBQkxFIHJwcl9wYXJ0XzEgUEFS VElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAoMSkgVE8gKDYpOworQ1JFQVRFIFRB QkxFIHJwcl9wYXJ0XzIgUEFSVElUSU9OIE9GIHJwcl9wYXJ0IEZPUiBWQUxVRVMgRlJPTSAoNikg VE8gKDExKTsKK0lOU0VSVCBJTlRPIHJwcl9wYXJ0IFNFTEVDVCBpZCwgdmFsIEZST00gcnByX2lu dGVnOworLS0gUGxhbjogcGFydGl0aW9uIHNjYW5zIGFyZSBjb21iaW5lZCB3aXRoIEFwcGVuZCAo b3IgTWVyZ2UgQXBwZW5kKSwKKy0tIHNvcnRlZCBpbnRvIGEgc2luZ2xlIG9yZGVyZWQgc3RyZWFt LCBhbmQgZmVkIGludG8gb25lIFdpbmRvd0FnZworLS0gdGhhdCBwZXJmb3JtcyBSUFIgcGF0dGVy biBtYXRjaGluZyBhY3Jvc3MgdGhlIGNvbWJpbmVkIHN0cmVhbS4KK0VYUExBSU4gKENPU1RTIE9G RikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9wYXJ0 CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZwor ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfcGFydC5pZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhIGIrCisgICAtPiAg U29ydAorICAgICAgICAgU29ydCBLZXk6IHJwcl9wYXJ0LmlkCisgICAgICAgICAtPiAgQXBwZW5k CisgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMQorICAgICAgICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wYXJ0XzIKKyg4IHJvd3MpCisKKy0tIEJhc2VsaW5lOiB0 aGUgc2FtZSBxdWVyeSBhZ2FpbnN0IHRoZSBub24tcGFydGl0aW9uZWQgcnByX2ludGVnCistLSBw cm9kdWNlcyB0aGUgcGVyLXJvdyByZWZlcmVuY2Ugb3V0cHV0LgorU0VMRUNUIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkK K09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwg IDEwIHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwg ICAwCisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisg IDggfCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93 cykKKworLS0gUmVzdWx0IGFnYWluc3QgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIG11c3QgbWF0Y2gg dGhlIGJhc2VsaW5lCistLSByb3ctZm9yLXJvdy4KK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9wYXJ0CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZ IGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAy CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAwCisgIDUg fCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisgIDggfCAgMjAg fCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93cykKKworRFJP UCBUQUJMRSBycHJfcGFydDsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjYuIFJQUiArIExBVEVSQUwKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gUlBSIGluc2lkZSBhIExBVEVSQUwgc3VicXVlcnkuICBRdWFsaWZpZWQgY29sdW1uIHJlZmVy ZW5jZXMgZnJvbQorLS0gdGhlIG91dGVyIHF1ZXJ5IGFyZSBub3QgeWV0IHN1cHBvcnRlZCBpbiBE RUZJTkUsIHNvIHRoaXMgdGVzdHMKKy0tIHRoZSBiYXNpYyBjYXNlIHdoZXJlIExBVEVSQUwgcHJv dmlkZXMgdGhlIGNvcnJlbGF0aW9uIGZpbHRlcgorLS0gKFdIRVJFIGlkIDw9IG8uaWQpIGFuZCBE RUZJTkUgdXNlcyBvbmx5IGxvY2FsIGNvbHVtbnMuICBUaGUgcGxhbgorLS0gbXVzdCBzaG93IGEg TmVzdGVkIExvb3AgZHJpdmluZyB0aGUgb3V0ZXIgcmVsYXRpb24gaW50byB0aGUgaW5uZXIKKy0t IHN1YnF1ZXJ5IHNjYW4sIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgcmUtZXhlY3V0ZWQgZm9yIGVh Y2ggb3V0ZXIKKy0tIHJvdyBhbmQgdGhlIGNvcnJlbGF0aW9uIHN1cmZhY2luZyBhcyBhIHNjYW4t bGV2ZWwgRmlsdGVyIG9uCistLSAiaWQgPD0gby5pZCIuCistLSBQbGFuOiBOZXN0ZWQgTG9vcCB3 aXRoIHRoZSBSUFIgV2luZG93QWdnIGluIHRoZSBpbm5lciBsZWcsIGRyaXZlbgorLS0gYnkgdGhl IGZpbHRlcmVkIG91dGVyIHJvd3MgKG8uaWQgSU4gKDUsIDEwKSkuCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1Qgby5pZCBBUyBvdXRlcl9pZCwgci5pZCwgci5jbnQKK0ZST00gcnByX2ludGVn IG8sCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAg ICBGUk9NIHJwcl9pbnRlZworICAgIFdIRVJFIGlkIDw9IG8uaWQKKyAgICBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkKKykgcgorV0hFUkUgci5jbnQgPiAwIEFORCBvLmlkIElOICg1LCAx MCkKK09SREVSIEJZIG8uaWQsIHIuaWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBTb3J0IEtleTogby5pZCwgci5pZAorICAgLT4gIE5l c3RlZCBMb29wCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIG8KKyAgICAgICAg ICAgICAgIEZpbHRlcjogKGlkID0gQU5ZICgnezUsMTB9Jzo6aW50ZWdlcltdKSkKKyAgICAgICAg IC0+ICBTdWJxdWVyeSBTY2FuIG9uIHIKKyAgICAgICAgICAgICAgIEZpbHRlcjogKHIuY250ID4g MCkKKyAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKKyAgICAgICAgICAgICAgICAgICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46 IGEgYisKKyAgICAgICAgICAgICAgICAgICAgIC0+ICBTb3J0CisgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBGaWx0ZXI6IChpZCA8PSBvLmlkKQorKDE0IHJvd3MpCisKKy0tIFJlc3VsdDogZm9yIGVh Y2ggb2YgdGhlIHR3byBvdXRlciBpZHMgKDUgYW5kIDEwKSwgdGhlIExBVEVSQUwKKy0tIHN1YnF1 ZXJ5IHByb2R1Y2VzIFJQUiBtYXRjaCBjb3VudHMgb3ZlciB0aGUgcmVzdHJpY3RlZCBpbnB1dC4K K1NFTEVDVCBvLmlkIEFTIG91dGVyX2lkLCByLmlkLCByLmNudAorRlJPTSBycHJfaW50ZWcgbywK K0xBVEVSQUwgKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZS T00gcnByX2ludGVnCisgICAgV0hFUkUgaWQgPD0gby5pZAorICAgIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFs ID4gUFJFVih2YWwpKQorKSByCitXSEVSRSByLmNudCA+IDAgQU5EIG8uaWQgSU4gKDUsIDEwKQor T1JERVIgQlkgby5pZCwgci5pZDsKKyBvdXRlcl9pZCB8IGlkIHwgY250IAorLS0tLS0tLS0tLSst LS0tKy0tLS0tCisgICAgICAgIDUgfCAgMSB8ICAgMgorICAgICAgICA1IHwgIDMgfCAgIDIKKyAg ICAgICAxMCB8ICAxIHwgICAyCisgICAgICAgMTAgfCAgMyB8ICAgMgorICAgICAgIDEwIHwgIDUg fCAgIDMKKyAgICAgICAxMCB8ICA4IHwgICAzCisoNiByb3dzKQorCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEI3LiBS UFIgKyBSZWN1cnNpdmUgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3aW5kb3cg Y2FuIGFwcGVhciBpbnNpZGUgdGhlIG5vbi1yZWN1cnNpdmUKKy0tIChiYXNlKSBsZWcgb2YgYSBy ZWN1cnNpdmUgQ1RFLiAgVGhlIHBsYW4gbXVzdCBzaG93IHRoZSBSUFIKKy0tIFdpbmRvd0FnZyBz aXR0aW5nIHVuZGVyIHRoZSBSZWN1cnNpdmUgVW5pb24gYXMgdGhlIGJhc2UtbGVnCistLSBjaGls ZCwgd2l0aCB0aGUgV29ya1RhYmxlIFNjYW4gZmVlZGluZyB0aGUgcmVjdXJzaXZlIGxlZyBhYm92 ZQorLS0gaXQuICBUaGlzIGNvbmZpcm1zIHRoYXQgUlBSIG91dHB1dCBjYW4gc2VlZCBhIHJlY3Vy c2l2ZSBDVEUKKy0tICh3aW5kb3cgZnVuY3Rpb25zIGNhbm5vdCBhcHBlYXIgaW4gdGhlIHJlY3Vy c2l2ZSBsZWcgaXRzZWxmLCBhCistLSBQb3N0Z3JlU1FMIHJlc3RyaWN0aW9uLCBzbyB0aGlzIGlz IHRoZSBuYXR1cmFsIHBsYWNlIHRvIGV4ZXJjaXNlCistLSAiUlBSIHVuZGVyIFJlY3Vyc2l2ZSBV bmlvbiIpLgorLS0KKy0tIFhYWDogV2hldGhlciB0aGlzIGNhc2UgZmFsbHMgdW5kZXIgdGhlIElT Ty9JRUMgOTA3NS0yIDQuMTguNSAvCistLSA2LjE3LjUgcHJvaGliaXRpb24gaXMgbm90IHNvbWV0 aGluZyBJIGNhbiBqdWRnZS4gIElmIHRoaXMgY2FzZQorLS0gaXMgbm90IHByb2hpYml0ZWQsIHRo ZSBvcGVuIHF1ZXN0aW9uIGlzIHdoZXRoZXIgYSBxdWVyeSB0aGF0CistLSBkb2VzIHRyaWdnZXIg dGhlIHByb2hpYml0aW9uIGNhbiBiZSBjb25zdHJ1Y3RlZCBhdCBhbGwuCistLSBXaGV0aGVyIHRv IHByb2hpYml0IHRoaXMgY2FzZSBpcyBsZWZ0IHRvIHRoZSBjb21tdW5pdHkuCistLSBQbGFuOiBS ZWN1cnNpdmUgVW5pb24gd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBvbiB0aGUgYmFzZSBsZWcgYW5k CistLSB0aGUgV29ya1RhYmxlIFNjYW4gb24gdGhlIHJlY3Vyc2l2ZSBsZWcuCitFWFBMQUlOIChD T1NUUyBPRkYpCitXSVRIIFJFQ1VSU0lWRSBzZXEgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBC IEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICBVTklPTiBBTEwKKyAgICBTRUxFQ1QgaWQgKyAxMDAs IHZhbCwgY250IEZST00gc2VxIFdIRVJFIGlkIDwgMworKQorU0VMRUNUIGlkLCB2YWwsIGNudCBG Uk9NIHNlcSBPUkRFUiBCWSBpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTb3J0CisgICBTb3J0IEtleTogc2VxLmlkCisgICBDVEUgc2VxCisgICAgIC0+ICBSZWN1 cnNpdmUgVW5pb24KKyAgICAgICAgICAgLT4gIFdpbmRvd0FnZworICAgICAgICAgICAgICAgICBX aW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEg YisKKyAgICAgICAgICAgICAgICAgLT4gIFNvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgU29y dCBLZXk6IHJwcl9pbnRlZy5pZAorICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX2ludGVnCisgICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBvbiBzZXEgc2VxXzEK KyAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQorICAgLT4gIENURSBTY2FuIG9uIHNl cQorKDEzIHJvd3MpCisKKy0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRyaWJ1dGVzIHRoZSBS UFIgbWF0Y2ggY291bnRzOyB0aGUKKy0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFnYXRlcyB0aG9zZSBj b3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisgICAgU0VM RUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZwor ICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAg ICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFMTAorICAgIFNF TEVDVCBpZCArIDEwMCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCispCitTRUxFQ1Qg aWQsIHZhbCwgY250IEZST00gc2VxIE9SREVSIEJZIGlkOworIGlkICB8IHZhbCB8IGNudCAKKy0t LS0tKy0tLS0tKy0tLS0tCisgICAxIHwgIDEwIHwgICAyCisgICAyIHwgIDIwIHwgICAwCisgICAz IHwgIDE1IHwgICAyCisgICA0IHwgIDI1IHwgICAwCisgICA1IHwgICA1IHwgICAzCisgICA2IHwg IDMwIHwgICAwCisgICA3IHwgIDM1IHwgICAwCisgICA4IHwgIDIwIHwgICAzCisgICA5IHwgIDQw IHwgICAwCisgIDEwIHwgIDQ1IHwgICAwCisgMTAxIHwgIDEwIHwgICAyCisgMTAyIHwgIDIwIHwg ICAwCisoMTIgcm93cykKKworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29ydAor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0 bHkgd2hlbiB0aGUgaW5wdXQKKy0tIHRvIFdpbmRvd0FnZyBhcnJpdmVzIHZpYSBhbiBpbmNyZW1l bnRhbCBzb3J0LiAgVGhlIGluZGV4IG9uIChpZCkKKy0tIHByb3ZpZGVzIHByZXNvcnRlZCBpbnB1 dCBmb3IgdGhlIGZpcnN0IE9SREVSIEJZIGtleSwgc28KKy0tICJPUkRFUiBCWSBpZCwgdmFsIiBs ZXRzIHRoZSBwbGFubmVyIHVzZSBJbmNyZW1lbnRhbCBTb3J0IHRvIG9yZGVyCistLSBvbmx5IG9u IHRoZSBzZWNvbmQga2V5LiAgVGhlIHBsYW4gbXVzdCBzaG93IEluY3JlbWVudGFsIFNvcnQKKy0t IGJlbG93IHRoZSBSUFIgV2luZG93QWdnLCBhbmQgUlBSIG11c3QgcHJvZHVjZSB0aGUgc2FtZSBw ZXItcm93CistLSBtYXRjaCBjb3VudHMgYXMgaXQgd291bGQgd2l0aCBhIHBsYWluIFNvcnQuCitD UkVBVEUgSU5ERVggcnByX2ludGVnX2lkX2lkeCBPTiBycHJfaW50ZWcgKGlkKTsKK1NFVCBlbmFi bGVfc2Vxc2NhbiA9IG9mZjsKKy0tIFBsYW46IFJQUiBXaW5kb3dBZ2cgYWJvdmUgYW4gSW5jcmVt ZW50YWwgU29ydCBhYm92ZSBhbiBJbmRleCBTY2FuLgorLS0gVGhlIEluY3JlbWVudGFsIFNvcnQg ZGVjbGFyZXMgIlByZXNvcnRlZCBLZXk6IGlkIiBhbmQgc29ydHMgb25seQorLS0gb24gdmFsIHdp dGhpbiBlYWNoIGlkIGdyb3VwLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQsIHZhbAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJF Vih2YWwpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkLCB2YWwg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0 dGVybjogYSBiKworICAgLT4gIEluY3JlbWVudGFsIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBp ZCwgdmFsCisgICAgICAgICBQcmVzb3J0ZWQgS2V5OiBpZAorICAgICAgICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgcnByX2ludGVnX2lkX2lkeCBvbiBycHJfaW50ZWcKKyg3IHJvd3MpCisKKy0tIFJl c3VsdDogUlBSIG92ZXIgdGhlIGluY3JlbWVudGFsbHkgc29ydGVkIHN0cmVhbSBwcm9kdWNlcyBt YXRjaAorLS0gY291bnRzIHBlciByb3cuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCwgdmFsCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBC WSBpZCwgdmFsOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMgorICA0IHwgIDI1IHwgICAw CisgIDUgfCAgIDUgfCAgIDMKKyAgNiB8ICAzMCB8ICAgMAorICA3IHwgIDM1IHwgICAwCisgIDgg fCAgMjAgfCAgIDMKKyAgOSB8ICA0MCB8ICAgMAorIDEwIHwgIDQ1IHwgICAwCisoMTAgcm93cykK KworUkVTRVQgZW5hYmxlX3NlcXNjYW47CitEUk9QIElOREVYIHJwcl9pbnRlZ19pZF9pZHg7Cist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJTkUKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gUmVjb3JkcyB0aGUgY3VycmVudCBiZWhhdmlvdXI6IERFRklORSB0b2RheSBhY2NlcHRzIHZv bGF0aWxlCistLSBmdW5jdGlvbnMgc3VjaCBhcyByYW5kb20oKSBhbmQgdGhlIHF1ZXJ5IHJ1bnMg dG8gY29tcGxldGlvbi4KKy0tIFRvIGtlZXAgdGhlIGV4cGVjdGVkIG91dHB1dCBkZXRlcm1pbmlz dGljIHRoZSBwcmVkaWNhdGUgdXNlcworLS0gInJhbmRvbSgpID49IDAuMCIsIHdoaWNoIGlzIHN0 cnVjdHVyYWxseSBlcXVpdmFsZW50IHRvIFRSVUUgYW5kCistLSB0aGVyZWZvcmUgZG9lcyBub3Qg cGVydHVyYiB0aGUgbWF0Y2ggcmVzdWx0LiAgVGhlIGludGVyZXN0aW5nCistLSBwcm9wZXJ0eSBp cyB0aGF0IHZvbGF0aWxlIGludm9jYXRpb24gZG9lcyBub3QgY3Jhc2ggb3Igc2hvcnQtCistLSBj aXJjdWl0IHBhdHRlcm4gbWF0Y2hpbmcuCistLQorLS0gWFhYOiB2b2xhdGlsZSBmdW5jdGlvbnMg aW4gREVGSU5FIGFyZSBzbGF0ZWQgdG8gYmUgcmVqZWN0ZWQgYXQKKy0tIHBhcnNlIHRpbWUuICBV bmRlciBSUFIncyBORkEgZW5naW5lIHRoZSBzYW1lIHJvdydzIERFRklORQorLS0gcHJlZGljYXRl IG1heSBiZSBldmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMgKGJhY2t0cmFja2luZywKKy0tIFBSRVYv TkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB0cnVseSB2b2xhdGlsZSByZXN1bHQgd291bGQgbWFrZQor LS0gcGF0dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFdoZW4gdGhlIHByb2hpYml0 aW9uIGxhbmRzLAorLS0gdGhpcyB0ZXN0IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhbiBlcnJvci1j YXNlIHRlc3QgdGhhdCBleHBlY3RzCistLSByYW5kb20oKSBpbiBERUZJTkUgdG8gYmUgcmVqZWN0 ZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50 ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5F IEIgQVMgdmFsID4gUFJFVih2YWwpIEFORCByYW5kb20oKSA+PSAwLjApCitPUkRFUiBCWSBpZDsK KyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAy IHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgICA1 IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAzNSB8ICAgMAorICA4IHwgIDIwIHwgICAz CisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAgMAorKDEwIHJvd3MpCisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQjEwLiBSUFIgKyBDb3JyZWxhdGVkIHN1YnF1ZXJ5IGluIFdIRVJFCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZl cmlmeSB0aGF0IGFuIFJQUiB3aW5kb3cgcGxhY2VkIGluc2lkZSBhIGNvcnJlbGF0ZWQgc2NhbGFy CistLSBzdWJxdWVyeSBpcyBleGVjdXRlZCBvbmNlIHBlciBvdXRlciByb3cuICBERUZJTkUgc3Rp bGwgcmVmZXJlbmNlcworLS0gb25seSBsb2NhbCBjb2x1bW5zIChxdWFsaWZpZWQgcmVmcyBmcm9t IHRoZSBvdXRlciBxdWVyeSBhcmUgbm90CistLSBzdXBwb3J0ZWQgaW4gREVGSU5FKTsgdGhlIGNv cnJlbGF0aW9uIGxpdmVzIGluIHRoZSBzdWJxdWVyeSdzCistLSBXSEVSRSBjbGF1c2UgYXMgImku aWQgPD0gby5pZCIuICBUaGUgcGxhbiBtdXN0IHNob3cgYSBTdWJQbGFuCistLSBhdHRhY2hlZCB0 byB0aGUgb3V0ZXIgc2Nhbiwgd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBkcml2ZW4gYnkgYQorLS0g cGVyLXJvdyBzY2FuIGZpbHRlciBjYXJyeWluZyB0aGUgY29ycmVsYXRpb24gcHJlZGljYXRlLgor LS0gUGxhbjogU3ViUGxhbiBhdHRhY2hlZCB0byB0aGUgb3V0ZXIgU2VxIFNjYW47IHRoZSBpbm5l ciBzY2FuCistLSBjYXJyaWVzICJGaWx0ZXI6IChpZCA8PSBvLmlkKSIsIGNvbmZpcm1pbmcgdGhl IGNvcnJlbGF0aW9uIGlzCistLSBldmFsdWF0ZWQgcGVyIG91dGVyIHJvdy4KK0VYUExBSU4gKENP U1RTIE9GRikKK1NFTEVDVCBvLmlkLCBvLnZhbCwKKyAgICAoU0VMRUNUIGNvdW50KCopIE9WRVIg dworICAgICBGUk9NIHJwcl9pbnRlZyBpCisgICAgIFdIRVJFIGkuaWQgPD0gby5pZAorICAgICBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAg ICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICAgT1JERVIgQlkgaWQKKyAgICAg TElNSVQgMSkgQVMgZmlyc3RfY250CitGUk9NIHJwcl9pbnRlZyBvCitPUkRFUiBCWSBvLmlkOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgU29ydCBLZXk6IG8u aWQKKyAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcgbworICAgICAgICAgU3ViUGxhbiBleHBy XzEKKyAgICAgICAgICAgLT4gIExpbWl0CisgICAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cK KyAgICAgICAgICAgICAgICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpLmlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgICAgICAgICAg ICAgICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgICAgICAgICAgICAgICAtPiAgU29y dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogaS5pZAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIGkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPD0gby5pZCkKKygxMiByb3dz KQorCistLSBSZXN1bHQ6IGVhY2ggb3V0ZXIgcm93IHJlY2VpdmVzIHRoZSBmaXJzdF9jbnQgZnJv bSBpdHMgb3duCistLSBjb3JyZWxhdGVkIFJQUiBzdWJxdWVyeS4KK1NFTEVDVCBvLmlkLCBvLnZh bCwKKyAgICAoU0VMRUNUIGNvdW50KCopIE9WRVIgdworICAgICBGUk9NIHJwcl9pbnRlZyBpCisg ICAgIFdIRVJFIGkuaWQgPD0gby5pZAorICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYo dmFsKSkKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgTElNSVQgMSkgQVMgZmlyc3RfY250CitGUk9N IHJwcl9pbnRlZyBvCitPUkRFUiBCWSBvLmlkOworIGlkIHwgdmFsIHwgZmlyc3RfY250IAorLS0t LSstLS0tLSstLS0tLS0tLS0tLQorICAxIHwgIDEwIHwgICAgICAgICAwCisgIDIgfCAgMjAgfCAg ICAgICAgIDIKKyAgMyB8ICAxNSB8ICAgICAgICAgMgorICA0IHwgIDI1IHwgICAgICAgICAyCisg IDUgfCAgIDUgfCAgICAgICAgIDIKKyAgNiB8ICAzMCB8ICAgICAgICAgMgorICA3IHwgIDM1IHwg ICAgICAgICAyCisgIDggfCAgMjAgfCAgICAgICAgIDIKKyAgOSB8ICA0MCB8ICAgICAgICAgMgor IDEwIHwgIDQ1IHwgICAgICAgICAyCisoMTAgcm93cykKKworLS0gQ2xlYW51cAorRFJPUCBUQUJM RSBycHJfaW50ZWc7CitEUk9QIFRBQkxFIHJwcl9pbnRlZzI7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZQppbmRleCA2YTJkMTlkNDQxMC4uZGJmYTNlOGYyY2MgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQpAQCAtMTA3LDcgKzEwNyw3IEBAIHRlc3Q6IHNlbGVjdF92aWV3cyBwb3J0 YWxzX3AyIGZvcmVpZ25fa2V5IGNsdXN0ZXIgZGVwZW5kZW5jeSBndWMgYml0bWFwb3BzIGNvbWJv CiAjIC0tLS0tLS0tLS0KICMgUm93IFBhdHRlcm4gUmVjb2duaXRpb24gdGVzdHMKICMgLS0tLS0t LS0tLQotdGVzdDogcnByIHJwcl9iYXNlIHJwcl9leHBsYWluIHJwcl9uZmEKK3Rlc3Q6IHJwciBy cHJfYmFzZSBycHJfZXhwbGFpbiBycHJfbmZhIHJwcl9pbnRlZ3JhdGlvbgogCiAjIC0tLS0tLS0t LS0KICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cyAoSlNPTiByZWxhdGVkKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9pbnRlZ3JhdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjdkNzBmNWU0Yjk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvcnByX2ludGVncmF0aW9uLnNxbApAQCAtMCwwICsxLDkzNCBAQAorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBSUFIgSW50ZWdyYXRpb24gVGVzdHMKKy0tIFBsYW5uZXIgb3B0aW1pemF0aW9uIGlu dGVyYWN0aW9uIHRlc3RzIGZvciBSb3cgUGF0dGVybiBSZWNvZ25pdGlvbgorLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLQor LS0gVmVyaWZpZXMgdGhhdCBlYWNoIHBsYW5uZXIgb3B0aW1pemF0aW9uIGNvcnJlY3RseSBoYW5k bGVzIFJQUiB3aW5kb3dzLgorLS0gRXZlbiBpZiBpbmRpdmlkdWFsIG9wdGltaXphdGlvbnMgYXJl IHRlc3RlZCBlbHNld2hlcmUsIHRoaXMgZmlsZQorLS0gcHJvdmlkZXMgYSBzaW5nbGUgY2hlY2tw b2ludCBmb3IgYWxsIHBsYW5uZXIvUlBSIGludGVyYWN0aW9ucy4KKy0tCistLSBBLiBQbGFubmVy IE9wdGltaXphdGlvbiBQcm90ZWN0aW9uIFRlc3RzCistLSAgICBBMS4gRnJhbWUgb3B0aW1pemF0 aW9uIGJ5cGFzcworLS0gICAgQTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlwYXNzCistLSAg ICBBMy4gV2luZG93IGRlZHVwIHByZXZlbnRpb24gKFJQUiB2cyBub24tUlBSKQorLS0gICAgQTQu IFdpbmRvdyBkZWR1cCBwcmV2ZW50aW9uIChzYW1lIFBBVFRFUk4sIGRpZmZlcmVudCBERUZJTkUp CistLSAgICBBNS4gVW51c2VkIHdpbmRvdyByZW1vdmFsIHByZXZlbnRpb24KKy0tICAgIEE2LiBJ bnZlcnNlIHRyYW5zaXRpb24gYnlwYXNzCistLSAgICBBNy4gQ29zdCBlc3RpbWF0aW9uIFJQUiBh d2FyZW5lc3MKKy0tICAgIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRpb24KKy0tICAg IEE5LiBERUZJTkUgZXhwcmVzc2lvbiBub24tcHJvcGFnYXRpb24KKy0tICAgIEExMC4gUlBSICsg TElNSVQKKy0tCistLSBCLiBJbnRlZ3JhdGlvbiBTY2VuYXJpbyBUZXN0cworLS0gICAgQjEuIFJQ UiArIENURQorLS0gICAgQjIuIFJQUiArIEpPSU4KKy0tICAgIEIzLiBSUFIgKyBTZXQgb3BlcmF0 aW9ucworLS0gICAgQjQuIFJQUiArIFByZXBhcmVkIHN0YXRlbWVudHMKKy0tICAgIEI1LiBSUFIg KyBQYXJ0aXRpb25lZCB0YWJsZQorLS0gICAgQjYuIFJQUiArIExBVEVSQUwKKy0tICAgIEI3LiBS UFIgKyBSZWN1cnNpdmUgQ1RFCistLSAgICBCOC4gUlBSICsgSW5jcmVtZW50YWwgc29ydAorLS0g ICAgQjkuIFJQUiArIFZvbGF0aWxlIGZ1bmN0aW9uIGluIERFRklORQorLS0gICAgQjEwLiBSUFIg KyBDb3JyZWxhdGVkIHN1YnF1ZXJ5CistLQorCitDUkVBVEUgVEFCTEUgcnByX2ludGVnIChpZCBJ TlQsIHZhbCBJTlQpOworSU5TRVJUIElOVE8gcnByX2ludGVnIFZBTFVFUworICAgICgxLCAxMCks ICgyLCAyMCksICgzLCAxNSksICg0LCAyNSksICg1LCA1KSwKKyAgICAoNiwgMzApLCAoNywgMzUp LCAoOCwgMjApLCAoOSwgNDApLCAoMTAsIDQ1KTsKKworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBBMS4gRnJhbWUgb3B0 aW1pemF0aW9uIGJ5cGFzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CistLSBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcygpIG11 c3Qgbm90IGFwcGx5IGZyYW1lIG9wdGltaXphdGlvbiB0byBSUFIgd2luZG93cy4KKy0tIE5vbi1S UFIgY2FzZTogZnJhbWUgY2FuIGJlIG9wdGltaXplZCAoUkFOR0UgLT4gUk9XUyBjb252ZXJzaW9u LCBldGMuKS4KKy0tIFJQUiBjYXNlOiBmcmFtZSBtdXN0IHN0YXkgYXMgc3BlY2lmaWVkIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5ECistLSBVTkJPVU5ERUQgRk9MTE9XSU5HKS4KKworLS0g Tm9uLVJQUiB3aW5kb3cgd2l0aCBkZWZhdWx0IGZyYW1lIC0+IGZyYW1lIG9wdGltaXphdGlvbiBh cHBsaWVkCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00g cnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQpOworCistLSBSUFIgd2luZG93IC0+ IGZyYW1lIG9wdGltaXphdGlvbiBtdXN0IE5PVCBjaGFuZ2UgdGhlIGZyYW1lCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+ IFBSRVYodmFsKSk7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTIuIFJ1biBjb25kaXRpb24gcHVzaGRvd24gYnlw YXNzCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGZpbmRfd2luZG93X3J1bl9jb25kaXRpb25zKCkg ZG9lcyBub3QgcHVzaCBhIG1vbm90b25pYworLS0gZmlsdGVyIGRvd24gYXMgYSBSdW4gQ29uZGl0 aW9uIG9uIFJQUiB3aW5kb3dzLiAgUlBSIG1hdGNoIGNvdW50cyBhcmUKKy0tIGRldGVybWluZWQg YnkgcGF0dGVybiBtYXRjaGluZyByYXRoZXIgdGhhbiBieSBhIG1vbm90b25pYworLS0gYWNjdW11 bGF0aW9uIG92ZXIgdGhlIGZyYW1lLCBzbyBhIGZpbHRlciBzdWNoIGFzICJjbnQgPiAwIiBjYW5u b3QgYmUKKy0tIHVzZWQgdG8gc3RvcCBldmFsdWF0aW5nIHRoZSB3aW5kb3cgZnVuY3Rpb24gZWFy bHkuCisKKy0tIE5vbi1SUFIgYmFzZWxpbmU6IHRoZSBmaWx0ZXIgaXMgZXhwZWN0ZWQgdG8gYXBw ZWFyIGFzIGEgUnVuIENvbmRpdGlvbi4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCAqIEZS T00gKAorICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50 ZWcKKyAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorKSB0IFdIRVJFIGNudCA+IDA7CisK Ky0tIFJQUiBjYXNlOiB0aGUgZmlsdGVyIG11c3QgYXBwZWFyIGFzIGEgRmlsdGVyIGFib3ZlIHRo ZSBXaW5kb3dBZ2csCistLSBub3QgYXMgYSBSdW4gQ29uZGl0aW9uLgorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK KyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAg ICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQor KSB0IFdIRVJFIGNudCA+IDA7CisKKy0tIFZlcmlmeSB0aGF0IHRoZSBSUFIgcXVlcnkgc3RpbGwg cmV0dXJucyBldmVyeSByb3cgd2hvc2UgbWF0Y2ggY291bnQgaXMKKy0tIGdyZWF0ZXIgdGhhbiB6 ZXJvLCBjb25maXJtaW5nIHRoZSBmaWx0ZXIgaXMgZXZhbHVhdGVkIGFib3ZlIHRoZQorLS0gV2lu ZG93QWdnIHJhdGhlciB0aGFuIGN1dHRpbmcgb2ZmIHBhdHRlcm4gbWF0Y2hpbmcgcHJlbWF0dXJl bHkuCitTRUxFQ1QgKiBGUk9NICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk CisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVW KHZhbCkpCispIHQgV0hFUkUgY250ID4gMAorT1JERVIgQlkgaWQ7CisKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQTMu IFdpbmRvdyBkZWR1cCBwcmV2ZW50aW9uIChSUFIgdnMgbm9uLVJQUikKKy0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVy aWZ5IHRoYXQgUG9zdGdyZVNRTCBkb2VzIG5vdCBtZXJnZSBhbiBSUFIgd2luZG93IHdpdGggYSBu b24tUlBSCistLSB3aW5kb3cgZXZlbiB3aGVuIGJvdGggc2hhcmUgdGhlIHNhbWUgT1JERVIgQlkg YW5kIGZyYW1lCistLSBzcGVjaWZpY2F0aW9uLiAgUlBSIHBhdHRlcm4gbWF0Y2hpbmcgcHJvZHVj ZXMgcmVzdWx0cyB0aGF0IGFyZQorLS0gc2VtYW50aWNhbGx5IGRpZmZlcmVudCBmcm9tIGEgcGxh aW4gZnJhbWUtYmFzZWQgYWdncmVnYXRlLCBzbyB0aGUKKy0tIHR3byB3aW5kb3dzIG11c3QgcmVt YWluIGFzIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4gIElubGluZSB3aW5kb3cKKy0tIHNwZWNz IGFyZSB1c2VkIHRocm91Z2hvdXQgdGhpcyBzZWN0aW9uIGJlY2F1c2Ugb25seSBpbmxpbmUgd2lu ZG93cworLS0gYXJlIHN1YmplY3QgdG8gdGhlIGRlZHVwIHBhdGg7IGRpc3RpbmN0IG5hbWVkIHdp bmRvd3MgYXJlIGFsd2F5cworLS0ga2VwdCBzZXBhcmF0ZSByZWdhcmRsZXNzIG9mIGVxdWl2YWxl bmNlLgorCistLSBOb24tUlBSIGJhc2VsaW5lOiB0d28gaW5saW5lIHdpbmRvd3Mgd2l0aCBpZGVu dGljYWwgc3BlYyBhcmUKKy0tIGRlZHVwZWQgYnkgdGhlIHBsYW5uZXIgaW50byBhIHNpbmdsZSBX aW5kb3dBZ2cgbm9kZSwgY29uZmlybWluZworLS0gdGhhdCB0aGUgZGVkdXAgcGF0aCBpcyBhY3Rp dmUgZm9yIG5vbi1SUFIgd2luZG93cy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVAorICAg IGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVS IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpIEFTIHRvdGFsCitGUk9NIHJwcl9pbnRlZzsKKworLS0gQW4gaW5saW5l IFJQUiB3aW5kb3cgYW5kIGFuIGlubGluZSBub24tUlBSIHdpbmRvdyBzaGFyZSB0aGUgc2FtZQor LS0gT1JERVIgQlkgYW5kIGZyYW1lIGJ1dCBtdXN0IHJlbWFpbiBhcyBkaXN0aW5jdCBXaW5kb3dB Z2cgbm9kZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QKKyAgICBjb3VudCgqKSBPVkVS IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVS IEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykgQVMgbm9ybWFsX2NudAorRlJPTSBycHJfaW50ZWc7CisKKy0tIFZlcmlmeSB0aGF0 IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBlbmRlbnQgY291bnRzIHBlciByb3csCistLSBj b25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2VkIGludG8gYSBzaW5nbGUgV2luZG93QWdnLgor U0VMRUNUCisgICAgaWQsIHZhbCwKKyAgICBjb3VudCgqKSBPVkVSIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KSBBUyBycHJfY250LAorICAgIGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykgQVMgbm9ybWFs X2NudAorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZIGlkOworCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE0LiBXaW5k b3cgZGVkdXAgcHJldmVudGlvbiAoc2FtZSBQQVRURVJOLCBkaWZmZXJlbnQgREVGSU5FKQorLS0g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLSBWZXJpZnkgdGhhdCBpbmxpbmUtd2luZG93IGRlZHVwIGRvZXMgbm90IG1lcmdlIHR3 byBSUFIgd2luZG93cworLS0gdGhhdCBzaGFyZSB0aGUgc2FtZSBQQVRURVJOIHN0cnVjdHVyZSBi dXQgaGF2ZSBkaWZmZXJlbnQgREVGSU5FCistLSBjb25kaXRpb25zLiAgRXZlbiB0aG91Z2ggdGhl IE9SREVSIEJZLCBmcmFtZSwgYW5kIFBBVFRFUk4gY29pbmNpZGUsCistLSB0aGUgZGlmZmVyaW5n IERFRklORSBleHByZXNzaW9ucyBjbGFzc2lmeSByb3dzIGRpZmZlcmVudGx5IGFuZAorLS0gbXVz dCB0aGVyZWZvcmUgeWllbGQgdHdvIHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4gIElubGluZSBz cGVjcworLS0gYXJlIHVzZWQgaGVyZSBiZWNhdXNlIGRlZHVwIG9ubHkgYXBwbGllcyB0byBpbmxp bmUgd2luZG93cy4KKworLS0gQmFzZWxpbmU6IHR3byBpbmxpbmUgUlBSIHdpbmRvd3MgdGhhdCBh cmUgc3RydWN0dXJhbGx5IGlkZW50aWNhbAorLS0gKHNhbWUgT1JERVIgQlksIGZyYW1lLCBQQVRU RVJOLCBhbmQgREVGSU5FKSBhcmUgZGVkdXBlZCBieSB0aGUKKy0tIHBhcnNlciBpbnRvIGEgc2lu Z2xlIFdpbmRvd0FnZyBub2RlLCBjb25maXJtaW5nIHRoYXQgcGFyc2VyLWxldmVsCistLSBkZWR1 cCBpcyBhY3RpdmUgZm9yIFJQUiB3aW5kb3dzIHdob3NlIERFRklORSBtYXRjaGVzLgorRVhQTEFJ TiAoQ09TVFMgT0ZGKQorU0VMRUNUCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAg ICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFs KSkgQVMgY250LAorICAgIHN1bSh2YWwpICBPVkVSIChPUkRFUiBCWSBpZAorICAgICAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFU VEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKSBBUyB0b3Rh bAorRlJPTSBycHJfaW50ZWc7CisKKy0tIFR3byBpbmxpbmUgUlBSIHdpbmRvd3Mgd2l0aCB0aGUg c2FtZSBQQVRURVJOIGJ1dCBvcHBvc2l0ZSBERUZJTkUKKy0tIGNvbmRpdGlvbnMgbXVzdCByZW1h aW4gYXMgc2VwYXJhdGUgV2luZG93QWdnIG5vZGVzLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUCisgICAgY291bnQoKikgT1ZFUiAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEg QispCisgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkgQVMgY250X3VwLAorICAg IGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAg ICAgICBERUZJTkUgQiBBUyB2YWwgPCBQUkVWKHZhbCkpIEFTIGNudF9kb3duCitGUk9NIHJwcl9p bnRlZzsKKworLS0gVmVyaWZ5IHRoYXQgdGhlIHR3byB3aW5kb3dzIHJldHVybiBkaWZmZXJlbnQg Y291bnRzIHBlciByb3csCistLSBjb25maXJtaW5nIHRoZSBERUZJTkUgY29uZGl0aW9ucyB3ZXJl IG5vdCBjb2xsYXBzZWQgYnkgZGVkdXAuCitTRUxFQ1QKKyAgICBpZCwgdmFsLAorICAgIGNvdW50 KCopIE9WRVIgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpIEFTIGNudF91cCwKKyAgICBjb3VudCgqKSBPVkVS IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsIDwgUFJFVih2YWwpKSBBUyBjbnRfZG93bgorRlJPTSBycHJfaW50ZWcKK09SREVSIEJZ IGlkOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIEE1LiBVbnVzZWQgd2luZG93IHJlbW92YWwgcHJldmVudGlvbgor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWZXJpZnkgdGhhdCByZW1vdmVfdW51c2VkX3N1YnF1ZXJ5X291dHB1dHMoKSBk b2VzIG5vdCBkcm9wIGFuIFJQUgorLS0gd2luZG93IGZ1bmN0aW9uIGV2ZW4gd2hlbiB0aGUgb3V0 ZXIgcXVlcnkgZG9lcyBub3QgcmVmZXJlbmNlIGl0cworLS0gcmVzdWx0LiAgVGhlIFJQUiBXaW5k b3dBZ2cgbm9kZSBpcyByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyBwYXR0ZXJuCistLSBtYXRj aGluZywgc28gcmVtb3ZpbmcgdGhlIHdpbmRvdyBmdW5jdGlvbiB3b3VsZCBzaWxlbnRseSBza2lw IHRoZQorLS0gcGF0dGVybiBtYXRjaCBldmVuIHRob3VnaCB0aGUgc3Vycm91bmRpbmcgcXVlcnkg c3RpbGwgZGVwZW5kcyBvbgorLS0gUlBSIHNlbWFudGljcy4KKworLS0gVGhlIG91dGVyIHF1ZXJ5 IGlnbm9yZXMgdGhlIHBlci1yb3cgd2luZG93IHJlc3VsdCwgeWV0IHBhdHRlcm4KKy0tIG1hdGNo aW5nIG11c3Qgc3RpbGwgZXhlY3V0ZS4gIFRoZSBwbGFuIG11c3Qgc3RpbGwgY29udGFpbiBhCist LSBXaW5kb3dBZ2cgbm9kZSBiZWxvdyB0aGUgb3V0ZXIgQWdncmVnYXRlOyBpZiB0aGUgd2luZG93 IHdlcmUKKy0tIHJlbW92ZWQsIG9ubHkgQWdncmVnYXRlICsgU2VxIFNjYW4gd291bGQgYXBwZWFy LgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAg ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg ICAgICBQQVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQor KSB0OworCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIg dyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTICgKKyAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEr KQorICAgICAgICBERUZJTkUgQSBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHQ7CisKKy0tIFRoZSBE RUZJTkUgZXhwcmVzc2lvbiByZWZlcmVuY2VzIFBSRVYodmFsKSwgc28gdGhlIHdpbmRvdyBtdXN0 IGJlCistLSBwcmVzZXJ2ZWQgZXZlbiBpZiB0aGUgb3V0ZXIgcXVlcnkgb25seSBhZ2dyZWdhdGVz IG92ZXIgdGhlIGNvdW50LgorLS0gVGhlIHBsYW4gbXVzdCBzdGlsbCBjb250YWluIGEgV2luZG93 QWdnIHdpdGggdGhlIFBBVFRFUk4vREVGSU5FCistLSBpbnRhY3QuCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikg T1ZFUiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQ QVRURVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0Owor CitTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZF UiB3IEFTIGMgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRU RVJOIChBKykKKyAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gUFJFVih2YWwpKQorKSB0OworCist LSBUaGUgREVGSU5FIGV4cHJlc3Npb24gY29udGFpbnMgbm8gbmF2aWdhdGlvbiwgYnV0IHRoZSBS UFIgd2luZG93CistLSBtdXN0IHN0aWxsIGJlIHByZXNlcnZlZCBiZWNhdXNlIHRoZSBtYXRjaCBz dHJ1Y3R1cmUgaXRzZWxmIGFmZmVjdHMKKy0tIHRoZSBjb3VudC4gIFRoZSBwbGFuIG11c3QgcmV0 YWluIHRoZSBXaW5kb3dBZ2cuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgY291bnQoKiks IHN1bShjKSBGUk9NICgKKyAgICBTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEFTIGMgRlJPTSBycHJf aW50ZWcKKyAgICBXSU5ET1cgdyBBUyAoCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBKykKKyAgICAgICAg REVGSU5FIEEgQVMgVFJVRSkKKykgdDsKKworU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAo CisgICAgU0VMRUNUIGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCisgICAgV0lO RE9XIHcgQVMgKAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSspCisgICAgICAgIERFRklORSBBIEFTIFRS VUUpCispIHQ7CisKKy0tIFhYWDogInZhbCIgaXMgbm9uLXJlc2p1bmsgaW4gdGhlIHN1YnF1ZXJ5 IG91dHB1dCBhbmQgaXMgbm90CistLSByZWZlcmVuY2VkIGJ5IHRoZSBvdXRlciBxdWVyeS4gIFdp dGhvdXQgYSBndWFyZCwKKy0tIHJlbW92ZV91bnVzZWRfc3VicXVlcnlfb3V0cHV0cygpIHdvdWxk IHJlcGxhY2UgaXQgd2l0aCBOVUxMIGluCistLSB0aGUgc3VicXVlcnkgb3V0cHV0LCBhbmQgdGhh dCByZXBsYWNlbWVudCBwcm9wYWdhdGVzIHRvIHRoZQorLS0gc2NhbidzIHRhcmdldGxpc3QgLS0g REVGSU5FIHdvdWxkIHRoZW4gZXZhbHVhdGUgd2l0aCBOVUxMCistLSBpbnB1dHMuICBUaGUgdGFy Z2V0bGlzdCBoYXMgbm8gd2F5IHRvIGRpc3Rpbmd1aXNoICJleHBvc2VkIHRvCistLSB0aGUgb3V0 ZXIgcXVlcnkiIGZyb20gInJlZmVyZW5jZWQgb25seSBieSBERUZJTkUiLCBzbyB0aGUKKy0tIG9w dGltaXphdGlvbiBjYW5ub3QgYmUgYXBwbGllZCBzZWxlY3RpdmVseS4gIFRoZSBjb2x1bW4gZ3Vh cmQKKy0tIGluIGFsbHBhdGhzLmMgYmxvY2tzIHRoaXMgcmVwbGFjZW1lbnQgZm9yIGFueSBjb2x1 bW4gcmVmZXJlbmNlZAorLS0gYnkgYW4gUlBSIERFRklORSBjbGF1c2UsIGtlZXBpbmcgdGhlIFdp bmRvd0FnZyB3aXRoIERFRklORQorLS0gYWN0aXZlIGluIHRoZSBwbGFuLgorRVhQTEFJTiAoQ09T VFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZST00gKAorICAgIFNFTEVDVCB2YWwsIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KQorKSB0OworCitTRUxFQ1QgY291bnQoKikgRlJPTSAoCisgICAgU0VMRUNUIHZhbCwgY291bnQo KikgT1ZFUiB3IEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpCispIHQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gQTYuIEludmVyc2UgdHJhbnNpdGlvbiBieXBhc3MKKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBSIHdpbmRvd3MgZG8gbm90IHVzZSB0aGUgbW92aW5nIGFn Z3JlZ2F0ZSAoaW52ZXJzZQorLS0gdHJhbnNpdGlvbikgb3B0aW1pemF0aW9uLiAgTW92aW5nIGFn Z3JlZ2F0ZXMgbWFpbnRhaW4gc3RhdGUgYnkKKy0tIGFkZGluZyBhcnJpdmluZyByb3dzIGFuZCBz dWJ0cmFjdGluZyBsZWF2aW5nIHJvd3MsIGJ1dCBhbiBSUFIKKy0tIHJlZHVjZWQgZnJhbWUgaXMg bm90IGEgc2xpZGluZyB3aW5kb3c7IHRoZSBzZXQgb2Ygcm93cyBpbmNsdWRlZCBpbgorLS0gdGhl IGZyYW1lIGlzIGRldGVybWluZWQgYnkgcGF0dGVybiBtYXRjaGluZyBhbmQgY2Fubm90IGJlIGRl cml2ZWQKKy0tIGluY3JlbWVudGFsbHkgZnJvbSB0aGUgcHJldmlvdXMgZnJhbWUuCisKKy0tIHN1 bSgpIHdvdWxkIG5vcm1hbGx5IGJlIGVsaWdpYmxlIGZvciB0aGUgbW92aW5nIGFnZ3JlZ2F0ZQor LS0gb3B0aW1pemF0aW9uOyB1bmRlciBSUFIgaXQgbXVzdCBiZSBjb21wdXRlZCBmcm9tIHNjcmF0 Y2ggb3ZlciBlYWNoCistLSByZWR1Y2VkIGZyYW1lLCBhbmQgdGhlIHJldHVybmVkIHZhbHVlcyBt dXN0IG1hdGNoIHRoZSBwYXR0ZXJuLgorLS0gTm90ZTogaW52ZXJzZS10cmFuc2l0aW9uIHNlbGVj dGlvbiBpcyBub3QgZXhwb3NlZCBpbiB0aGUgcGxhbiwgc28KKy0tIHRoZXJlIGlzIG5vIGRpcmVj dCBFWFBMQUlOIGFzc2VydGlvbiBmb3IgaXQuICBUaGUgc3RydWN0dXJhbAorLS0gZ3VhcmFudGVl IGlzIHRoYXQgUlBSIHVzZXMgaXRzIG93biBuYXZpZ2F0aW9uIG1hcmssIGRpc3RpbmN0IGZyb20K Ky0tIHRoZSBtb3ZpbmctYWdncmVnYXRlIG1hcmssIHNvIHRoZSBpbnZlcnNlLXRyYW5zaXRpb24g cGF0aCBpcworLS0gbmV2ZXIgcmVhY2hlZCBvbiB0aGUgUlBSIHNpZGUuICBUaGlzIHRlc3QgdmVy aWZpZXMgdGhhdAorLS0gc2VwYXJhdGlvbiBpbmRpcmVjdGx5OiBpZiBpbnZlcnNlIHRyYW5zaXRp b24gbGVha2VkIGludG8gdGhlIFJQUgorLS0gcGF0aCwgc3RhdGUgd291bGQgbWl4IGFjcm9zcyBt YXRjaCBib3VuZGFyaWVzIGFuZCBwYXR0ZXJuX3N1bQorLS0gd291bGQgZGl2ZXJnZSBmcm9tIHRo ZSBleHBlY3RlZCBvdXRwdXQsIGZhaWxpbmcgdGhlIHJlZ3Jlc3Npb24uCitTRUxFQ1QgaWQsIHZh bCwKKyAgICBzdW0odmFsKSBPVkVSIHcgQVMgcGF0dGVybl9zdW0KK0ZST00gcnByX2ludGVnCitX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkOworCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEE3LiBDb3N0IGVz dGltYXRpb24gUlBSIGF3YXJlbmVzcworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBjb3N0X3dpbmRvd2FnZygpIG11c3Qg YWNjb3VudCBmb3IgREVGSU5FIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBjb3N0LgorLS0gVmVyaWZ5 IFJQUiBXaW5kb3dBZ2cgY29zdCA+IG5vbi1SUFIgV2luZG93QWdnIGNvc3QuCisKK0NSRUFURSBG VU5DVElPTiBnZXRfd2luZG93YWdnX2Nvc3QocXVlcnkgdGV4dCkgUkVUVVJOUyBudW1lcmljIEFT ICQkCitERUNMQVJFCisgICAgcGxhbiBqc29uOworICAgIGNvc3QgbnVtZXJpYzsKK0JFR0lOCisg ICAgRVhFQ1VURSAnRVhQTEFJTiAoRk9STUFUIEpTT04pICcgfHwgcXVlcnkgSU5UTyBwbGFuOwor ICAgIGNvc3QgOj0gKHBsYW4tPjAtPidQbGFuJy0+PidUb3RhbCBDb3N0Jyk6Om51bWVyaWM7Cisg ICAgUkVUVVJOIGNvc3Q7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgZ2V0 X3dpbmRvd2FnZ19jb3N0KAorICAgICdTRUxFQ1QgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2lu dGVnCisgICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICAgICAgIFBBVFRFUk4gKEEg QisgQyspIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSwgQyBBUyB2YWwgPCBQUkVWKHZhbCkp JykKKyAgICA+CisgICAgZ2V0X3dpbmRvd2FnZ19jb3N0KAorICAgICdTRUxFQ1QgY291bnQoKikg T1ZFUiB3IEZST00gcnByX2ludGVnCisgICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpJykKKyAgICBBUyBy cHJfY29zdF9pc19oaWdoZXI7CisKK0RST1AgRlVOQ1RJT04gZ2V0X3dpbmRvd2FnZ19jb3N0KHRl eHQpOworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIEE4LiBTdWJxdWVyeSBmbGF0dGVuaW5nIHByZXZlbnRpb24KKy0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0gVmVyaWZ5IHRoYXQgYSBzdWJxdWVyeSBjb250YWluaW5nIGFuIFJQUiB3aW5kb3cg aXMgbm90IGZsYXR0ZW5lZAorLS0gaW50byB0aGUgb3V0ZXIgcXVlcnkuICBpc19zaW1wbGVfc3Vi cXVlcnkoKSBhbHJlYWR5IGJsb2NrcyBwdWxsdXAKKy0tIGZvciBzdWJxdWVyaWVzIHdpdGggd2lu ZG93IGZ1bmN0aW9ucyBpbiBnZW5lcmFsOyB0aGlzIHRlc3QgY29uZmlybXMKKy0tIHRoZSBydWxl IGNvbnRpbnVlcyB0byBhcHBseSB0byBSUFIgd2luZG93cywgc28gRVhQTEFJTiBtdXN0IHN0aWxs CistLSBzaG93IGEgU3VicXVlcnkgU2NhbiBhYm92ZSB0aGUgUlBSIFdpbmRvd0FnZy4KKworRVhQ TEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUICogRlJPTSAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwpKQorKSBzdWIKK1dIRVJFIGNudCA+IDA7CisKKy0tID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0g QTkuIERFRklORSBleHByZXNzaW9uIG5vbi1wcm9wYWdhdGlvbgorLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBWZXJpZnkg dGhhdCBERUZJTkUgZXhwcmVzc2lvbnMgYXJlIG5vdCBwcm9wYWdhdGVkIGludG8gdGhlCistLSB0 YXJnZXRsaXN0IG9mIGFueSB1cHBlciBXaW5kb3dBZ2cgbm9kZS4gIE9ubHkgdGhlIGNvbHVtbiBy ZWZlcmVuY2VzCistLSBjb25zdW1lZCBieSBERUZJTkUgc2hvdWxkIGJlIHBhc3NlZCB1cDsgdGhl IGZ1bGwgREVGSU5FIGV4cHJlc3Npb24KKy0tIGlzIG1lYW5pbmdmdWwgb25seSBpbnNpZGUgdGhl IFJQUiBXaW5kb3dBZ2cgdGhhdCBvd25zIGl0LgorLS0gRVhQTEFJTiBWRVJCT1NFIGlzIHRoZXJl Zm9yZSBleHBlY3RlZCB0byBzaG93IGEgY2xlYW4gdGFyZ2V0bGlzdCBvbgorLS0gdGhlIG91dGVy IFdpbmRvd0FnZywgd2l0aCBubyBERUZJTkUtZGVyaXZlZCBleHByZXNzaW9uIGxlYWtpbmcgaW4u CistLSBOb3RlOiBjb2x1bW5zIHJlZmVyZW5jZWQgYnkgREVGSU5FIChlLmcuLCAidmFsIikgbWF5 IGFwcGVhciBhcworLS0gcmVzanVuayBlbnRyaWVzIGluIHVwcGVyIFdpbmRvd0FnZyB0YXJnZXRs aXN0cyAtLSB0aGF0IGlzIGEKKy0tIGhhcm1sZXNzIGJ5cHJvZHVjdCBvZiB0aGUgY29sdW1uIGd1 YXJkJ3MgYnJvYWQgc2NvcGUgYW5kIGRvZXMgbm90CistLSBhZmZlY3QgY2xpZW50IG91dHB1dC4g IFRoZSBjbGFpbSBoZXJlIGlzIGxpbWl0ZWQgdG8gdGhlIGZ1bGwKKy0tIERFRklORSBib29sZWFu IGV4cHJlc3Npb24uCisKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVAorICAg IGNvdW50KCopIE9WRVIgd19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9y bWFsIEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAo T1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyk7CisKKy0t IEV4ZWN1dGluZyB0aGUgc2FtZSBxdWVyeSBzaG93cyB0aGUgY2xpZW50IHJlc3VsdCBpcyBsaW1p dGVkIHRvCistLSB0aGUgdHdvIHByb2plY3RlZCBjb2x1bW5zOyAiaWQiIGFuZCAidmFsIiB0aGF0 IGFwcGVhcmVkIGluIHRoZQorLS0gdXBwZXIgV2luZG93QWdnIE91dHB1dCBsaW5lIGFyZSByZXNq dW5rLW9ubHkgYW5kIGRvIG5vdCByZWFjaAorLS0gdGhlIGNsaWVudC4KK1NFTEVDVAorICAgIGNv dW50KCopIE9WRVIgd19ycHIgQVMgcnByX2NudCwKKyAgICBjb3VudCgqKSBPVkVSIHdfbm9ybWFs IEFTIG5vcm1hbF9jbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cKKyAgICB3X3JwciBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklORSBCIEFTIHZh bCA+IFBSRVYodmFsKSksCisgICAgd19ub3JtYWwgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKK09SREVSIEJZ IHJwcl9jbnQgREVTQywgbm9ybWFsX2NudCBERVNDOworCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEExMC4gUlBSICsg TElNSVQKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gTElNSVQgbXVzdCBub3QgaW50ZXJmZXJlIHdpdGggUlBSIHBhdHRl cm4gbWF0Y2hpbmcuICBUaGUgTGltaXQKKy0tIG5vZGUgbXVzdCBzaXQgYWJvdmUgdGhlIFdpbmRv d0FnZyBzbyB0aGF0IHBhdHRlcm4gbWF0Y2hpbmcgcnVucworLS0gb24gdGhlIGZ1bGwgcGFydGl0 aW9uIGZpcnN0OyB0aGUgcmVzdWx0IGlzIHRoZW4gYSBwcmVmaXggb2YgdGhlCistLSB1bi1MSU1J VGVkIG91dHB1dC4gIFB1c2hpbmcgTGltaXQgYmVsb3cgdGhlIFdpbmRvd0FnZyB3b3VsZAorLS0g dHJ1bmNhdGUgaW5wdXQgYmVmb3JlIG1hdGNoaW5nIGFuZCBzaWxlbnRseSBkcm9wIHZhbGlkIG1h dGNoZXMuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorTElNSVQgNTsK KworLS0gUmVmZXJlbmNlOiB1bi1MSU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRoZSBMSU1J VCA1IHJlc3VsdCBpcworLS0gY29tcGFyZWQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JERVIgQlkg aWQ7CisKKy0tIExJTUlUIDUgY2FzZTsgdGhlIGZpcnN0IGZpdmUgcm93cyBtdXN0IG1hdGNoIHRo ZSByZWZlcmVuY2UgYWJvdmUuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorTElNSVQgNTsKKworLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBCMS4gUlBSICsgQ1RFCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiB3aW5kb3cg ZW1iZWRkZWQgaW5zaWRlIGEgQ1RFIGJlaGF2ZXMgdGhlIHNhbWUgYXMKKy0tIGEgZGlyZWN0IFJQ UiBxdWVyeToKKy0tICAgKDEpIEEgc2luZ2xlLXJlZmVyZW5jZSBDVEUgaXMgaW5saW5lZCBieSB0 aGUgcGxhbm5lciBhbmQgeWllbGRzCistLSAgICAgICBwZXItcm93IHJlc3VsdHMgaWRlbnRpY2Fs IHRvIHRoZSBkaXJlY3QgUlBSIHF1ZXJ5LgorLS0gICAoMikgQSBtdWx0aS1yZWZlcmVuY2UgQ1RF IGlzIG1hdGVyaWFsaXplZCAoQ1RFIFNjYW4gYXBwZWFycyBpbgorLS0gICAgICAgdGhlIHBsYW4p IHNvIHBhdHRlcm4gbWF0Y2hpbmcgcnVucyBvbmNlLCBhbmQgZXZlcnkgcmVmZXJlbmNlCistLSAg ICAgICBvYnNlcnZlcyB0aGUgc2FtZSBtYXRjaCByZXN1bHRzLgorCistLSBCYXNlbGluZTogZGly ZWN0IFJQUiBwcm9kdWNlcyB0aGUgcGVyLXJvdyByZWZlcmVuY2Ugb3V0cHV0LgorU0VMRUNUIGlk LCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX2ludGVnCitXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBCIEFTIHZhbCA+IFBS RVYodmFsKSkKK09SREVSIEJZIGlkOworCistLSBTaW5nbGUtcmVmZXJlbmNlIENURTogcGxhbiBo YXMgbm8gIkNURSBycHJfcmVzdWx0IiBzY29wZSwgc2hvd2luZworLS0gdGhlIENURSB3YXMgaW5s aW5lZCBpbnRvIHRoZSBzdXJyb3VuZGluZyBxdWVyeS4KK0VYUExBSU4gKENPU1RTIE9GRikKK1dJ VEggcnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAor ICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2 YWwpKQorKQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIgQlkgaWQ7 CisKKy0tIFJlc3VsdCBtdXN0IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4KK1dJVEgg cnByX3Jlc3VsdCBBUyAoCisgICAgU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwp KQorKQorU0VMRUNUIGlkLCB2YWwsIGNudCBGUk9NIHJwcl9yZXN1bHQgT1JERVIgQlkgaWQ7CisK Ky0tIE11bHRpLXJlZmVyZW5jZSBDVEUgKHNlbGYtam9pbik6IHBsYW4gaGFzIGEgIkNURSBycHJf cmVzdWx0IiBzY29wZQorLS0gYW5kIENURSBTY2FuIG5vZGVzIG9uIGJvdGggc2lkZXMsIHNob3dp bmcgdGhlIENURSB3YXMgbWF0ZXJpYWxpemVkCistLSBhbmQgcGF0dGVybiBtYXRjaGluZyByYW4g b25seSBvbmNlLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorV0lUSCBycHJfcmVzdWx0IEFTICgKKyAg ICBTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2lu dGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispCitTRUxFQ1QgcjEuaWQs IHIxLmNudAorRlJPTSBycHJfcmVzdWx0IHIxCitKT0lOIHJwcl9yZXN1bHQgcjIgT04gcjEuaWQg PSByMi5pZCBBTkQgcjEuY250ID0gcjIuY250CitXSEVSRSByMS5jbnQgPiAwCitPUkRFUiBCWSBy MS5pZDsKKworLS0gUmVzdWx0OiBib3RoIHJlZmVyZW5jZXMgc2VlIHRoZSBzYW1lIG1hdGNoIGNv dW50cywgc28gdGhlIHNlbGYtam9pbgorLS0gcHJlc2VydmVzIGFsbCBtYXRjaGVkIHJvd3MgZnJv bSB0aGUgYmFzZWxpbmUuCitXSVRIIHJwcl9yZXN1bHQgQVMgKAorICAgIFNFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykKK1NFTEVDVCByMS5pZCwgcjEuY250CitGUk9NIHJw cl9yZXN1bHQgcjEKK0pPSU4gcnByX3Jlc3VsdCByMiBPTiByMS5pZCA9IHIyLmlkIEFORCByMS5j bnQgPSByMi5jbnQKK1dIRVJFIHIxLmNudCA+IDAKK09SREVSIEJZIHIxLmlkOworCistLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIEIyLiBSUFIgKyBKT0lOCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IGFuIFJQUiBzdWJxdWVy eSBjYW4gYmUgam9pbmVkIHdpdGggYW5vdGhlciByZWxhdGlvbi4KKy0tIFR3byBhc3BlY3RzIGFy ZSBjaGVja2VkIGFnYWluc3QgYSBub24tUlBSIGJhc2VsaW5lOgorLS0gICAoMSkgRmxhdHRlbmlu ZzogYSBub24tUlBSIHN1YnF1ZXJ5IGlzIHB1bGxlZCB1cCBieSB0aGUgcGxhbm5lcgorLS0gICAg ICAgKG5vIFN1YnF1ZXJ5IFNjYW4gaW4gdGhlIHBsYW4pOyBhbiBSUFIgc3VicXVlcnkgaXMga2Vw dAorLS0gICAgICAgdW4tZmxhdHRlbmVkIChTdWJxdWVyeSBTY2FuIGFib3ZlIFdpbmRvd0FnZyku CistLSAgICgyKSBKb2luIGNvcnJlY3RuZXNzOiB0aGUgam9pbiBhbGlnbnMgZWFjaCBSUFIgbWF0 Y2ggcm93IHdpdGgKKy0tICAgICAgIHRoZSBkaW1lbnNpb24tdGFibGUgcm93IG9uIHRoZSBzYW1l IGtleS4KKworQ1JFQVRFIFRBQkxFIHJwcl9pbnRlZzIgKGlkIElOVCwgbGFiZWwgVEVYVCk7CitJ TlNFUlQgSU5UTyBycHJfaW50ZWcyIFZBTFVFUworICAgICgxLCAnYScpLCAoMiwgJ2InKSwgKDMs ICdjJyksICg0LCAnZCcpLCAoNSwgJ2UnKSwKKyAgICAoNiwgJ2YnKSwgKDcsICdnJyksICg4LCAn aCcpLCAoOSwgJ2knKSwgKDEwLCAnaicpOworCistLSBCYXNlbGluZTogYSBub24tUlBSIHN1YnF1 ZXJ5IGlzIGZsYXR0ZW5lZCBieSB0aGUgcGxhbm5lci4gIE5vCistLSBTdWJxdWVyeSBTY2FuIG5v ZGUgYXBwZWFyczsgdGhlIGlubmVyIFNFTEVDVCBpcyBtZXJnZWQgaW50byB0aGUKKy0tIG91dGVy IGpvaW4uCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci52YWwsIGoubGFiZWwK K0ZST00gKFNFTEVDVCBpZCwgdmFsIEZST00gcnByX2ludGVnKSByCitKT0lOIHJwcl9pbnRlZzIg aiBPTiByLmlkID0gai5pZAorT1JERVIgQlkgci5pZDsKKworLS0gUlBSIHN1YnF1ZXJ5IEpPSU46 IHRoZSBTdWJxdWVyeSBTY2FuIGlzIHByZXNlcnZlZCBhYm92ZSB0aGUKKy0tIFdpbmRvd0FnZywg Y29uZmlybWluZyB0aGUgUlBSIHN1YnF1ZXJ5IGlzIG5vdCBmbGF0dGVuZWQuCitFWFBMQUlOIChD T1NUUyBPRkYpCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00gKAorICAgIFNFTEVD VCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBE RUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2ludGVnMiBqIE9OIHIu aWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7CisKKy0tIFJlc3VsdDog bWF0Y2hlZCBSUFIgcm93cyBhbGlnbiB3aXRoIGRpbWVuc2lvbiByb3dzIG9uIGlkLCBzaG93aW5n CistLSB0aGUgam9pbiBjb3JyZWN0bHkgcGFpcnMgcGVyLXJvdyBtYXRjaCBjb3VudHMgd2l0aCB0 aGVpciBsYWJlbHMuCitTRUxFQ1Qgci5pZCwgci5jbnQsIGoubGFiZWwKK0ZST00gKAorICAgIFNF TEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAg ICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK0pPSU4gcnByX2ludGVnMiBqIE9O IHIuaWQgPSBqLmlkCitXSEVSRSByLmNudCA+IDAKK09SREVSIEJZIHIuaWQ7CisKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gQjMuIFJQUiArIFNldCBvcGVyYXRpb25zCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiBy ZXN1bHRzIGNvbWJpbmUgY29ycmVjdGx5IHdpdGggbm9uLVJQUiByZXN1bHRzCistLSB1bmRlciBh IFVOSU9OIEFMTC4gIFRoZSBwbGFuIG11c3Qgc2hvdyBhbiBBcHBlbmQgbm9kZSB3aXRoIHR3bwor LS0gaW5kZXBlbmRlbnQgY2hpbGQgcGxhbnM6IHRoZSBSUFIgYnJhbmNoIHdpdGggUGF0dGVybi9E RUZJTkUgYWN0aXZlLAorLS0gYW5kIHRoZSBub24tUlBSIGJyYW5jaCB3aXRoIGEgcGxhaW4gV2lu ZG93QWdnLiAgRWFjaCBjaGlsZCBzY2FucworLS0gdGhlIGJhc2UgcmVsYXRpb24gb24gaXRzIG93 biBhbmQgY29udHJpYnV0ZXMgaXRzIHJvd3MgdG8gdGhlCistLSB1bmlvbmVkIG91dHB1dC4KKwor LS0gUGxhbjogQXBwZW5kIHdpdGggdHdvIGluZGVwZW5kZW50IGNoaWxkcmVuLiAgVGhlIFJQUiBi cmFuY2ggaGFzIGEKKy0tIFdpbmRvd0FnZyBjYXJyeWluZyBQYXR0ZXJuL05hdiBNYXJrIExvb2ti YWNrOyB0aGUgbm9uLVJQUiBicmFuY2gKKy0tIGhhcyBhIHBsYWluIFdpbmRvd0FnZyB3aXRoIG5v IHBhdHRlcm4gbWV0YWRhdGEuCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgaWQsIGNudCwg J3JwcicgQVMgc291cmNlIEZST00gKAorICAgIFNFTEVDVCBpZCwgY291bnQoKikgT1ZFUiB3IEFT IGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisg ICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZh bCkpCispIHQgV0hFUkUgY250ID4gMAorVU5JT04gQUxMCitTRUxFQ1QgaWQsIGNvdW50KCopIE9W RVIgKE9SREVSIEJZIGlkKSBBUyBjbnQsICdub3JtYWwnIEFTIHNvdXJjZQorRlJPTSBycHJfaW50 ZWcKK09SREVSIEJZIHNvdXJjZSwgaWQ7CisKKy0tIFJlc3VsdDogcm93cyBmcm9tIGJvdGggYnJh bmNoZXMgYXJlIHByZXNlbnQgaW4gdGhlIHVuaW9uZWQgb3V0cHV0LgorLS0gVGhlIFJQUiBicmFu Y2ggZW1pdHMgb25seSBtYXRjaGVkIHJvd3MgKGNudCA+IDApLCB3aGlsZSB0aGUKKy0tIG5vbi1S UFIgYnJhbmNoIGVtaXRzIGFsbCByb3dzIHdpdGggaXRzIG93biBjb3VudCB2YWx1ZXMuCitTRUxF Q1QgaWQsIGNudCwgJ3JwcicgQVMgc291cmNlIEZST00gKAorICAgIFNFTEVDVCBpZCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2 YWwgPiBQUkVWKHZhbCkpCispIHQgV0hFUkUgY250ID4gMAorVU5JT04gQUxMCitTRUxFQ1QgaWQs IGNvdW50KCopIE9WRVIgKE9SREVSIEJZIGlkKSBBUyBjbnQsICdub3JtYWwnIEFTIHNvdXJjZQor RlJPTSBycHJfaW50ZWcKK09SREVSIEJZIHNvdXJjZSwgaWQ7CisKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjQuIFJQ UiArIFByZXBhcmVkIHN0YXRlbWVudHMKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgUlBSIHF1ZXJp ZXMgc3Vydml2ZSB0aGUgcHJlcGFyZWQtc3RhdGVtZW50IHBhdGggYnkKKy0tIGV4ZXJjaXNpbmcg Ym90aCBwbGFuY2FjaGUgbW9kZXMgd2l0aCBhIHBhcmFtZXRlciB0aGF0IGZlZWRzIGludG8KKy0t IFJQUidzIG5hdmlnYXRpb24gb2Zmc2V0IChQUkVWKHZhbCwgJDEpKS4gIFRoZSBwYXJhbWV0ZXIg c3VyZmFjZXMKKy0tIHRoZSBSUFItc3BlY2lmaWMgcGxhbmNhY2hlIGRpZmZlcmVuY2U6CistLSAg IC0gY3VzdG9tIHBsYW46ICJOYXYgTWFyayBMb29rYmFjayIgaXMgcmVzb2x2ZWQgdG8gdGhlIGxp dGVyYWwKKy0tICAgICBwYXJhbWV0ZXIgdmFsdWUgYXQgcGxhbiB0aW1lIChlLmcuLCAiTmF2IE1h cmsgTG9va2JhY2s6IDEiKS4KKy0tICAgLSBnZW5lcmljIHBsYW46ICJOYXYgTWFyayBMb29rYmFj ayIgaXMgZGVmZXJyZWQgdG8gZXhlY3V0aW9uIGFuZAorLS0gICAgIGFwcGVhcnMgYXMgIk5hdiBN YXJrIExvb2tiYWNrOiBydW50aW1lIiBpbiB0aGUgcGxhbi4KKy0tIFRoZSByZXN1bHQgbXVzdCBi ZSBpZGVudGljYWwgdW5kZXIgYm90aCBtb2Rlcy4KKworLS0gUmVnaXN0ZXIgdGhlIHByZXBhcmVk IHN0YXRlbWVudDsgREVGSU5FIHVzZXMgUFJFVih2YWwsICQxKSBzbyB0aGUKKy0tIHBhcmFtZXRl ciByZWFjaGVzIFJQUidzIG5hdmlnYXRpb24gbWFjaGluZXJ5LgorUFJFUEFSRSBycHJfcHJldihp bnQpIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJf aW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEIgQVMgdmFsID4gUFJFVih2YWwsICQxKSkKK09SREVSIEJZIGlkOworCistLSBDdXN0b20g cGxhbjogTmF2IE1hcmsgTG9va2JhY2sgcmVzb2x2ZWQgdG8gdGhlIGxpdGVyYWwgMS4KK1NFVCBw bGFuX2NhY2hlX21vZGUgPSBmb3JjZV9jdXN0b21fcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikg RVhFQ1VURSBycHJfcHJldigxKTsKK0VYRUNVVEUgcnByX3ByZXYoMSk7CisKKy0tIEdlbmVyaWMg cGxhbjogTmF2IE1hcmsgTG9va2JhY2sgZGVmZXJyZWQgdG8gZXhlY3V0aW9uLCBzaG93biBhcwor LS0gInJ1bnRpbWUiIGluIHRoZSBwbGFuLiAgUmVzdWx0IG11c3QgbWF0Y2ggdGhlIGN1c3RvbS1w bGFuIHJlc3VsdAorLS0gZXhhY3RseS4KK1NFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9nZW5l cmljX3BsYW47CitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7CitFWEVD VVRFIHJwcl9wcmV2KDEpOworCitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9DQVRFIHJw cl9wcmV2OworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKy0tIEI1LiBSUFIgKyBQYXJ0aXRpb25lZCB0YWJsZQorLS0gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBWZXJpZnkgdGhhdCBSUFIgcGF0dGVybiBtYXRjaGluZyB3b3JrcyBjb3JyZWN0bHkgd2hl biB0aGUgc291cmNlCistLSByZWxhdGlvbiBpcyBwYXJ0aXRpb25lZC4gIFRoZSBwbGFubmVyIG11 c3QgZ2F0aGVyIHJvd3MgZnJvbSBldmVyeQorLS0gcGFydGl0aW9uIGludG8gYSBzaW5nbGUgb3Jk ZXJlZCBzdHJlYW0gYmVmb3JlIFJQUiBjYW4gc2VlIHRoZW0sCistLSBiZWNhdXNlIHBhdHRlcm4g bWF0Y2hpbmcgaXMgc2VxdWVudGlhbCBhY3Jvc3MgdGhlIGVudGlyZQorLS0gcGFydGl0aW9uLWJ5 IGdyb3VwIGFuZCBjYW5ub3QgYmUgcGVyZm9ybWVkIGluZGVwZW5kZW50bHkgb24gZWFjaAorLS0g dGFibGUgcGFydGl0aW9uLgorCitDUkVBVEUgVEFCTEUgcnByX3BhcnQgKGlkIElOVCwgdmFsIElO VCkgUEFSVElUSU9OIEJZIFJBTkdFIChpZCk7CitDUkVBVEUgVEFCTEUgcnByX3BhcnRfMSBQQVJU SVRJT04gT0YgcnByX3BhcnQgRk9SIFZBTFVFUyBGUk9NICgxKSBUTyAoNik7CitDUkVBVEUgVEFC TEUgcnByX3BhcnRfMiBQQVJUSVRJT04gT0YgcnByX3BhcnQgRk9SIFZBTFVFUyBGUk9NICg2KSBU TyAoMTEpOworSU5TRVJUIElOVE8gcnByX3BhcnQgU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJfaW50 ZWc7CisKKy0tIFBsYW46IHBhcnRpdGlvbiBzY2FucyBhcmUgY29tYmluZWQgd2l0aCBBcHBlbmQg KG9yIE1lcmdlIEFwcGVuZCksCistLSBzb3J0ZWQgaW50byBhIHNpbmdsZSBvcmRlcmVkIHN0cmVh bSwgYW5kIGZlZCBpbnRvIG9uZSBXaW5kb3dBZ2cKKy0tIHRoYXQgcGVyZm9ybXMgUlBSIHBhdHRl cm4gbWF0Y2hpbmcgYWNyb3NzIHRoZSBjb21iaW5lZCBzdHJlYW0uCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGFy dAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCkpCitPUkRFUiBCWSBpZDsKKworLS0gQmFzZWxpbmU6IHRoZSBz YW1lIHF1ZXJ5IGFnYWluc3QgdGhlIG5vbi1wYXJ0aXRpb25lZCBycHJfaW50ZWcKKy0tIHByb2R1 Y2VzIHRoZSBwZXItcm93IHJlZmVyZW5jZSBvdXRwdXQuCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfaW50ZWcKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBp ZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorT1JE RVIgQlkgaWQ7CisKKy0tIFJlc3VsdCBhZ2FpbnN0IHRoZSBwYXJ0aXRpb25lZCB0YWJsZSBtdXN0 IG1hdGNoIHRoZSBiYXNlbGluZQorLS0gcm93LWZvci1yb3cuCitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfcGFydAorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCitP UkRFUiBCWSBpZDsKKworRFJPUCBUQUJMRSBycHJfcGFydDsKKworLS0gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBCNi4gUlBS ICsgTEFURVJBTAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CistLSBSUFIgaW5zaWRlIGEgTEFURVJBTCBzdWJxdWVyeS4gIFF1 YWxpZmllZCBjb2x1bW4gcmVmZXJlbmNlcyBmcm9tCistLSB0aGUgb3V0ZXIgcXVlcnkgYXJlIG5v dCB5ZXQgc3VwcG9ydGVkIGluIERFRklORSwgc28gdGhpcyB0ZXN0cworLS0gdGhlIGJhc2ljIGNh c2Ugd2hlcmUgTEFURVJBTCBwcm92aWRlcyB0aGUgY29ycmVsYXRpb24gZmlsdGVyCistLSAoV0hF UkUgaWQgPD0gby5pZCkgYW5kIERFRklORSB1c2VzIG9ubHkgbG9jYWwgY29sdW1ucy4gIFRoZSBw bGFuCistLSBtdXN0IHNob3cgYSBOZXN0ZWQgTG9vcCBkcml2aW5nIHRoZSBvdXRlciByZWxhdGlv biBpbnRvIHRoZSBpbm5lcgorLS0gc3VicXVlcnkgc2Nhbiwgd2l0aCB0aGUgUlBSIFdpbmRvd0Fn ZyByZS1leGVjdXRlZCBmb3IgZWFjaCBvdXRlcgorLS0gcm93IGFuZCB0aGUgY29ycmVsYXRpb24g c3VyZmFjaW5nIGFzIGEgc2Nhbi1sZXZlbCBGaWx0ZXIgb24KKy0tICJpZCA8PSBvLmlkIi4KKwor LS0gUGxhbjogTmVzdGVkIExvb3Agd2l0aCB0aGUgUlBSIFdpbmRvd0FnZyBpbiB0aGUgaW5uZXIg bGVnLCBkcml2ZW4KKy0tIGJ5IHRoZSBmaWx0ZXJlZCBvdXRlciByb3dzIChvLmlkIElOICg1LCAx MCkpLgorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIG8uaWQgQVMgb3V0ZXJfaWQsIHIuaWQs IHIuY250CitGUk9NIHJwcl9pbnRlZyBvLAorTEFURVJBTCAoCisgICAgU0VMRUNUIGlkLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CisgICAgRlJPTSBycHJfaW50ZWcKKyAgICBXSEVSRSBpZCA8PSBv LmlkCisgICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIr KQorICAgICAgICBERUZJTkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkpCispIHIKK1dIRVJFIHIuY250 ID4gMCBBTkQgby5pZCBJTiAoNSwgMTApCitPUkRFUiBCWSBvLmlkLCByLmlkOworCistLSBSZXN1 bHQ6IGZvciBlYWNoIG9mIHRoZSB0d28gb3V0ZXIgaWRzICg1IGFuZCAxMCksIHRoZSBMQVRFUkFM CistLSBzdWJxdWVyeSBwcm9kdWNlcyBSUFIgbWF0Y2ggY291bnRzIG92ZXIgdGhlIHJlc3RyaWN0 ZWQgaW5wdXQuCitTRUxFQ1Qgby5pZCBBUyBvdXRlcl9pZCwgci5pZCwgci5jbnQKK0ZST00gcnBy X2ludGVnIG8sCitMQVRFUkFMICgKKyAgICBTRUxFQ1QgaWQsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKKyAgICBGUk9NIHJwcl9pbnRlZworICAgIFdIRVJFIGlkIDw9IG8uaWQKKyAgICBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgIERFRklO RSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKykgcgorV0hFUkUgci5jbnQgPiAwIEFORCBvLmlkIElO ICg1LCAxMCkKK09SREVSIEJZIG8uaWQsIHIuaWQ7CisKKy0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gQjcuIFJQUiArIFJl Y3Vyc2l2ZSBDVEUKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0gVmVyaWZ5IHRoYXQgYW4gUlBSIHdpbmRvdyBjYW4gYXBw ZWFyIGluc2lkZSB0aGUgbm9uLXJlY3Vyc2l2ZQorLS0gKGJhc2UpIGxlZyBvZiBhIHJlY3Vyc2l2 ZSBDVEUuICBUaGUgcGxhbiBtdXN0IHNob3cgdGhlIFJQUgorLS0gV2luZG93QWdnIHNpdHRpbmcg dW5kZXIgdGhlIFJlY3Vyc2l2ZSBVbmlvbiBhcyB0aGUgYmFzZS1sZWcKKy0tIGNoaWxkLCB3aXRo IHRoZSBXb3JrVGFibGUgU2NhbiBmZWVkaW5nIHRoZSByZWN1cnNpdmUgbGVnIGFib3ZlCistLSBp dC4gIFRoaXMgY29uZmlybXMgdGhhdCBSUFIgb3V0cHV0IGNhbiBzZWVkIGEgcmVjdXJzaXZlIENU RQorLS0gKHdpbmRvdyBmdW5jdGlvbnMgY2Fubm90IGFwcGVhciBpbiB0aGUgcmVjdXJzaXZlIGxl ZyBpdHNlbGYsIGEKKy0tIFBvc3RncmVTUUwgcmVzdHJpY3Rpb24sIHNvIHRoaXMgaXMgdGhlIG5h dHVyYWwgcGxhY2UgdG8gZXhlcmNpc2UKKy0tICJSUFIgdW5kZXIgUmVjdXJzaXZlIFVuaW9uIiku CistLQorLS0gWFhYOiBXaGV0aGVyIHRoaXMgY2FzZSBmYWxscyB1bmRlciB0aGUgSVNPL0lFQyA5 MDc1LTIgNC4xOC41IC8KKy0tIDYuMTcuNSBwcm9oaWJpdGlvbiBpcyBub3Qgc29tZXRoaW5nIEkg Y2FuIGp1ZGdlLiAgSWYgdGhpcyBjYXNlCistLSBpcyBub3QgcHJvaGliaXRlZCwgdGhlIG9wZW4g cXVlc3Rpb24gaXMgd2hldGhlciBhIHF1ZXJ5IHRoYXQKKy0tIGRvZXMgdHJpZ2dlciB0aGUgcHJv aGliaXRpb24gY2FuIGJlIGNvbnN0cnVjdGVkIGF0IGFsbC4KKy0tIFdoZXRoZXIgdG8gcHJvaGli aXQgdGhpcyBjYXNlIGlzIGxlZnQgdG8gdGhlIGNvbW11bml0eS4KKworLS0gUGxhbjogUmVjdXJz aXZlIFVuaW9uIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgb24gdGhlIGJhc2UgbGVnIGFuZAorLS0g dGhlIFdvcmtUYWJsZSBTY2FuIG9uIHRoZSByZWN1cnNpdmUgbGVnLgorRVhQTEFJTiAoQ09TVFMg T0ZGKQorV0lUSCBSRUNVUlNJVkUgc2VxIEFTICgKKyAgICBTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorICAgIEZST00gcnByX2ludGVnCisgICAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICBQQVRURVJOIChBIEIrKQorICAgICAgICBERUZJTkUgQiBBUyB2 YWwgPiBQUkVWKHZhbCkpCisgICAgVU5JT04gQUxMCisgICAgU0VMRUNUIGlkICsgMTAwLCB2YWws IGNudCBGUk9NIHNlcSBXSEVSRSBpZCA8IDMKKykKK1NFTEVDVCBpZCwgdmFsLCBjbnQgRlJPTSBz ZXEgT1JERVIgQlkgaWQ7CisKKy0tIFJlc3VsdDogdGhlIGJhc2UgbGVnIGNvbnRyaWJ1dGVzIHRo ZSBSUFIgbWF0Y2ggY291bnRzOyB0aGUKKy0tIHJlY3Vyc2l2ZSBsZWcgcHJvcGFnYXRlcyB0aG9z ZSBjb3VudHMgd2l0aCBzaGlmdGVkIGlkcy4KK1dJVEggUkVDVVJTSVZFIHNlcSBBUyAoCisgICAg U0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKKyAgICBGUk9NIHJwcl9pbnRl ZworICAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgUEFUVEVSTiAoQSBCKykK KyAgICAgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKQorICAgIFVOSU9OIEFMTAorICAg IFNFTEVDVCBpZCArIDEwMCwgdmFsLCBjbnQgRlJPTSBzZXEgV0hFUkUgaWQgPCAzCispCitTRUxF Q1QgaWQsIHZhbCwgY250IEZST00gc2VxIE9SREVSIEJZIGlkOworCistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIEI4LiBS UFIgKyBJbmNyZW1lbnRhbCBzb3J0CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFZlcmlmeSB0aGF0IFJQUiBwYXR0ZXJu IG1hdGNoaW5nIHdvcmtzIGNvcnJlY3RseSB3aGVuIHRoZSBpbnB1dAorLS0gdG8gV2luZG93QWdn IGFycml2ZXMgdmlhIGFuIGluY3JlbWVudGFsIHNvcnQuICBUaGUgaW5kZXggb24gKGlkKQorLS0g cHJvdmlkZXMgcHJlc29ydGVkIGlucHV0IGZvciB0aGUgZmlyc3QgT1JERVIgQlkga2V5LCBzbwor LS0gIk9SREVSIEJZIGlkLCB2YWwiIGxldHMgdGhlIHBsYW5uZXIgdXNlIEluY3JlbWVudGFsIFNv cnQgdG8gb3JkZXIKKy0tIG9ubHkgb24gdGhlIHNlY29uZCBrZXkuICBUaGUgcGxhbiBtdXN0IHNo b3cgSW5jcmVtZW50YWwgU29ydAorLS0gYmVsb3cgdGhlIFJQUiBXaW5kb3dBZ2csIGFuZCBSUFIg bXVzdCBwcm9kdWNlIHRoZSBzYW1lIHBlci1yb3cKKy0tIG1hdGNoIGNvdW50cyBhcyBpdCB3b3Vs ZCB3aXRoIGEgcGxhaW4gU29ydC4KKworQ1JFQVRFIElOREVYIHJwcl9pbnRlZ19pZF9pZHggT04g cnByX2ludGVnIChpZCk7CitTRVQgZW5hYmxlX3NlcXNjYW4gPSBvZmY7CisKKy0tIFBsYW46IFJQ UiBXaW5kb3dBZ2cgYWJvdmUgYW4gSW5jcmVtZW50YWwgU29ydCBhYm92ZSBhbiBJbmRleCBTY2Fu LgorLS0gVGhlIEluY3JlbWVudGFsIFNvcnQgZGVjbGFyZXMgIlByZXNvcnRlZCBLZXk6IGlkIiBh bmQgc29ydHMgb25seQorLS0gb24gdmFsIHdpdGhpbiBlYWNoIGlkIGdyb3VwLgorRVhQTEFJTiAo Q09TVFMgT0ZGKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00g cnByX2ludGVnCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQsIHZhbAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEIgQVMgdmFsID4gUFJFVih2YWwpKTsKKworLS0gUmVzdWx0OiBSUFIgb3Zl ciB0aGUgaW5jcmVtZW50YWxseSBzb3J0ZWQgc3RyZWFtIHByb2R1Y2VzIG1hdGNoCistLSBjb3Vu dHMgcGVyIHJvdy4KK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9N IHJwcl9pbnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkLCB2YWwKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKK09SREVSIEJZIGlkLCB2YWw7CisK K1JFU0VUIGVuYWJsZV9zZXFzY2FuOworRFJPUCBJTkRFWCBycHJfaW50ZWdfaWRfaWR4OworCist LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tIEI5LiBSUFIgKyBWb2xhdGlsZSBmdW5jdGlvbiBpbiBERUZJTkUKKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor LS0gUmVjb3JkcyB0aGUgY3VycmVudCBiZWhhdmlvdXI6IERFRklORSB0b2RheSBhY2NlcHRzIHZv bGF0aWxlCistLSBmdW5jdGlvbnMgc3VjaCBhcyByYW5kb20oKSBhbmQgdGhlIHF1ZXJ5IHJ1bnMg dG8gY29tcGxldGlvbi4KKy0tIFRvIGtlZXAgdGhlIGV4cGVjdGVkIG91dHB1dCBkZXRlcm1pbmlz dGljIHRoZSBwcmVkaWNhdGUgdXNlcworLS0gInJhbmRvbSgpID49IDAuMCIsIHdoaWNoIGlzIHN0 cnVjdHVyYWxseSBlcXVpdmFsZW50IHRvIFRSVUUgYW5kCistLSB0aGVyZWZvcmUgZG9lcyBub3Qg cGVydHVyYiB0aGUgbWF0Y2ggcmVzdWx0LiAgVGhlIGludGVyZXN0aW5nCistLSBwcm9wZXJ0eSBp cyB0aGF0IHZvbGF0aWxlIGludm9jYXRpb24gZG9lcyBub3QgY3Jhc2ggb3Igc2hvcnQtCistLSBj aXJjdWl0IHBhdHRlcm4gbWF0Y2hpbmcuCistLQorLS0gWFhYOiB2b2xhdGlsZSBmdW5jdGlvbnMg aW4gREVGSU5FIGFyZSBzbGF0ZWQgdG8gYmUgcmVqZWN0ZWQgYXQKKy0tIHBhcnNlIHRpbWUuICBV bmRlciBSUFIncyBORkEgZW5naW5lIHRoZSBzYW1lIHJvdydzIERFRklORQorLS0gcHJlZGljYXRl IG1heSBiZSBldmFsdWF0ZWQgbXVsdGlwbGUgdGltZXMgKGJhY2t0cmFja2luZywKKy0tIFBSRVYv TkVYVCBuYXZpZ2F0aW9uKSwgc28gYSB0cnVseSB2b2xhdGlsZSByZXN1bHQgd291bGQgbWFrZQor LS0gcGF0dGVybiBtYXRjaGluZyBub24tZGV0ZXJtaW5pc3RpYy4gIFdoZW4gdGhlIHByb2hpYml0 aW9uIGxhbmRzLAorLS0gdGhpcyB0ZXN0IG11c3QgYmUgcmVwbGFjZWQgd2l0aCBhbiBlcnJvci1j YXNlIHRlc3QgdGhhdCBleHBlY3RzCistLSByYW5kb20oKSBpbiBERUZJTkUgdG8gYmUgcmVqZWN0 ZWQuCisKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9p bnRlZworV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQiBBUyB2YWwgPiBQUkVWKHZhbCkgQU5EIHJhbmRvbSgpID49IDAuMCkKK09SREVSIEJZIGlk OworCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tIEIxMC4gUlBSICsgQ29ycmVsYXRlZCBzdWJxdWVyeSBpbiBXSEVSRQor LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLSBWZXJpZnkgdGhhdCBhbiBSUFIgd2luZG93IHBsYWNlZCBpbnNpZGUgYSBjb3Jy ZWxhdGVkIHNjYWxhcgorLS0gc3VicXVlcnkgaXMgZXhlY3V0ZWQgb25jZSBwZXIgb3V0ZXIgcm93 LiAgREVGSU5FIHN0aWxsIHJlZmVyZW5jZXMKKy0tIG9ubHkgbG9jYWwgY29sdW1ucyAocXVhbGlm aWVkIHJlZnMgZnJvbSB0aGUgb3V0ZXIgcXVlcnkgYXJlIG5vdAorLS0gc3VwcG9ydGVkIGluIERF RklORSk7IHRoZSBjb3JyZWxhdGlvbiBsaXZlcyBpbiB0aGUgc3VicXVlcnkncworLS0gV0hFUkUg Y2xhdXNlIGFzICJpLmlkIDw9IG8uaWQiLiAgVGhlIHBsYW4gbXVzdCBzaG93IGEgU3ViUGxhbgor LS0gYXR0YWNoZWQgdG8gdGhlIG91dGVyIHNjYW4sIHdpdGggdGhlIFJQUiBXaW5kb3dBZ2cgZHJp dmVuIGJ5IGEKKy0tIHBlci1yb3cgc2NhbiBmaWx0ZXIgY2FycnlpbmcgdGhlIGNvcnJlbGF0aW9u IHByZWRpY2F0ZS4KKworLS0gUGxhbjogU3ViUGxhbiBhdHRhY2hlZCB0byB0aGUgb3V0ZXIgU2Vx IFNjYW47IHRoZSBpbm5lciBzY2FuCistLSBjYXJyaWVzICJGaWx0ZXI6IChpZCA8PSBvLmlkKSIs IGNvbmZpcm1pbmcgdGhlIGNvcnJlbGF0aW9uIGlzCistLSBldmFsdWF0ZWQgcGVyIG91dGVyIHJv dy4KK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBvLmlkLCBvLnZhbCwKKyAgICAoU0VMRUNU IGNvdW50KCopIE9WRVIgdworICAgICBGUk9NIHJwcl9pbnRlZyBpCisgICAgIFdIRVJFIGkuaWQg PD0gby5pZAorICAgICBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgIERFRklORSBCIEFTIHZhbCA+IFBSRVYodmFsKSkKKyAgICAgT1JE RVIgQlkgaWQKKyAgICAgTElNSVQgMSkgQVMgZmlyc3RfY250CitGUk9NIHJwcl9pbnRlZyBvCitP UkRFUiBCWSBvLmlkOworCistLSBSZXN1bHQ6IGVhY2ggb3V0ZXIgcm93IHJlY2VpdmVzIHRoZSBm aXJzdF9jbnQgZnJvbSBpdHMgb3duCistLSBjb3JyZWxhdGVkIFJQUiBzdWJxdWVyeS4KK1NFTEVD VCBvLmlkLCBvLnZhbCwKKyAgICAoU0VMRUNUIGNvdW50KCopIE9WRVIgdworICAgICBGUk9NIHJw cl9pbnRlZyBpCisgICAgIFdIRVJFIGkuaWQgPD0gby5pZAorICAgICBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQKKyAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgIERFRklORSBCIEFT IHZhbCA+IFBSRVYodmFsKSkKKyAgICAgT1JERVIgQlkgaWQKKyAgICAgTElNSVQgMSkgQVMgZmly c3RfY250CitGUk9NIHJwcl9pbnRlZyBvCitPUkRFUiBCWSBvLmlkOworCistLSBDbGVhbnVwCitE Uk9QIFRBQkxFIHJwcl9pbnRlZzsKK0RST1AgVEFCTEUgcnByX2ludGVnMjsKLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Disposition: attachment; filename="nocfbot-0008-Replace-reduced-frame-map-with-single-match-result.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tq3sa7 RnJvbSBjYTE3MTA4NGI3YzUyZTI3YTFmMGJiMmExN2E4NzQ3ZjM3NWU2YTJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTQ6MDk6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZXBsYWNl IHJlZHVjZWQgZnJhbWUgbWFwIHdpdGggc2luZ2xlIG1hdGNoIHJlc3VsdAoKVGhlIHJlZHVjZWQg ZnJhbWUgbWFwIHdhcyBhIHBlci1yb3cgYnl0ZSBhcnJheSB0cmFja2luZyBtYXRjaCBzdGF0dXMu ClNpbmNlIHJvd3MgYXJlIHByb2Nlc3NlZCBzZXF1ZW50aWFsbHkgYW5kIG9ubHkgb25lIG1hdGNo IGlzIGFjdGl2ZQphdCBhIHRpbWUsIHJlcGxhY2UgaXQgd2l0aCBmb3VyIHNjYWxhciBmaWVsZHM6 IHZhbGlkLCBtYXRjaGVkLApzdGFydCwgYW5kIGxlbmd0aC4KCkFsc28gZGlzdGluZ3Vpc2ggZW1w dHkgbWF0Y2hlcyAoRklOIHJlYWNoZWQgd2l0aCB6ZXJvIHJvd3MgY29uc3VtZWQpCmZyb20gdW5t YXRjaGVkIHJvd3MgdmlhIFJGX0VNUFRZX01BVENILCBjb3VudGVkIGFzIG1hdGNoZWQgaW4gTkZB CnN0YXRpc3RpY3MuCgpXaWRlbiByb3dfaXNfaW5fcmVkdWNlZF9mcmFtZSgpIHJldHVybiB0eXBl IGZyb20gaW50IHRvIGludDY0LApzaW5jZSBpdCByZXR1cm5zIHJwcl9tYXRjaF9sZW5ndGggd2hp Y2ggaXMgaW50NjQuCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jICAgICAgICAg ICAgfCAgNTYgKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAg ICB8IDIzMyArKysrKysrKystLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9k ZXMuaCAgICAgICAgICAgICB8ICAyMSArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf ZXhwbGFpbi5vdXQgfCAgIDggKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTMyIGluc2VydGlvbnMoKyks IDE4NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj UlBSLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKaW5kZXggNThmOWRhMGI4MTQu LjdkMGY4ZmQ0MDFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCkBAIC01NDksNyArNTQ5LDcgQEAK ICAqCiAgKiAgICgxKSBGaW5kIG9yIGNyZWF0ZSBhIGNvbnRleHQgZm9yIHRoZSB0YXJnZXQgcm93 CiAgKiAgICgyKSBFbnRlciB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcAotICogICAoMykgQWZ0ZXIg dGhlIGxvb3AgZW5kcywgcmVjb3JkIHRoZSByZXN1bHQgaW4gcmVkdWNlZF9mcmFtZV9tYXAKKyAq ICAgKDMpIEFmdGVyIHRoZSBsb29wIGVuZHMsIHJlY29yZCB0aGUgbWF0Y2ggcmVzdWx0CiAgKgog ICogUHNldWRvY29kZSBvZiB0aGUgcm93IHByb2Nlc3NpbmcgbG9vcDoKICAqCkBAIC05MjMsMTgg KzkyMywxOSBAQAogICogQ2hhcHRlciBYICBNYXRjaCBSZXN1bHQgUHJvY2Vzc2luZwogICogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogICoKLSAqIFgtMS4gUmVkdWNlZCBGcmFtZSBNYXAKKyAqIFgtMS4g TWF0Y2ggUmVzdWx0CiAgKgotICogUlBSIG1hdGNoIHJlc3VsdHMgYXJlIHJlY29yZGVkIGluIGEg Ynl0ZSBhcnJheSBjYWxsZWQgcmVkdWNlZF9mcmFtZV9tYXAuCi0gKiBPbmUgYnl0ZSBpcyBhbGxv Y2F0ZWQgcGVyIHJvdywgYW5kIHRoZSB2YWx1ZSBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZzoKKyAq IFJQUiB0cmFja3MgdGhlIGN1cnJlbnQgbWF0Y2ggcmVzdWx0IGFzIGEgc2luZ2xlIGVudHJ5IGlu IFdpbmRvd0FnZ1N0YXRlCisgKiB3aXRoIGZvdXIgZmllbGRzOiBycHJfbWF0Y2hfdmFsaWQsIHJw cl9tYXRjaF9tYXRjaGVkLCBycHJfbWF0Y2hfc3RhcnQsCisgKiBhbmQgcnByX21hdGNoX2xlbmd0 aC4gIFdoZW4gcnByX21hdGNoX3ZhbGlkIGlzIHRydWUsIHRoZSBlbnRyeSBkZXNjcmliZXMKKyAq IHRoZSBtYXRjaCByZXN1bHQgZm9yIHRoZSBwb3NpdGlvbiBhdCBycHJfbWF0Y2hfc3RhcnQ6IHJw cl9tYXRjaF9tYXRjaGVkCisgKiBpbmRpY2F0ZXMgc3VjY2VzcyBvciBmYWlsdXJlLCBhbmQgcnBy X21hdGNoX2xlbmd0aCBnaXZlcyB0aGUgbnVtYmVyIG9mCisgKiByb3dzIGNvbnN1bWVkLiAgQSBt YXRjaCB3aXRoIHJwcl9tYXRjaF9sZW5ndGggMCByZXByZXNlbnRzIGFuIGVtcHR5IG1hdGNoCisg KiAocGF0dGVybiBtYXRjaGVkIGJ1dCBjb25zdW1lZCBubyByb3dzKS4gIFdoZW4gcnByX21hdGNo X3ZhbGlkIGlzIGZhbHNlLAorICogdGhlIHBvc2l0aW9uIGhhcyBub3QgYmVlbiBldmFsdWF0ZWQg eWV0IChSRl9OT1RfREVURVJNSU5FRCkuCiAgKgotICogICBSRl9OT1RfREVURVJNSU5FRCAoMCkg IE5vdCB5ZXQgcHJvY2Vzc2VkCi0gKiAgIFJGX0ZSQU1FX0hFQUQgICAgICgxKSAgU3RhcnQgcm93 IG9mIHRoZSBtYXRjaAotICogICBSRl9TS0lQUEVEICAgICAgICAoMikgIEludGVyaW9yIHJvdyBv ZiB0aGUgbWF0Y2ggKHNraXBwZWQgaW4gZnJhbWUpCi0gKiAgIFJGX1VOTUFUQ0hFRCAgICAgICgz KSAgTWF0Y2ggZmFpbHVyZQotICoKLSAqIFRoZSB3aW5kb3cgZnVuY3Rpb24gcmVmZXJlbmNlcyB0 aGlzIG1hcCB0byBkZXRlcm1pbmUgZnJhbWUgaW5jbHVzaW9uIGZvcgotICogZWFjaCByb3cuCisg KiBBIHJvdydzIHN0YXR1cyBhZ2FpbnN0IHRoZSBjdXJyZW50IG1hdGNoIHJlc3VsdCBjYW4gYmUg b2J0YWluZWQgYnkKKyAqIGNhbGxpbmcgZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKCkuCiAgKgog ICogWC0yLiBBRlRFUiBNQVRDSCBTS0lQCiAgKgpAQCAtMTAyOCw4ICsxMDI5LDcgQEAKICAqICAg ICBQaGFzZSAzIChBZHZhbmNlKTogc2tpcHBlZCAobm8gc3RhdGVzKQogICoKICAqICAgQzAuc3Rh dGVzIGlzIGVtcHR5LCBzbyB0aGUgbG9vcCB0ZXJtaW5hdGVzLgotICogICBtYXRjaEVuZFJvdyA8 IG1hdGNoU3RhcnRSb3cgLT4gUkZfVU5NQVRDSEVELgotICogICByZWdpc3Rlcl9yZWR1Y2VkX2Zy YW1lX21hcCgwLCBSRl9VTk1BVENIRUQpLgorICogICBtYXRjaEVuZFJvdyA8IG1hdGNoU3RhcnRS b3cgLT4gdW5tYXRjaGVkLgogICoKICAqIC0tLSBSb3cgMSAocHJpY2U9MTEwKSAtLS0KICAqCkBA IC0xMTEzLDkgKzExMTMsNyBAQAogICoKICAqICAgQzEuc3RhdGVzIGlzIGVtcHR5IGFuZCBtYXRj aEVuZFJvdz0zID49IG1hdGNoU3RhcnRSb3c9MSAtPiBtYXRjaCBzdWNjZWVkcy4KICAqCi0gKiAg IHJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKDEsIFJGX0ZSQU1FX0hFQUQpCi0gKiAgIHJlZ2lz dGVyX3JlZHVjZWRfZnJhbWVfbWFwKDIsIFJGX1NLSVBQRUQpCi0gKiAgIHJlZ2lzdGVyX3JlZHVj ZWRfZnJhbWVfbWFwKDMsIFJGX1NLSVBQRUQpCisgKiAgIHJwcl9tYXRjaF9zdGFydCA9IDEsIHJw cl9tYXRjaF9sZW5ndGggPSAzCiAgKgogICogLS0tIFJvdyA0IChwcmljZT0xMzApIC0tLQogICoK QEAgLTExMjgsMTUgKzExMjYsMTUgQEAKICAqICAgICBCOiAxMzAgPCBQUkVWKDExNSkgLT4gZmFs c2UKICAqCiAgKiAgIC4uLiBObyBzdWJzZXF1ZW50IHJvd3MsIHNvIEV4ZWNSUFJGaW5hbGl6ZUFs bENvbnRleHRzKCkgaXMgY2FsbGVkLgotICogICBNYXRjaCBpbmNvbXBsZXRlIC0+IFJGX1VOTUFU Q0hFRC4KKyAqICAgTWF0Y2ggaW5jb21wbGV0ZSAtPiB1bm1hdGNoZWQuCiAgKgogICogWEktNS4g RmluYWwgUmVzdWx0CiAgKgotICogICBSb3cgMDogUkZfVU5NQVRDSEVEICAtPiBmcmFtZSA9IHRo ZSByb3cgaXRzZWxmCi0gKiAgIFJvdyAxOiBSRl9GUkFNRV9IRUFEIC0+IGZyYW1lID0gcm93cyAx IHRocm91Z2ggMwotICogICBSb3cgMjogUkZfU0tJUFBFRCAgICAtPiBpbnNpZGUgcm93IDEncyBt YXRjaAotICogICBSb3cgMzogUkZfU0tJUFBFRCAgICAtPiBpbnNpZGUgcm93IDEncyBtYXRjaAot ICogICBSb3cgNDogUkZfVU5NQVRDSEVEICAtPiBmcmFtZSA9IHRoZSByb3cgaXRzZWxmCisgKiAg IFJvdyAwOiB1bm1hdGNoZWQgICAgIC0+IGZyYW1lID0gdGhlIHJvdyBpdHNlbGYKKyAqICAgUm93 IDE6IG1hdGNoIGhlYWQgICAgLT4gZnJhbWUgPSByb3dzIDEgdGhyb3VnaCAzCisgKiAgIFJvdyAy OiBpbnNpZGUgbWF0Y2ggIC0+IHNraXBwZWQKKyAqICAgUm93IDM6IGluc2lkZSBtYXRjaCAgLT4g c2tpcHBlZAorICogICBSb3cgNDogdW5tYXRjaGVkICAgICAtPiBmcmFtZSA9IHRoZSByb3cgaXRz ZWxmCiAgKgogICogQ2hhcHRlciBYSUkgIFN1bW1hcnkgb2YgS2V5IERlc2lnbiBEZWNpc2lvbnMK ICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NzksMTIgKzE1NzcsMTQgQEAgc3RhdGljIHZv aWQgbmZhX2FkdmFuY2UoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0ICpj dHgsCiAgKgogICogLSBFbXB0eSBtYXRjaCBoYW5kbGluZzogVGhlIGluaXRpYWwgYWR2YW5jZSB1 c2VzIGN1cnJlbnRQb3MgPQogICogICBzdGFydFBvcyAtIDEgKGJlZm9yZSBhbnkgcm93IGlzIGNv bnN1bWVkKS4gSWYgRklOIGlzIHJlYWNoZWQgdmlhCi0gKiAgIGVwc2lsb24gdHJhbnNpdGlvbnMg YWxvbmUsIG1hdGNoRW5kUm93ID0gc3RhcnRQb3MgLSAxIDwgbWF0Y2hTdGFydFJvdywKLSAqICAg cmVzdWx0aW5nIGluIFVOTUFUQ0hFRC4gRm9yIHJlbHVjdGFudCBtaW49MCBwYXR0ZXJucyAoQSo/ LCBBPz8pLAotICogICB0aGUgc2tpcCBwYXRoIHJlYWNoZXMgRklOIGZpcnN0IGFuZCBlYXJseSB0 ZXJtaW5hdGlvbiBwcnVuZXMgZW50ZXIKLSAqICAgcGF0aHMsIHlpZWxkaW5nIGFuIGltbWVkaWF0 ZSBlbXB0eSAodW5tYXRjaGVkKSByZXN1bHQuIEZvcgotICogICBncmVlZHkgcGF0dGVybnMgKEEq KSwgdGhlIGVudGVyIHBhdGggYWRkcyBWQVIgc3RhdGVzIGZpcnN0LCB0aGVuCi0gKiAgIHRoZSBz a2lwIEZJTiBpcyByZWNvcmRlZCBidXQgVkFSIHN0YXRlcyBzdXJ2aXZlIGZvciBsYXRlciBtYXRj aGluZy4KKyAqICAgZXBzaWxvbiB0cmFuc2l0aW9ucyBhbG9uZSwgbWF0Y2hFbmRSb3cgPSBzdGFy dFBvcyAtIDEgPCBtYXRjaFN0YXJ0Um93LgorICogICBJZiBtYXRjaGVkU3RhdGUgaXMgc2V0IChG SU4gd2FzIHJlYWNoZWQpLCB0aGlzIGlzIGFuIGVtcHR5IG1hdGNoCisgKiAgIChSRl9FTVBUWV9N QVRDSCk7IG90aGVyd2lzZSBpdCBpcyB1bm1hdGNoZWQgKFJGX1VOTUFUQ0hFRCkuCisgKiAgIEZv ciByZWx1Y3RhbnQgbWluPTAgcGF0dGVybnMgKEEqPywgQT8/KSwgdGhlIHNraXAgcGF0aCByZWFj aGVzCisgKiAgIEZJTiBmaXJzdCBhbmQgZWFybHkgdGVybWluYXRpb24gcHJ1bmVzIGVudGVyIHBh dGhzLCB5aWVsZGluZyBhbgorICogICBpbW1lZGlhdGUgZW1wdHkgbWF0Y2ggcmVzdWx0LiBGb3Ig Z3JlZWR5IHBhdHRlcm5zIChBKiksIHRoZSBlbnRlcgorICogICBwYXRoIGFkZHMgVkFSIHN0YXRl cyBmaXJzdCwgdGhlbiB0aGUgc2tpcCBGSU4gaXMgcmVjb3JkZWQgYnV0IFZBUgorICogICBzdGF0 ZXMgc3Vydml2ZSBmb3IgbGF0ZXIgbWF0Y2hpbmcuCiAgKgogICogQ29udGV4dCBBYnNvcnB0aW9u IFJ1bnRpbWU6CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuYwppbmRleCBhZWQ3Y2JlZjk5YS4uZGNhMmRlNTcwZTggMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTI0NywxMyArMjQ3LDEwIEBAIHN0YXRpYyB2 b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsKIHN0YXRpYyBib29sIGF0dG5vX21hcF93YWxrZXIo Tm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIHN0YXRpYyBib29sIHJwcl9pc19kZWZpbmVk KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7Ci1zdGF0aWMgaW50CXJvd19pc19pbl9yZWR1Y2Vk X2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CitzdGF0aWMgaW50NjQgcm93 X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKTsKIAot c3RhdGljIHZvaWQgY3JlYXRlX3JlZHVjZWRfZnJhbWVfbWFwKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSk7Ci1zdGF0aWMgdm9pZCBjbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUpOwotc3RhdGljIGludAlnZXRfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MpOwotc3RhdGljIHZvaWQgcmVnaXN0ZXJfcmVkdWNl ZF9mcmFtZV9tYXAoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MsCi0JCQkJCQkJ CQkgICBpbnQgdmFsKTsKK3N0YXRpYyB2b2lkIGNsZWFyX3JlZHVjZWRfZnJhbWUoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlKTsKK3N0YXRpYyBpbnQJZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKIHN0YXRpYyB2b2lkIHVwZGF0ZV9y ZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcyk7CiAKIHN0YXRpYyB2 b2lkIGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUsIGJvb2wgaXNfcHJldik7CkBAIC0x MDM1LDEzICsxMDMyLDcgQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3 aW5zdGF0ZSkKIAkgKi8KIAlmb3IgKDs7KQogCXsKLQkJaW50CQkJcmV0OwotCi0jaWZkZWYgUlBS X0RFQlVHCi0JCXByaW50ZigiPT09PT0gbG9vcCBpbiBmcmFtZSBzdGFydHM6IGFnZ3JlZ2F0ZWR1 cHRvOiAiIElOVDY0X0ZPUk1BVCAiIGFnZ3JlZ2F0ZWRiYXNlOiAiIElOVDY0X0ZPUk1BVCAiXG4i LAotCQkJICAgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvLAotCQkJICAgd2luc3RhdGUtPmFnZ3Jl Z2F0ZWRiYXNlKTsKLSNlbmRpZgorCQlpbnQ2NAkJcmV0OwogCiAJCS8qIEZldGNoIG5leHQgcm93 IGlmIHdlIGRpZG4ndCBhbHJlYWR5ICovCiAJCWlmIChUdXBJc051bGwoYWdnX3Jvd19zbG90KSkK QEAgLTEwNjUsMjcgKzEwNTYsMTggQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0 YXRlICp3aW5zdGF0ZSkKIAogCQlpZiAocnByX2lzX2RlZmluZWQod2luc3RhdGUpKQogCQl7Ci0j aWZkZWYgUlBSX0RFQlVHCi0JCQlwcmludGYoInJlZHVjZWRfZnJhbWVfbWFwOiAlZCBhZ2dyZWdh dGVkdXB0bzogIiBJTlQ2NF9GT1JNQVQgIiBhZ2dyZWdhdGVkYmFzZTogIiBJTlQ2NF9GT1JNQVQg IlxuIiwKLQkJCQkgICBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsCi0JCQkJCQkJCQkJ IHdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0byksCi0JCQkJICAgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1 cHRvLAotCQkJCSAgIHdpbnN0YXRlLT5hZ2dyZWdhdGVkYmFzZSk7Ci0jZW5kaWYKLQogCQkJLyoK LQkJCSAqIElmIHRoZSByb3cgc3RhdHVzIGF0IGN1cnJlbnRwb3MgaXMgYWxyZWFkeSBkZWNpZGVk IGFuZCBjdXJyZW50Ci0JCQkgKiByb3cgc3RhdHVzIGlzIG5vdCBkZWNpZGVkIHlldCwgaXQgbWVh bnMgd2UgcGFzc2VkIHRoZSBsYXN0Ci0JCQkgKiByZWR1Y2VkIGZyYW1lLiBUaW1lIHRvIGJyZWFr IHRoZSBsb29wLgorCQkJICogSWYgY3VycmVudHBvcyBpcyBhbHJlYWR5IGRlY2lkZWQgYnV0IGFn Z3JlZ2F0ZWR1cHRvIGlzIG5vdCB5ZXQKKwkJCSAqIGRldGVybWluZWQsIHdlJ3ZlIHBhc3NlZCB0 aGUgbGFzdCByZWR1Y2VkIGZyYW1lLgogCQkJICovCi0JCQlpZiAoZ2V0X3JlZHVjZWRfZnJhbWVf bWFwKHdpbnN0YXRlLCB3aW5zdGF0ZS0+Y3VycmVudHBvcykKKwkJCWlmIChnZXRfcmVkdWNlZF9m cmFtZV9zdGF0dXMod2luc3RhdGUsIHdpbnN0YXRlLT5jdXJyZW50cG9zKQogCQkJCSE9IFJGX05P VF9ERVRFUk1JTkVEICYmCi0JCQkJZ2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCB3aW5z dGF0ZS0+YWdncmVnYXRlZHVwdG8pCisJCQkJZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0 YXRlLCB3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8pCiAJCQkJPT0gUkZfTk9UX0RFVEVSTUlORUQp CiAJCQkJYnJlYWs7CiAKIAkJCS8qCi0JCQkgKiBPdGhlcndpc2Ugd2UgbmVlZCB0byBjYWxjdWxh dGUgdGhlIHJlZHVjZWQgZnJhbWUuCisJCQkgKiBDYWxjdWxhdGUgdGhlIHJlZHVjZWQgZnJhbWUg Zm9yIGFnZ3JlZ2F0ZWR1cHRvLgogCQkJICovCiAJCQlyZXQgPSByb3dfaXNfaW5fcmVkdWNlZF9m cmFtZSh3aW5zdGF0ZS0+YWdnX3dpbm9iaiwKIAkJCQkJCQkJCQkgIHdpbnN0YXRlLT5hZ2dyZWdh dGVkdXB0byk7CkBAIC0xMDkzLDE3ICsxMDc1LDEzIEBAIGV2YWxfd2luZG93YWdncmVnYXRlcyhX aW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCQkJYnJlYWs7CiAKIAkJCS8qCi0JCQkgKiBDaGVj ayBpZiBjdXJyZW50IHJvdyBuZWVkcyB0byBiZSBza2lwcGVkIGR1ZSB0byBubyBtYXRjaC4KKwkJ CSAqIENoZWNrIGlmIGN1cnJlbnQgcm93IGlzIGluc2lkZSBhIG1hdGNoIGJ1dCBub3QgdGhlIGhl YWQKKwkJCSAqIChza2lwcGVkKSwgYW5kIGl0J3MgdGhlIGJhc2Ugcm93IGZvciBhZ2dyZWdhdGlv bi4KIAkJCSAqLwotCQkJaWYgKGdldF9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwKLQkJCQkJ CQkJCSAgd2luc3RhdGUtPmFnZ3JlZ2F0ZWR1cHRvKSA9PSBSRl9TS0lQUEVEICYmCisJCQlpZiAo Z2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLAorCQkJCQkJCQkJCSB3aW5zdGF0ZS0+ YWdncmVnYXRlZHVwdG8pID09IFJGX1NLSVBQRUQgJiYKIAkJCQl3aW5zdGF0ZS0+YWdncmVnYXRl ZHVwdG8gPT0gd2luc3RhdGUtPmFnZ3JlZ2F0ZWRiYXNlKQotCQkJewotI2lmZGVmIFJQUl9ERUJV RwotCQkJCXByaW50Zigic2tpcCBjdXJyZW50IHJvdyBmb3IgYWdncmVnYXRpb25cbiIpOwotI2Vu ZGlmCiAJCQkJYnJlYWs7Ci0JCQl9CiAJCX0KIAogCQkvKiBTZXQgdHVwbGUgY29udGV4dCBmb3Ig ZXZhbHVhdGlvbiBvZiBhZ2dyZWdhdGUgYXJndW1lbnRzICovCkBAIC0xMzU4LDcgKzEzMzYsOCBA QCBiZWdpbl9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCXdpbnN0YXRlLT5m cmFtZWhlYWRfdmFsaWQgPSBmYWxzZTsKIAl3aW5zdGF0ZS0+ZnJhbWV0YWlsX3ZhbGlkID0gZmFs c2U7CiAJd2luc3RhdGUtPmdyb3VwdGFpbF92YWxpZCA9IGZhbHNlOwotCWNyZWF0ZV9yZWR1Y2Vk X2ZyYW1lX21hcCh3aW5zdGF0ZSk7CisJaWYgKHJwcl9pc19kZWZpbmVkKHdpbnN0YXRlKSkKKwkJ Y2xlYXJfcmVkdWNlZF9mcmFtZSh3aW5zdGF0ZSk7CiAJd2luc3RhdGUtPnNwb29sZWRfcm93cyA9 IDA7CiAJd2luc3RhdGUtPmN1cnJlbnRwb3MgPSAwOwogCXdpbnN0YXRlLT5mcmFtZWhlYWRwb3Mg PSAwOwpAQCAtMTU4MSw5ICsxNTYwLDggQEAgcmVsZWFzZV9wYXJ0aXRpb24oV2luZG93QWdnU3Rh dGUgKndpbnN0YXRlKQogCXdpbnN0YXRlLT5wYXJ0aXRpb25fc3Bvb2xlZCA9IGZhbHNlOwogCXdp bnN0YXRlLT5uZXh0X3BhcnRpdGlvbiA9IHRydWU7CiAKLQkvKiBSZXNldCBSUFIgcmVkdWNlZCBm cmFtZSBtYXAgKi8KLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAgPSBOVUxMOwotCXdpbnN0 YXRlLT5hbGxvY19zeiA9IDA7CisJLyogUmVzZXQgUlBSIG1hdGNoIHJlc3VsdHMgKi8KKwljbGVh cl9yZWR1Y2VkX2ZyYW1lKHdpbnN0YXRlKTsKIAogCS8qIFJlc2V0IE5GQSBzdGF0ZSBmb3IgbmV3 IHBhcnRpdGlvbiAqLwogCXdpbnN0YXRlLT5uZmFDb250ZXh0ID0gTlVMTDsKQEAgLTIzNjYsMTEg KzIzNDQsNiBAQCBFeGVjV2luZG93QWdnKFBsYW5TdGF0ZSAqcHN0YXRlKQogCiAJQ0hFQ0tfRk9S X0lOVEVSUlVQVFMoKTsKIAotI2lmZGVmIFJQUl9ERUJVRwotCXByaW50ZigiRXhlY1dpbmRvd0Fn ZyBjYWxsZWQuIHBvczogIiBJTlQ2NF9GT1JNQVQgIlxuIiwKLQkJICAgd2luc3RhdGUtPmN1cnJl bnRwb3MpOwotI2VuZGlmCi0KIAlpZiAod2luc3RhdGUtPnN0YXR1cyA9PSBXSU5ET1dBR0dfRE9O RSkKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTI0ODAsMTQgKzI0NTMsMTMgQEAgRXhlY1dpbmRvd0Fn ZyhQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJaWYgKHdpbnN0YXRlLT5zdGF0dXMgPT0gV0lORE9XQUdH X1JVTikKIAkJewogCQkJLyoKLQkJCSAqIElmIFJQUiBpcyBkZWZpbmVkIGFuZCBza2lwIG1vZGUg aXMgbmV4dCByb3csIHdlIG5lZWQgdG8gY2xlYXIKLQkJCSAqIGV4aXN0aW5nIHJlZHVjZWQgZnJh bWUgaW5mbyBzbyB0aGF0IHdlIG5ld2x5IGNhbGN1bGF0ZSB0aGUgaW5mbwotCQkJICogc3RhcnRp bmcgZnJvbSBjdXJyZW50IHJvdy4KKwkJCSAqIElmIFJQUiBpcyBkZWZpbmVkIGFuZCBza2lwIG1v ZGUgaXMgbmV4dCByb3csIGNsZWFyIHRoZSBjdXJyZW50CisJCQkgKiBtYXRjaCBzbyB0aGUgbmV4 dCByb3cgdHJpZ2dlcnMgcmUtZXZhbHVhdGlvbi4KIAkJCSAqLwogCQkJaWYgKHJwcl9pc19kZWZp bmVkKHdpbnN0YXRlKSkKIAkJCXsKIAkJCQlpZiAod2luc3RhdGUtPnJwU2tpcFRvID09IFNUX05F WFRfUk9XKQotCQkJCQljbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSk7CisJCQkJCWNs ZWFyX3JlZHVjZWRfZnJhbWUod2luc3RhdGUpOwogCQkJfQogCiAJCQkvKgpAQCAtMjk4Niw5ICsy OTU4LDYgQEAgRXhlY0luaXRXaW5kb3dBZ2coV2luZG93QWdnICpub2RlLCBFU3RhdGUgKmVzdGF0 ZSwgaW50IGVmbGFncykKIAkJCW5hbWUgPSB0ZS0+cmVzbmFtZTsKIAkJCWV4cHIgPSB0ZS0+ZXhw cjsKIAotI2lmZGVmIFJQUl9ERUJVRwotCQkJcHJpbnRmKCJkZWZpbmVWYXJpYWJsZSBuYW1lOiAl c1xuIiwgbmFtZSk7Ci0jZW5kaWYKIAkJCXdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxpc3QgPQog CQkJCWxhcHBlbmQod2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCwKIAkJCQkJCW1ha2VTdHJp bmcocHN0cmR1cChuYW1lKSkpOwpAQCAtMzY2OCw3ICszNjM3LDcgQEAgaWdub3JlbnVsbHNfZ2V0 ZnVuY2FyZ2luZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFyZ25vLAogCWludAkJCW5v dG51bGxfb2Zmc2V0OwogCWludAkJCW5vdG51bGxfcmVscG9zOwogCWludAkJCWZvcndhcmQ7Ci0J aW50CQkJbnVtX3JlZHVjZWRfZnJhbWU7CisJaW50NjQJCW51bV9yZWR1Y2VkX2ZyYW1lOwogCiAJ QXNzZXJ0KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CiAJd2luc3RhdGUgPSB3aW5vYmot PndpbnN0YXRlOwpAQCAtMzk2OCwxNCArMzkzNywxMiBAQCBycHJfaXNfZGVmaW5lZChXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUpCiAgKiBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKICAq IC0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KLXN0YXRpYyBpbnQKK3N0YXRpYyBpbnQ2NAogcm93X2lz X2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogewogCVdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CiAJaW50CQkJc3RhdGU7 Ci0JaW50CQkJcnRuOwotCWludDY0CQlpOwotCWludAkJCW51bV9yZWR1Y2VkX3Jvd3M7CisJaW50 NjQJCXJ0bjsKIAogCWlmICghcnByX2lzX2RlZmluZWQod2luc3RhdGUpKQogCXsKQEAgLTM5ODQs MTQgKzM5NTEsMTAgQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9i aiwgaW50NjQgcG9zKQogCQkgKiB3aW5kb3cgZnJhbWUuCiAJCSAqLwogCQlydG4gPSAwOwotI2lm ZGVmIFJQUl9ERUJVRwotCQlwcmludGYoInJvd19pc19pbl9yZWR1Y2VkX2ZyYW1lIHJldHVybnMg JWQ6IHBvczogIiBJTlQ2NF9GT1JNQVQgIlxuIiwKLQkJCSAgIHJ0biwgcG9zKTsKLSNlbmRpZgog CQlyZXR1cm4gcnRuOwogCX0KIAotCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0 YXRlLCBwb3MpOworCXN0YXRlID0gZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKHdpbnN0YXRlLCBw b3MpOwogCiAJaWYgKHN0YXRlID09IFJGX05PVF9ERVRFUk1JTkVEKQogCXsKQEAgLTM5OTksMTYg KzM5NjIsMTIgQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwg aW50NjQgcG9zKQogCQl1cGRhdGVfcmVkdWNlZF9mcmFtZSh3aW5vYmosIHBvcyk7CiAJfQogCi0J c3RhdGUgPSBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHBvcyk7CisJc3RhdGUgPSBn ZXRfcmVkdWNlZF9mcmFtZV9zdGF0dXMod2luc3RhdGUsIHBvcyk7CiAKIAlzd2l0Y2ggKHN0YXRl KQogCXsKIAkJY2FzZSBSRl9GUkFNRV9IRUFEOgotCQkJbnVtX3JlZHVjZWRfcm93cyA9IDE7Ci0J CQlmb3IgKGkgPSBwb3MgKyAxOwotCQkJCSBnZXRfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUs IGkpID09IFJGX1NLSVBQRUQ7IGkrKykKLQkJCQludW1fcmVkdWNlZF9yb3dzKys7Ci0JCQlydG4g PSBudW1fcmVkdWNlZF9yb3dzOworCQkJcnRuID0gd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGg7 CiAJCQlicmVhazsKIAogCQljYXNlIFJGX1NLSVBQRUQ6CkBAIC00MDE2LDYgKzM5NzUsNyBAQCBy b3dfaXNfaW5fcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAJ CQlicmVhazsKIAogCQljYXNlIFJGX1VOTUFUQ0hFRDoKKwkJY2FzZSBSRl9FTVBUWV9NQVRDSDoK IAkJCXJ0biA9IC0xOwogCQkJYnJlYWs7CiAKQEAgLTQwMjUsOTEgKzM5ODUsNTYgQEAgcm93X2lz X2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKQogCQkJYnJl YWs7CiAJfQogCi0jaWZkZWYgUlBSX0RFQlVHCi0JcHJpbnRmKCJyb3dfaXNfaW5fcmVkdWNlZF9m cmFtZSByZXR1cm5zICVkOiBwb3M6ICIgSU5UNjRfRk9STUFUICJcbiIsCi0JCSAgIHJ0biwgcG9z KTsKLSNlbmRpZgogCXJldHVybiBydG47CiB9CiAKLSNkZWZpbmUgUkVEVUNFRF9GUkFNRV9NQVBf SU5JVF9TSVpFCTEwMjRMCi0KIC8qCi0gKiBjcmVhdGVfcmVkdWNlZF9mcmFtZV9tYXAKLSAqIENy ZWF0ZSByZWR1Y2VkIGZyYW1lIG1hcAorICogY2xlYXJfcmVkdWNlZF9mcmFtZQorICogQ2xlYXIg cmVkdWNlZCBmcmFtZSBzdGF0dXMKICAqLwogc3RhdGljIHZvaWQKLWNyZWF0ZV9yZWR1Y2VkX2Zy YW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCitjbGVhcl9yZWR1Y2VkX2ZyYW1lKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIHsKLQl3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9tYXAg PQotCQlNZW1vcnlDb250ZXh0QWxsb2Mod2luc3RhdGUtPnBhcnRjb250ZXh0LAotCQkJCQkJICAg UkVEVUNFRF9GUkFNRV9NQVBfSU5JVF9TSVpFKTsKLQl3aW5zdGF0ZS0+YWxsb2Nfc3ogPSBSRURV Q0VEX0ZSQU1FX01BUF9JTklUX1NJWkU7Ci0JY2xlYXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3Rh dGUpOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSBmYWxzZTsKKwl3aW5zdGF0ZS0+cnBy X21hdGNoX21hdGNoZWQgPSBmYWxzZTsKKwl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0ID0gLTE7 CisJd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGggPSAwOwogfQogCiAvKgotICogY2xlYXJfcmVk dWNlZF9mcmFtZV9tYXAKLSAqIENsZWFyIHJlZHVjZWQgZnJhbWUgbWFwCi0gKi8KLXN0YXRpYyB2 b2lkCi1jbGVhcl9yZWR1Y2VkX2ZyYW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCi17 Ci0JQXNzZXJ0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCAhPSBOVUxMKTsKLQlNZW1TZXQo d2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwLCBSRl9OT1RfREVURVJNSU5FRCwKLQkJICAgd2lu c3RhdGUtPmFsbG9jX3N6KTsKLX0KLQotLyoKLSAqIGdldF9yZWR1Y2VkX2ZyYW1lX21hcAotICog R2V0IHJlZHVjZWQgZnJhbWUgbWFwIHNwZWNpZmllZCBieSBwb3MKKyAqIGdldF9yZWR1Y2VkX2Zy YW1lX3N0YXR1cworICoJCUxvb2sgdXAgYSBwb3NpdGlvbiBhZ2FpbnN0IHRoZSBjdXJyZW50IG1h dGNoLgorICoKKyAqIFJldHVybnMgb25lIG9mIHRoZSBSRl8qIGNvbnN0YW50czoKKyAqICAgUkZf Tk9UX0RFVEVSTUlORUQgIHBvcyBoYXMgbm90IGJlZW4gcHJvY2Vzc2VkIHlldAorICogICBSRl9G UkFNRV9IRUFEICAgICAgcG9zIGlzIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBtYXRjaAorICog ICBSRl9TS0lQUEVEICAgICAgICAgcG9zIGlzIGluc2lkZSB0aGUgY3VycmVudCBtYXRjaCBidXQg bm90IHRoZSBzdGFydAorICogICBSRl9VTk1BVENIRUQgICAgICAgcG9zIGlzIHByb2Nlc3NlZCBi dXQgbm90IHBhcnQgb2YgYW55IG1hdGNoCiAgKi8KIHN0YXRpYyBpbnQKLWdldF9yZWR1Y2VkX2Zy YW1lX21hcChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKK2dldF9yZWR1Y2Vk X2ZyYW1lX3N0YXR1cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcykKIHsKLQlB c3NlcnQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOwotCUFzc2VydChwb3Mg Pj0gMCk7CisJaW50NjQJCXN0YXJ0ID0gd2luc3RhdGUtPnJwcl9tYXRjaF9zdGFydDsKKwlpbnQ2 NAkJbGVuZ3RoID0gd2luc3RhdGUtPnJwcl9tYXRjaF9sZW5ndGg7CiAKLQkvKgotCSAqIElmIHBv cyBpcyBub3QgaW4gdGhlIHJlZHVjZWQgZnJhbWUgbWFwLCBpdCBtZWFucyB0aGF0IGFueSBpbmZv Ci0JICogcmVnYXJkaW5nIHRoZSBwb3MgaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQgeWV0LiBTbyB3 ZSByZXR1cm4KLQkgKiBSRl9OT1RfREVURVJNSU5FRC4KLQkgKi8KLQlpZiAocG9zID49IHdpbnN0 YXRlLT5hbGxvY19zeikKKwlpZiAoIXdpbnN0YXRlLT5ycHJfbWF0Y2hfdmFsaWQpCiAJCXJldHVy biBSRl9OT1RfREVURVJNSU5FRDsKIAotCXJldHVybiB3aW5zdGF0ZS0+cmVkdWNlZF9mcmFtZV9t YXBbcG9zXTsKLX0KKwkvKiBFbXB0eSBtYXRjaDogY292ZXJzIG9ubHkgdGhlIHN0YXJ0IHBvc2l0 aW9uICovCisJaWYgKHBvcyA9PSBzdGFydCAmJiB3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQg JiYgbGVuZ3RoID09IDApCisJCXJldHVybiBSRl9FTVBUWV9NQVRDSDsKIAotLyoKLSAqIHJlZ2lz dGVyX3JlZHVjZWRfZnJhbWVfbWFwCi0gKiBBZGQvcmVwbGFjZSByZWR1Y2VkIGZyYW1lIG1hcCBt ZW1iZXIgYXQgcG9zLgotICogSWYgdGhlcmUncyBubyBlbm91Z2ggc3BhY2UsIGV4cGFuZCB0aGUg bWFwLgotICovCi1zdGF0aWMgdm9pZAotcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAoV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MsIGludCB2YWwpCi17Ci0JaW50NjQJCXJlYWxs b2Nfc3o7Ci0KLQlBc3NlcnQod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwICE9IE5VTEwpOwot Ci0JaWYgKHBvcyA8IDApCi0JCWVsb2coRVJST1IsICJ3cm9uZyBwb3M6ICIgSU5UNjRfRk9STUFU LCBwb3MpOwotCi0Jd2hpbGUgKHBvcyA+IHdpbnN0YXRlLT5hbGxvY19zeiAtIDEpCi0JewotCQly ZWFsbG9jX3N6ID0gd2luc3RhdGUtPmFsbG9jX3N6ICogMjsKLQotCQl3aW5zdGF0ZS0+cmVkdWNl ZF9mcmFtZV9tYXAgPQotCQkJcmVwYWxsb2Mod2luc3RhdGUtPnJlZHVjZWRfZnJhbWVfbWFwLCBy ZWFsbG9jX3N6KTsKKwkvKiBPdXRzaWRlIHRoZSByZXN1bHQgcmFuZ2UgKi8KKwlpZiAocG9zIDwg c3RhcnQgfHwgcG9zID49IHN0YXJ0ICsgbGVuZ3RoKQorCQlyZXR1cm4gUkZfTk9UX0RFVEVSTUlO RUQ7CiAKLQkJTWVtU2V0KHdpbnN0YXRlLT5yZWR1Y2VkX2ZyYW1lX21hcCArIHdpbnN0YXRlLT5h bGxvY19zeiwKLQkJCSAgIFJGX05PVF9ERVRFUk1JTkVELCByZWFsbG9jX3N6IC0gd2luc3RhdGUt PmFsbG9jX3N6KTsKKwlpZiAoIXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCkKKwkJcmV0dXJu IFJGX1VOTUFUQ0hFRDsKIAotCQl3aW5zdGF0ZS0+YWxsb2Nfc3ogPSByZWFsbG9jX3N6OwotCX0K KwlpZiAocG9zID09IHN0YXJ0KQorCQlyZXR1cm4gUkZfRlJBTUVfSEVBRDsKIAotCXdpbnN0YXRl LT5yZWR1Y2VkX2ZyYW1lX21hcFtwb3NdID0gdmFsOworCXJldHVybiBSRl9TS0lQUEVEOwogfQog CiAvKgpAQCAtNDE1Niw3ICs0MDgxLDExIEBAIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09i amVjdCB3aW5vYmosIGludDY0IHBvcykKIAlpZiAod2luc3RhdGUtPm5mYUNvbnRleHQgIT0gTlVM TCAmJgogCQlwb3MgPCB3aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0Y2hTdGFydFJvdykKIAl7Ci0J CXJlZ2lzdGVyX3JlZHVjZWRfZnJhbWVfbWFwKHdpbnN0YXRlLCBwb3MsIFJGX1VOTUFUQ0hFRCk7 CisJCS8qIGFscmVhZHkgcHJvY2Vzc2VkLCB1bm1hdGNoZWQgKi8KKwkJd2luc3RhdGUtPnJwcl9t YXRjaF92YWxpZCA9IHRydWU7CisJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9IGZhbHNl OworCQl3aW5zdGF0ZS0+cnByX21hdGNoX3N0YXJ0ID0gcG9zOworCQl3aW5zdGF0ZS0+cnByX21h dGNoX2xlbmd0aCA9IDE7CiAJCXJldHVybjsKIAl9CiAKQEAgLTQxNzMsNyArNDEwMiwxMSBAQCB1 cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAJCSAq LwogCQlpZiAocG9zIDw9IHdpbnN0YXRlLT5uZmFMYXN0UHJvY2Vzc2VkUm93KQogCQl7Ci0JCQly ZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgcG9zLCBSRl9VTk1BVENIRUQpOwor CQkJLyogYWxyZWFkeSBwcm9jZXNzZWQsIHVubWF0Y2hlZCAqLworCQkJd2luc3RhdGUtPnJwcl9t YXRjaF92YWxpZCA9IHRydWU7CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQgPSBmYWxz ZTsKKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfc3RhcnQgPSBwb3M7CisJCQl3aW5zdGF0ZS0+cnBy X21hdGNoX2xlbmd0aCA9IDE7CiAJCQlyZXR1cm47CiAJCX0KIAkJLyogTm90IHlldCBwcm9jZXNz ZWQgLSBjcmVhdGUgbmV3IGNvbnRleHQgYW5kIHN0YXJ0IGZyZXNoICovCkBAIC00MjQ1LDI2ICs0 MTc4LDM4IEBAIHJlZ2lzdGVyX3Jlc3VsdDoKIAlBc3NlcnQocG9zID09IHRhcmdldEN0eC0+bWF0 Y2hTdGFydFJvdyk7CiAKIAkvKgotCSAqIFJlZ2lzdGVyIHJlZHVjZWQgZnJhbWUgbWFwIGJhc2Vk IG9uIG1hdGNoIHJlc3VsdC4KKwkgKiBSZWNvcmQgbWF0Y2ggcmVzdWx0LgogCSAqLworCXdpbnN0 YXRlLT5ycHJfbWF0Y2hfdmFsaWQgPSB0cnVlOworCXdpbnN0YXRlLT5ycHJfbWF0Y2hfc3RhcnQg PSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3c7CisKIAlpZiAodGFyZ2V0Q3R4LT5tYXRjaEVuZFJv dyA8IHRhcmdldEN0eC0+bWF0Y2hTdGFydFJvdykKIAl7CiAJCW1hdGNoTGVuID0gdGFyZ2V0Q3R4 LT5sYXN0UHJvY2Vzc2VkUm93IC0gdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0Um93ICsgMTsKIAotCQly ZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgdGFyZ2V0Q3R4LT5tYXRjaFN0YXJ0 Um93LCBSRl9VTk1BVENIRUQpOwotCQlFeGVjUlBSUmVjb3JkQ29udGV4dEZhaWx1cmUod2luc3Rh dGUsIG1hdGNoTGVuKTsKKwkJaWYgKHRhcmdldEN0eC0+bWF0Y2hlZFN0YXRlICE9IE5VTEwpCisJ CXsKKwkJCS8qIEVtcHR5IG1hdGNoOiBGSU4gcmVhY2hlZCBidXQgMCByb3dzIGNvbnN1bWVkICov CisJCQl3aW5zdGF0ZS0+cnByX21hdGNoX21hdGNoZWQgPSB0cnVlOworCQkJd2luc3RhdGUtPnJw cl9tYXRjaF9sZW5ndGggPSAwOworCQkJRXhlY1JQUlJlY29yZENvbnRleHRTdWNjZXNzKHdpbnN0 YXRlLCAwKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qIE5vIG1hdGNoICovCisJCQl3aW5zdGF0 ZS0+cnByX21hdGNoX21hdGNoZWQgPSBmYWxzZTsKKwkJCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbGVu Z3RoID0gMTsKKwkJCUV4ZWNSUFJSZWNvcmRDb250ZXh0RmFpbHVyZSh3aW5zdGF0ZSwgbWF0Y2hM ZW4pOworCQl9CiAJCUV4ZWNSUFJGcmVlQ29udGV4dCh3aW5zdGF0ZSwgdGFyZ2V0Q3R4KTsKIAkJ cmV0dXJuOwogCX0KIAotCS8qIE1hdGNoIHN1Y2NlZWRlZCAtIHJlZ2lzdGVyIGZyYW1lIG1hcCBh bmQgcmVjb3JkIHN0YXRpc3RpY3MgKi8KKwkvKiBNYXRjaCBzdWNjZWVkZWQgKi8KIAltYXRjaExl biA9IHRhcmdldEN0eC0+bWF0Y2hFbmRSb3cgLSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3cgKyAx OwogCi0JcmVnaXN0ZXJfcmVkdWNlZF9mcmFtZV9tYXAod2luc3RhdGUsIHRhcmdldEN0eC0+bWF0 Y2hTdGFydFJvdywgUkZfRlJBTUVfSEVBRCk7Ci0JZm9yIChpbnQ2NCBpID0gdGFyZ2V0Q3R4LT5t YXRjaFN0YXJ0Um93ICsgMTsgaSA8PSB0YXJnZXRDdHgtPm1hdGNoRW5kUm93OyBpKyspCi0Jewot CQlyZWdpc3Rlcl9yZWR1Y2VkX2ZyYW1lX21hcCh3aW5zdGF0ZSwgaSwgUkZfU0tJUFBFRCk7Ci0J fQorCXdpbnN0YXRlLT5ycHJfbWF0Y2hfbWF0Y2hlZCA9IHRydWU7CisJd2luc3RhdGUtPnJwcl9t YXRjaF9sZW5ndGggPSBtYXRjaExlbjsKIAlFeGVjUlBSUmVjb3JkQ29udGV4dFN1Y2Nlc3Mod2lu c3RhdGUsIG1hdGNoTGVuKTsKIAogCS8qIFJlbW92ZSB0aGUgbWF0Y2hlZCBjb250ZXh0ICovCkBA IC00NzQ3LDcgKzQ2OTIsNyBAQCBXaW5HZXRTbG90SW5GcmFtZShXaW5kb3dPYmplY3Qgd2lub2Jq LCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CiAJaW50 NjQJCWFic19wb3M7CiAJaW50NjQJCW1hcmtfcG9zOwotCWludAkJCW51bV9yZWR1Y2VkX2ZyYW1l OworCWludDY0CQludW1fcmVkdWNlZF9mcmFtZTsKIAogCUFzc2VydChXaW5kb3dPYmplY3RJc1Zh bGlkKHdpbm9iaikpOwogCXdpbnN0YXRlID0gd2lub2JqLT53aW5zdGF0ZTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKaW5kZXggMzMwMjhjM2YxMGIuLmM2NzJkMjlmMzViIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aApAQCAtMjQ5OSwxMCArMjQ5OSwxMiBAQCB0eXBlZGVmIGVudW0gV2luZG93QWdnU3RhdHVzCiAJ CQkJCQkJCQkgKiB0dXBsZXMgZHVyaW5nIHNwb29sICovCiB9IFdpbmRvd0FnZ1N0YXR1czsKIAot I2RlZmluZQlSRl9OT1RfREVURVJNSU5FRAkwCi0jZGVmaW5lCVJGX0ZSQU1FX0hFQUQJCTEKLSNk ZWZpbmUJUkZfU0tJUFBFRAkJCTIKLSNkZWZpbmUJUkZfVU5NQVRDSEVECQkzCisvKiBSUFIgcmVk dWNlZCBmcmFtZSBzdGF0ZXMgcmV0dXJuZWQgYnkgZ2V0X3JlZHVjZWRfZnJhbWVfc3RhdHVzKCkg Ki8KKyNkZWZpbmUJUkZfTk9UX0RFVEVSTUlORUQJMAkvKiBub3QgeWV0IHByb2Nlc3NlZCAqLwor I2RlZmluZQlSRl9GUkFNRV9IRUFECQkxCS8qIHN0YXJ0IHJvdyBvZiBhIG1hdGNoICovCisjZGVm aW5lCVJGX1NLSVBQRUQJCQkyCS8qIGludGVyaW9yIHJvdyBvZiBhIG1hdGNoICovCisjZGVmaW5l CVJGX1VOTUFUQ0hFRAkJMwkvKiBubyBtYXRjaCBhdCB0aGlzIHJvdyAqLworI2RlZmluZQlSRl9F TVBUWV9NQVRDSAkJNAkvKiBlbXB0eSBtYXRjaCAoMCByb3dzKTsgdHJlYXRlZCBhcyB1bm1hdGNo ZWQgKi8KIAogLyoKICAqIFJQUk5GQVN0YXRlIC0gc2luZ2xlIE5GQSBzdGF0ZSBmb3IgcGF0dGVy biBtYXRjaGluZwpAQCAtMjY5NCwxMiArMjY5NiwxMSBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dB Z2dTdGF0ZQogCVR1cGxlVGFibGVTbG90ICpuZXh0X3Nsb3Q7CS8qIE5FWFQgcm93IG5hdmlnYXRp b24gb3BlcmF0b3IgKi8KIAlUdXBsZVRhYmxlU2xvdCAqbnVsbF9zbG90OwkvKiBhbGwgTlVMTCBz bG90ICovCiAKLQkvKgotCSAqIEVhY2ggYnl0ZSBjb3JyZXNwb25kcyB0byBhIHJvdyBwb3NpdGlv bmVkIGF0IGFic29sdXRlIGl0cyBwb3MgaW4KLQkgKiBwYXJ0aXRpb24uICBTZWUgYWJvdmUgZGVm aW5pdGlvbiBmb3IgUkZfKi4gVXNlZCBmb3IgUlBSLgotCSAqLwotCWNoYXIJICAgKnJlZHVjZWRf ZnJhbWVfbWFwOwotCWludDY0CQlhbGxvY19zejsJCS8qIHNpemUgb2YgdGhlIG1hcCAqLworCS8q IFJQUiBjdXJyZW50IG1hdGNoIHJlc3VsdCAqLworCWJvb2wJCXJwcl9tYXRjaF92YWxpZDsJLyog dHJ1ZSBpZiBhIG1hdGNoIHJlc3VsdCBpcyBzZXQgKi8KKwlib29sCQlycHJfbWF0Y2hfbWF0Y2hl ZDsJLyogdHJ1ZSBpZiB0aGUgcmVzdWx0IHdhcyBhIG1hdGNoICovCisJaW50NjQJCXJwcl9tYXRj aF9zdGFydDsJLyogc3RhcnQgcG9zaXRpb24gb2YgdGhlIG1hdGNoIHJlc3VsdCAqLworCWludDY0 CQlycHJfbWF0Y2hfbGVuZ3RoOwkvKiBudW1iZXIgb2Ygcm93cyBtYXRjaGVkICgwID0gZW1wdHkp ICovCiB9IFdpbmRvd0FnZ1N0YXRlOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IGJkMzQ1OTA2MTMzLi43OWNiYzI0 NjAzOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTMz NDgsOCArMzM0OCw4IEBAIFdJTkRPVyB3IEFTICgKICAgIFBhdHRlcm46ICgoYScgYicpKyIgYykq CiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVz OiA5IHBlYWssIDE3OCB0b3RhbCwgMCBtZXJnZWQKLSAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2 MSB0b3RhbCwgMjIgcHJ1bmVkCi0gICBORkE6IDEgbWF0Y2hlZCAobGVuIDU3LzU3LzU3LjApLCAw IG1pc21hdGNoZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjAgcHJ1bmVk CisgICBORkE6IDMgbWF0Y2hlZCAobGVuIDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZB OiAwIGFic29yYmVkLCAzNyBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogKDkg cm93cykKQEAgLTMzODUsOCArMzM4NSw4IEBAIFdJTkRPVyB3IEFTICgKICAgIFBhdHRlcm46IChh IChiIGMpKykqCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiA3IHBlYWssIDE2MCB0b3RhbCwgMCBtZXJnZWQKLSAgIE5GQSBDb250ZXh0czog NCBwZWFrLCA2MSB0b3RhbCwgMjIgcHJ1bmVkCi0gICBORkE6IDEgbWF0Y2hlZCAobGVuIDU3LzU3 LzU3LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwg MjAgcHJ1bmVkCisgICBORkE6IDMgbWF0Y2hlZCAobGVuIDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hl ZAogICAgTkZBOiAwIGFic29yYmVkLCAzNyBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29w cz0xKQogKDkgcm93cykKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0009-Add-fixed-length-group-absorption-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tq6a48 RnJvbSA1ZDliZTc0MmM2MjY2ZDhmYmZmODg3YTA1NzdjMzc3NDNkNDI5NjkwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjE6NDc6MDEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgZml4 ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb24gZm9yIFJQUgoKRXh0ZW5kIGNvbnRleHQgYWJzb3Jw dGlvbiB0byB1bmJvdW5kZWQgZ3JvdXBzIHdpdGggZml4ZWQtbGVuZ3RoCmNoaWxkcmVuIChtaW4g PT0gbWF4LCByZWN1cnNpdmVseSkuICBQYXR0ZXJucyBsaWtlIChBIEJ7Mn0pKyBvcgooKEEgKEIg Qyl7Mn0pezJ9KSsgYXJlIG5vdyBhYnNvcmJhYmxlLCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0 bwp7MSwxfSBWQVJzIGF0IGNvbXBpbGUgdGltZSB3aXRob3V0IGFjdHVhbGx5IHVucm9sbGluZy4K CmlzRml4ZWRMZW5ndGhDaGlsZHJlbigpIHJlY3Vyc2l2ZWx5IHZlcmlmaWVzIG1pbiA9PSBtYXgg Zm9yIGFsbApjaGlsZHJlbiBpbmNsdWRpbmcgbmVzdGVkIHN1Ymdyb3VwcywgZXh0ZW5kaW5nIHRo ZSBleGlzdGluZyBDYXNlIDIKaW4gaXNVbmJvdW5kZWRTdGFydCgpLgoKQWJzb3JwdGlvbiBjb21w YXJpc29uIGluIG5mYV9zdGF0ZXNfY292ZXJlZCByZXF1aXJlcyBzdGF0ZXMgdG8gYmUgYXQKYW4g QUJTT1JCQUJMRSBqdWRnbWVudCBwb2ludCwgd2hlcmUgY291bnQtZG9taW5hbmNlIGlzIGd1YXJh bnRlZWQuClRoZSBpbmxpbmUgYWR2YW5jZSBpbiBuZmFfbWF0Y2ggaXMgZ2VuZXJhbGl6ZWQgdG8g YWR2YW5jZSBib3VuZGVkClZBUnMgd2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbiB0aHJvdWdo IEVORCBjaGFpbnMgdG8gcmVhY2ggdGhlCmp1ZGdtZW50IHBvaW50LgoKRml4IGlzQWJzb3JiYWJs ZSBwcm9wYWdhdGlvbiBpbiBuZmFfYWR2YW5jZV92YXIgYW5kIG5mYV9hZHZhbmNlX2VuZApleGl0 IHBhdGhzLCB3aGVyZSByZXVzaW5nIGEgc3RhdGUgb2JqZWN0IHNraXBwZWQgcmVjb21wdXRhdGlv bi4KCk1hcmsgVkFSIGVsZW1lbnRzIGluIHRoZSBERlMgdmlzaXRlZCBiaXRtYXAgYXQgbmZhX2Fk ZF9zdGF0ZV91bmlxdWUKaW5zdGVhZCBvZiBhdCBuZmFfYWR2YW5jZV9zdGF0ZSBlbnRyeSwgc28g dGhhdCBsb29wLWJhY2sgdGhyb3VnaCBBTFQKdG8gdGhlIHNhbWUgVkFSIGlzIG5vdCBpbmNvcnJl Y3RseSBibG9ja2VkIGJ5IGN5Y2xlIGRldGVjdGlvbi4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMgICAgICAgICAgICB8IDExMCArKysrKystLQogc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vcnByLmMgICAgICAgICAgfCAxMzYgKysrKysrKy0tCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8ICA4MyArKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0IHwgMjA2ICsrKysrKysrKysrKystCiBzcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0ICAgICB8IDMyMSArKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgICAgICAgICB8ICAzNiArKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgIHwgMTE0ICsrKysrKysr CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbCAgICAgICAgICB8IDE2OCArKysrKysr KysrKwogOCBmaWxlcyBjaGFuZ2VkLCAxMTExIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCA3ZDBmOGZkNDAxYy4uYWVjMTA1N2UxYjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTE3NjAsNiArMTc2MCwxMCBAQCBuZmFfYWRkX3N0YXRl X3VuaXF1ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgUlBS TkZBU3RhdGUgKgogCVJQUk5GQVN0YXRlICpzOwogCVJQUk5GQVN0YXRlICp0YWlsID0gTlVMTDsK IAorCS8qIE1hcmsgVkFSIGluIHZpc2l0ZWQgYmVmb3JlIGR1cGxpY2F0ZSBjaGVjayB0byBwcmV2 ZW50IERGUyBsb29wcyAqLworCXdpbnN0YXRlLT5uZmFWaXNpdGVkRWxlbXNbV09SRE5VTShzdGF0 ZS0+ZWxlbUlkeCldIHw9CisJCSgoYml0bWFwd29yZCkgMSA8PCBCSVROVU0oc3RhdGUtPmVsZW1J ZHgpKTsKKwogCS8qIENoZWNrIGZvciBkdXBsaWNhdGUgYW5kIGZpbmQgdGFpbCAqLwogCWZvciAo cyA9IGN0eC0+c3RhdGVzOyBzICE9IE5VTEw7IHMgPSBzLT5uZXh0KQogCXsKQEAgLTIwMzMsNiAr MjAzNywxNCBAQCBuZmFfc3RhdGVzX2NvdmVyZWQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSTkZB Q29udGV4dCAqb2xkZXIsIFJQUk5GQUNvbnRleHQgKm5ldwogCQllbGVtID0gJnBhdHRlcm4tPmVs ZW1lbnRzW25ld2VyU3RhdGUtPmVsZW1JZHhdOwogCQlkZXB0aCA9IGVsZW0tPmRlcHRoOwogCisJ CS8qCisJCSAqIE9ubHkgY29tcGFyZSBhdCBhYnNvcnB0aW9uIGp1ZGdtZW50IHBvaW50cyAoUlBS X0VMRU1fQUJTT1JCQUJMRSkuCisJCSAqIEp1ZGdtZW50IHBvaW50cyBhcmUgd2hlcmUgY291bnQt ZG9taW5hbmNlIGd1YXJhbnRlZXMgdGhlIG5ld2VyCisJCSAqIGNvbnRleHQncyBmdXR1cmUgbWF0 Y2hlcyBhcmUgYSBzdWJzZXQgb2YgdGhlIG9sZGVyJ3MuCisJCSAqLworCQlpZiAoIVJQUkVsZW1J c0Fic29yYmFibGUoZWxlbSkpCisJCQlyZXR1cm4gZmFsc2U7CisKIAkJZm9yIChvbGRlclN0YXRl ID0gb2xkZXItPnN0YXRlczsgb2xkZXJTdGF0ZSAhPSBOVUxMOyBvbGRlclN0YXRlID0gb2xkZXJT dGF0ZS0+bmV4dCkKIAkJewogCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKQEAgLTIxNzUsOSAr MjE4NywxMCBAQCBuZmFfZXZhbF92YXJfbWF0Y2goV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBS UFJQYXR0ZXJuRWxlbWVudCAqZWxlbSwKICAqICAgLSBub3QgbWF0Y2hlZDogcmVtb3ZlIHN0YXRl IChleGl0IGFsdGVybmF0aXZlcyBhbHJlYWR5IGV4aXN0IGZyb20KICAqICAgICBwcmV2aW91cyBh ZHZhbmNlIHdoZW4gY291bnQgPj0gbWluIHdhcyBzYXRpc2ZpZWQpCiAgKgotICogRm9yIHNpbXBs ZSBWQVJzIChtaW49bWF4PTEpIGZvbGxvd2VkIGJ5IEVORDoKLSAqICAgLSBBZHZhbmNlIHRvIEVO RCBhbmQgdXBkYXRlIGdyb3VwIGNvdW50IGJlZm9yZSBhYnNvcmIgcGhhc2UKLSAqICAgLSBUaGlz IGVuc3VyZXMgYWJzb3JwdGlvbiBjYW4gY29tcGFyZSBzdGF0ZXMgYnkgZ3JvdXAgY29tcGxldGlv bgorICogRm9yIFZBUnMgdGhhdCByZWFjaGVkIG1heCBjb3VudCBmb2xsb3dlZCBieSBFTkQ6Cisg KiAgIC0gQWR2YW5jZSB0aHJvdWdoIEVORCBjaGFpbiB0byByZWFjaCBhYnNvcnB0aW9uIGp1ZGdt ZW50IHBvaW50CisgKiAgIC0gT25seSBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgs IG1heCAhPSBJTkYpIGFyZSBoYW5kbGVkCisgKiAgIC0gQ2hhaW5zIHRocm91Z2ggRU5EIGVsZW1l bnRzIHdoaWxlIGNvdW50ID49IG1heCAobXVzdC1leGl0IHBhdGgpCiAgKgogICogTm9uLVZBUiBl bGVtZW50cyAoQUxULCBFTkQsIEZJTikgYXJlIGtlcHQgYXMtaXMgZm9yIGFkdmFuY2UgcGhhc2Uu CiAgKi8KQEAgLTIxOTEsOSArMjIwNCw5IEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAqd2lu c3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAlSUFJORkFTdGF0 ZSAqbmV4dFN0YXRlOwogCiAJLyoKLQkgKiBFdmFsdWF0ZSBWQVIgZWxlbWVudHMgYWdhaW5zdCBj dXJyZW50IHJvdy4gRm9yIHNpbXBsZSBWQVJzIHdpdGggRU5ECi0JICogbmV4dCwgYWR2YW5jZSB0 byBFTkQgYW5kIHVwZGF0ZSBncm91cCBjb3VudCBpbmxpbmUgc28gYWJzb3JiIHBoYXNlIGNhbgot CSAqIGNvbXBhcmUgc3RhdGVzIHByb3Blcmx5LgorCSAqIEV2YWx1YXRlIFZBUiBlbGVtZW50cyBh Z2FpbnN0IGN1cnJlbnQgcm93LiBGb3IgVkFScyB0aGF0IHJlYWNoIG1heAorCSAqIGNvdW50IHdp dGggRU5EIG5leHQsIGFkdmFuY2UgdGhyb3VnaCBFTkQgY2hhaW4gaW5saW5lIHNvIGFic29yYiBw aGFzZQorCSAqIGNhbiBjb21wYXJlIHN0YXRlcyBhdCBqdWRnbWVudCBwb2ludHMuCiAJICovCiAJ Zm9yIChzdGF0ZSA9IGN0eC0+c3RhdGVzOyBzdGF0ZSAhPSBOVUxMOyBzdGF0ZSA9IG5leHRTdGF0 ZSkKIAl7CkBAIC0yMjIzLDM0ICsyMjM2LDYxIEBAIG5mYV9tYXRjaChXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJCQlzdGF0 ZS0+Y291bnRzW2RlcHRoXSA9IGNvdW50OwogCiAJCQkJLyoKLQkJCQkgKiBGb3Igc2ltcGxlIFZB UiAobWluPW1heD0xKSB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRvIEVORAotCQkJCSAqIGFuZCB1 cGRhdGUgZ3JvdXAgY291bnQgaW5saW5lLiBUaGlzIGtlZXBzIHN0YXRlIGluIHBsYWNlLAotCQkJ CSAqIHByZXNlcnZpbmcgbGV4aWNhbCBvcmRlci4KKwkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3Vu dCB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRocm91Z2ggRU5ECisJCQkJICogY2hhaW4gdG8gcmVh Y2ggdGhlIGFic29ycHRpb24ganVkZ21lbnQgcG9pbnQuIE9ubHkKKwkJCQkgKiBkZXRlcm1pbmlz dGljIGV4aXRzIChjb3VudCA+PSBtYXgsIG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOworCQkJCSAq IHVuYm91bmRlZCBWQVJzIHN0YXkgZm9yIGFkdmFuY2UgcGhhc2UuCiAJCQkJICovCi0JCQkJaWYg KGVsZW0tPm1pbiA9PSAxICYmIGVsZW0tPm1heCA9PSAxICYmCisJCQkJaWYgKFJQUkVsZW1Jc0Fi c29yYmFibGVCcmFuY2goZWxlbSkgJiYKKwkJCQkJIVJQUkVsZW1Jc0Fic29yYmFibGUoZWxlbSkg JiYKKwkJCQkJY291bnQgPj0gZWxlbS0+bWF4ICYmCiAJCQkJCVJQUkVsZW1Jc0VuZCgmZWxlbWVu dHNbZWxlbS0+bmV4dF0pKQogCQkJCXsKIAkJCQkJUlBSUGF0dGVybkVsZW1lbnQgKmVuZEVsZW0g PSAmZWxlbWVudHNbZWxlbS0+bmV4dF07CiAJCQkJCWludAkJCWVuZERlcHRoID0gZW5kRWxlbS0+ ZGVwdGg7CiAJCQkJCWludDMyCQllbmRDb3VudCA9IHN0YXRlLT5jb3VudHNbZW5kRGVwdGhdOwog Ci0JCQkJCUFzc2VydChjb3VudCA9PSAxKTsKLQotCQkJCQkvKiBJbmNyZW1lbnQgZ3JvdXAgY291 bnQgd2l0aCBvdmVyZmxvdyBwcm90ZWN0aW9uICovCisJCQkJCS8qIEluY3JlbWVudCBncm91cCBj b3VudCAqLwogCQkJCQlpZiAoZW5kQ291bnQgPCBSUFJfQ09VTlRfTUFYKQogCQkJCQkJZW5kQ291 bnQrKzsKLQotCQkJCQkvKgotCQkJCQkgKiBFTkQncyBtYXggY2FuIG5ldmVyIGJlIGV4Y2VlZGVk IGhlcmUgYmVjYXVzZQotCQkJCQkgKiBuZmFfYWR2YW5jZV9lbmQgb25seSBsb29wcyB3aGVuIGNv dW50IDwgbWF4LCBzbwotCQkJCQkgKiBlbmRDb3VudCBlbnRlcmluZyBpbmxpbmUgYWR2YW5jZSBp cyBhdCBtb3N0IG1heC0xLCBhbmQKLQkJCQkJICogaW5jcmVtZW50aW5nIHlpZWxkcyBhdCBtb3N0 IG1heC4KLQkJCQkJICovCiAJCQkJCUFzc2VydChlbmRFbGVtLT5tYXggPT0gUlBSX1FVQU5USVRZ X0lORiB8fAogCQkJCQkJICAgZW5kQ291bnQgPD0gZW5kRWxlbS0+bWF4KTsKIAogCQkJCQlzdGF0 ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCQkJCXN0YXRlLT5jb3VudHNbZW5kRGVwdGhdID0g ZW5kQ291bnQ7CisKKwkJCQkJLyoKKwkJCQkJICogQ2hhaW4gdGhyb3VnaCBFTkQgZWxlbWVudHMg d2l0aGluIHRoZSBhYnNvcmJhYmxlIHJlZ2lvbgorCQkJCQkgKiAoQUJTT1JCQUJMRV9CUkFOQ0gp IHVudGlsIHJlYWNoaW5nIHRoZSBqdWRnbWVudCBwb2ludAorCQkJCQkgKiAoQUJTT1JCQUJMRSku ICBDb250aW51ZSBvbmx5IG9uIG11c3QtZXhpdCBwYXRoIChjb3VudAorCQkJCQkgKiA+PSBtYXgp IHdpdGggRU5EIG5leHQuCisJCQkJCSAqLworCQkJCQl3aGlsZSAoUlBSRWxlbUlzQWJzb3JiYWJs ZUJyYW5jaChlbmRFbGVtKSAmJgorCQkJCQkJICAgIVJQUkVsZW1Jc0Fic29yYmFibGUoZW5kRWxl bSkgJiYKKwkJCQkJCSAgIGVuZENvdW50ID49IGVuZEVsZW0tPm1heCAmJgorCQkJCQkJICAgUlBS RWxlbUlzRW5kKCZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XSkpCisJCQkJCXsKKwkJCQkJCVJQUlBh dHRlcm5FbGVtZW50ICpvdXRlckVuZCA9ICZlbGVtZW50c1tlbmRFbGVtLT5uZXh0XTsKKwkJCQkJ CWludAkJCW91dGVyRGVwdGggPSBvdXRlckVuZC0+ZGVwdGg7CisJCQkJCQlpbnQzMgkJb3V0ZXJD b3VudCA9IHN0YXRlLT5jb3VudHNbb3V0ZXJEZXB0aF07CisKKwkJCQkJCS8qIFJlc2V0IGV4aXRl ZCBncm91cCdzIGNvdW50ICovCisJCQkJCQlzdGF0ZS0+Y291bnRzW2VuZERlcHRoXSA9IDA7CisK KwkJCQkJCS8qIEluY3JlbWVudCBvdXRlciBncm91cCBjb3VudCAqLworCQkJCQkJaWYgKG91dGVy Q291bnQgPCBSUFJfQ09VTlRfTUFYKQorCQkJCQkJCW91dGVyQ291bnQrKzsKKwkJCQkJCUFzc2Vy dChvdXRlckVuZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgfHwKKwkJCQkJCQkgICBvdXRlckNv dW50IDw9IG91dGVyRW5kLT5tYXgpOworCisJCQkJCQlzdGF0ZS0+ZWxlbUlkeCA9IGVuZEVsZW0t Pm5leHQ7CisJCQkJCQlzdGF0ZS0+Y291bnRzW291dGVyRGVwdGhdID0gb3V0ZXJDb3VudDsKKwor CQkJCQkJLyogQWR2YW5jZSB0byBuZXh0IEVORCBpbiBjaGFpbiAqLworCQkJCQkJZW5kRWxlbSA9 IG91dGVyRW5kOworCQkJCQkJZW5kRGVwdGggPSBvdXRlckRlcHRoOworCQkJCQkJZW5kQ291bnQg PSBvdXRlckNvdW50OworCQkJCQl9CiAJCQkJfQogCQkJCS8qIGVsc2U6IHN0YXkgYXQgVkFSIGZv ciBhZHZhbmNlIHBoYXNlICovCiAJCQl9CkBAIC0yNDY4LDYgKzI1MDgsMTAgQEAgbmZhX2FkdmFu Y2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQlz dGF0ZS0+ZWxlbUlkeCA9IGVsZW0tPm5leHQ7CiAJCW5leHRFbGVtID0gJmVsZW1lbnRzW3N0YXRl LT5lbGVtSWR4XTsKIAorCQkvKiBVcGRhdGUgaXNBYnNvcmJhYmxlIGZvciB0YXJnZXQgZWxlbWVu dCAobW9ub3RvbmljKSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJzb3Ji YWJsZSAmJgorCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisKIAkJLyog RU5ELT5FTkQ6IGluY3JlbWVudCBvdXRlciBFTkQncyBjb3VudCAqLwogCQlpZiAoUlBSRWxlbUlz RW5kKG5leHRFbGVtKSAmJiBzdGF0ZS0+Y291bnRzW25leHRFbGVtLT5kZXB0aF0gPCBSUFJfQ09V TlRfTUFYKQogCQkJc3RhdGUtPmNvdW50c1tuZXh0RWxlbS0+ZGVwdGhdKys7CkBAIC0yNjIxLDYg KzI2NjUsMTMgQEAgbmZhX2FkdmFuY2VfdmFyKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBS TkZBQ29udGV4dCAqY3R4LAogCQkJc3RhdGUtPmVsZW1JZHggPSBlbGVtLT5uZXh0OwogCQkJbmV4 dEVsZW0gPSAmZWxlbWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCQkvKgorCQkJICogVXBkYXRl IGlzQWJzb3JiYWJsZSBmb3IgdGFyZ2V0IGVsZW1lbnQgKG1vbm90b25pYzogQU5ECisJCQkgKiBw cmVzZXJ2ZXMgZmFsc2UpCisJCQkgKi8KKwkJCXN0YXRlLT5pc0Fic29yYmFibGUgPSBzdGF0ZS0+ aXNBYnNvcmJhYmxlICYmCisJCQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7 CisKIAkJCS8qCiAJCQkgKiBXaGVuIGV4aXRpbmcgZGlyZWN0bHkgdG8gYW4gb3V0ZXIgRU5ELCBp bmNyZW1lbnQgaXRzIGl0ZXJhdGlvbgogCQkJICogY291bnQuICBTaW1wbGUgVkFScyAobWluPW1h eD0xKSBoYW5kbGUgdGhpcyB2aWEgaW5saW5lIGFkdmFuY2UKQEAgLTI2NTAsNiArMjcwMSwxMyBA QCBuZmFfYWR2YW5jZV92YXIoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBSUFJORkFDb250ZXh0 ICpjdHgsCiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+bmV4dDsKIAkJbmV4dEVsZW0gPSAmZWxl bWVudHNbc3RhdGUtPmVsZW1JZHhdOwogCisJCS8qCisJCSAqIFVwZGF0ZSBpc0Fic29yYmFibGUg Zm9yIHRhcmdldCBlbGVtZW50IChtb25vdG9uaWM6IEFORCBwcmVzZXJ2ZXMKKwkJICogZmFsc2Up CisJCSAqLworCQlzdGF0ZS0+aXNBYnNvcmJhYmxlID0gc3RhdGUtPmlzQWJzb3JiYWJsZSAmJgor CQkJUlBSRWxlbUlzQWJzb3JiYWJsZUJyYW5jaChuZXh0RWxlbSk7CisKIAkJLyogU2VlIGNvbW1l bnQgYWJvdmU6IGluY3JlbWVudCBvdXRlciBFTkQgY291bnQgZm9yIHF1YW50aWZpZWQgVkFScyAq LwogCQlpZiAoUlBSRWxlbUlzRW5kKG5leHRFbGVtKSkKIAkJewpAQCAtMjY4NiwxMSArMjc0NCwx OSBAQCBuZmFfYWR2YW5jZV9zdGF0ZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5GQUNv bnRleHQgKmN0eCwKIAkJbmZhX3N0YXRlX2ZyZWUod2luc3RhdGUsIHN0YXRlKTsKIAkJcmV0dXJu OwogCX0KLQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVsZW1JZHgp XSB8PQotCQkoKGJpdG1hcHdvcmQpIDEgPDwgQklUTlVNKHN0YXRlLT5lbGVtSWR4KSk7CiAKIAll bGVtID0gJnBhdHRlcm4tPmVsZW1lbnRzW3N0YXRlLT5lbGVtSWR4XTsKIAorCS8qCisJICogTWFy ayBlcHNpbG9uIGVsZW1lbnRzIChFTkQsIEFMVCwgQkVHSU4sIEZJTikgaW4gdmlzaXRlZCB0byBw cmV2ZW50CisJICogaW5maW5pdGUgZXBzaWxvbiBjeWNsZXMuICBWQVIgZWxlbWVudHMgYXJlIG1h cmtlZCBsYXRlciB3aGVuIGFkZGVkIHRvCisJICogdGhlIHN0YXRlIGxpc3QgKG5mYV9hZGRfc3Rh dGVfdW5pcXVlKSwgYWxsb3dpbmcgbGVnaXRpbWF0ZSBsb29wLWJhY2sgdG8KKwkgKiB0aGUgc2Ft ZSBWQVIgaW4gYSBuZXcgaXRlcmF0aW9uLgorCSAqLworCWlmICghUlBSRWxlbUlzVmFyKGVsZW0p KQorCQl3aW5zdGF0ZS0+bmZhVmlzaXRlZEVsZW1zW1dPUkROVU0oc3RhdGUtPmVsZW1JZHgpXSB8 PQorCQkJKChiaXRtYXB3b3JkKSAxIDw8IEJJVE5VTShzdGF0ZS0+ZWxlbUlkeCkpOworCiAJc3dp dGNoIChlbGVtLT52YXJJZCkKIAl7CiAJCWNhc2UgUlBSX1ZBUklEX0ZJTjoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3BsYW4vcnByLmMKaW5kZXggMjcyOGEwYjlmY2EuLmMwZTlkMTM0YWE5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcGxhbi9ycHIuYwpAQCAtOTIsNiArOTIsOCBAQCBzdGF0aWMgYm9vbCBmaWxsUlBSUGF0dGVy bihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0LAogc3RhdGljIHZvaWQgZmlu YWxpemVSUFJQYXR0ZXJuKFJQUlBhdHRlcm4gKnJlc3VsdCk7CiAKIC8qIEZvcndhcmQgZGVjbGFy YXRpb25zIC0gY29udGV4dCBhYnNvcnB0aW9uICovCitzdGF0aWMgYm9vbCBpc0ZpeGVkTGVuZ3Ro Q2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsCisJCQkJCQkJCSAg UlBSRGVwdGggc2NvcGVEZXB0aCk7CiBzdGF0aWMgYm9vbCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBh dHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHggaWR4KTsKIHN0YXRpYyB2b2lkIGNvbXB1dGVBYnNv cmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sCiAJCQkJCQkJCQkJICBSUFJF bGVtSWR4IHN0YXJ0SWR4LApAQCAtMTUyNCw2ICsxNTI2LDcwIEBAIGZpbmFsaXplUlBSUGF0dGVy bihSUFJQYXR0ZXJuICpyZXN1bHQpCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCisvKgorICog aXNGaXhlZExlbmd0aENoaWxkcmVuCisgKgkJQ2hlY2sgaWYgYWxsIGNoaWxkcmVuIGF0IHNjb3Bl RGVwdGggaGF2ZSBmaXhlZC1sZW5ndGggcXVhbnRpZmllcnMKKyAqCQkobWluID09IG1heCksIHJl Y3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzLgorICoKKyAqIEEgZml4ZWQtbGVuZ3RoIGdy b3VwIGlzIHNlbWFudGljYWxseSBlcXVpdmFsZW50IHRvIHVucm9sbGluZyBlYWNoIGNoaWxkCisg KiB0byB7MSwxfSBjb3BpZXMsIHdoaWNoIGlzIHRoZSBleGlzdGluZyBDYXNlIDIgYWxyZWFkeSBw cm92ZW4gY29ycmVjdAorICogZm9yIGFic29ycHRpb24uICBUaGlzIGNoZWNrIHJlY29nbml6ZXMg Zml4ZWQtbGVuZ3RoIGdyb3VwcyBhdCBjb21waWxlCisgKiB0aW1lIHdpdGhvdXQgYWN0dWFsbHkg dW5yb2xsaW5nIHRoZW0uCisgKgorICogVHJhdmVyc2VzIHRoZSBmbGF0IGVsZW1lbnQgYXJyYXkg c3RhcnRpbmcgYXQgaWR4LiAgRm9yIFZBUiBlbGVtZW50cywKKyAqIGNoZWNrcyBtaW4gPT0gbWF4 LiAgRm9yIEJFR0lOIGVsZW1lbnRzIChuZXN0ZWQgc3ViZ3JvdXBzKSwgcmVjdXJzZXMKKyAqIGlu dG8gdGhlIHN1Ymdyb3VwIGFuZCBhbHNvIGNoZWNrcyB0aGUgc3ViZ3JvdXAncyBFTkQgcXVhbnRp Zmllci4KKyAqIEFMVCBlbGVtZW50cyBhcmUgcmVqZWN0ZWQgKGFsdGVybmF0aW9uIGluc2lkZSBh YnNvcmJhYmxlIGdyb3VwIGlzCisgKiBub3Qgc3VwcG9ydGVkKS4KKyAqCisgKiBSZXR1cm5zIHRy dWUgaWYgYWxsIGNoaWxkcmVuIGFyZSBmaXhlZC1sZW5ndGgsIHN0b3BwaW5nIGF0IHRoZSBFTkQK KyAqIGVsZW1lbnQgYXQgc2NvcGVEZXB0aCAtIDEuCisgKi8KK3N0YXRpYyBib29sCitpc0ZpeGVk TGVuZ3RoQ2hpbGRyZW4oUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgsIFJQUkRl cHRoIHNjb3BlRGVwdGgpCit7CisJUlBSUGF0dGVybkVsZW1lbnQgKmUgPSAmcGF0dGVybi0+ZWxl bWVudHNbaWR4XTsKKworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisKKwl3aGlsZSAoZS0+ZGVwdGgg PT0gc2NvcGVEZXB0aCkKKwl7CisJCWlmIChSUFJFbGVtSXNWYXIoZSkpCisJCXsKKwkJCWlmIChl LT5taW4gIT0gZS0+bWF4KQorCQkJCXJldHVybiBmYWxzZTsKKwkJfQorCQllbHNlIGlmIChSUFJF bGVtSXNCZWdpbihlKSkKKwkJeworCQkJUlBSRWxlbUlkeAljaGlsZElkeCA9IGUtPm5leHQ7CisK KwkJCS8qIFJlY3Vyc2UgaW50byBzdWJncm91cCBjaGlsZHJlbiBhdCBzY29wZURlcHRoICsgMSAq LworCQkJaWYgKCFpc0ZpeGVkTGVuZ3RoQ2hpbGRyZW4ocGF0dGVybiwgY2hpbGRJZHgsIHNjb3Bl RGVwdGggKyAxKSkKKwkJCQlyZXR1cm4gZmFsc2U7CisKKwkJCS8qIEFkdmFuY2UgcGFzdCB0aGUg c3ViZ3JvdXAgdG8gaXRzIEVORCBlbGVtZW50ICovCisJCQllID0gJnBhdHRlcm4tPmVsZW1lbnRz W2UtPm5leHRdOworCQkJd2hpbGUgKGUtPmRlcHRoID4gc2NvcGVEZXB0aCkKKwkJCQllID0gJnBh dHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdOworCisJCQkvKiBlIGlzIG5vdyB0aGUgRU5EIGF0IHNj b3BlRGVwdGg7IGNoZWNrIGl0cyBxdWFudGlmaWVyICovCisJCQlBc3NlcnQoUlBSRWxlbUlzRW5k KGUpICYmIGUtPmRlcHRoID09IHNjb3BlRGVwdGgpOworCQkJaWYgKGUtPm1pbiAhPSBlLT5tYXgp CisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogQUxUIGluc2lkZSBn cm91cDogbm90IHN1cHBvcnRlZCBmb3IgYWJzb3JwdGlvbiAqLworCQkJcmV0dXJuIGZhbHNlOwor CQl9CisKKwkJQXNzZXJ0KGUtPm5leHQgIT0gUlBSX0VMRU1JRFhfSU5WQUxJRCk7CisJCWUgPSAm cGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIC8q CiAgKiBpc1VuYm91bmRlZFN0YXJ0CiAgKgkJQ2hlY2sgaWYgdGhlIGVsZW1lbnQgYXQgaWR4IHN0 YXJ0cyBhbiB1bmJvdW5kZWQgZ3JlZWR5IHNlcXVlbmNlLgpAQCAtMTUzMywyOSArMTU5OSwzMSBA QCBmaW5hbGl6ZVJQUlBhdHRlcm4oUlBSUGF0dGVybiAqcmVzdWx0KQogICogICAtIEdyZWVkeSAo bm90IHJlbHVjdGFudCkKICAqICAgLSBBdCB0aGUgc3RhcnQgb2YgY3VycmVudCBzY29wZQogICoK LSAqIEFsZ29yaXRobToKLSAqICAgLSBUcmF2ZXJzZSBlbGVtZW50cyB3aXRoaW4gY3VycmVudCBz Y29wZSAocGFyZW50RGVwdGggdG8gc3RhcnREZXB0aCkKLSAqICAgLSBGb3IgR1JPVVA6IG11c3Qg YmUgdW5ib3VuZGVkIGdyZWVkeSBBTkQgY29udGFpbiBvbmx5IHNpbXBsZSB7MSwxfSBWQVJzCi0g KiAgIC0gU2V0cyBBQlNPUkJBQkxFIGFuZCBBQlNPUkJBQkxFX0JSQU5DSCBmbGFncyBvbiBtYXRj aGluZyBlbGVtZW50cwotICoKICAqIFR3byBjYXNlcyBhcmUgaGFuZGxlZDoKICAqICAgMS4gU2lt cGxlIFZBUjogQSsgQiBDIC0gQSBoYXMgbWF4PUlORiwgZ2V0cyBib3RoIGZsYWdzCi0gKiAgIDIu IEdyb3VwOiAoQSBCKSsgQyAtIEVORCBoYXMgbWF4PUlORiwgYWxsIGNoaWxkcmVuIGFyZSB7MSwx fSBWQVJzCi0gKiAgICAgIEEsQixFTkQgZ2V0IEFCU09SQkFCTEVfQlJBTkNILCBvbmx5IEVORCBn ZXRzIEFCU09SQkFCTEUKKyAqICAgMi4gVW5ib3VuZGVkIEdST1VQIHdpdGggZml4ZWQtbGVuZ3Ro IGNoaWxkcmVuOiAoQSBCezJ9KSsgQworICogICAgICBBbGwgY2hpbGRyZW4gbXVzdCBoYXZlIG1p biA9PSBtYXggKHJlY3Vyc2l2ZWx5IGZvciBuZXN0ZWQgc3ViZ3JvdXBzKS4KKyAqICAgICAgVGhp cyBpcyBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfSBWQVJzLCBlLmcuLCAoQSBCIEIp KyBDLgorICogICAgICBBbGwgZWxlbWVudHMgd2l0aGluIHRoZSBncm91cCBnZXQgQUJTT1JCQUJM RV9CUkFOQ0guCisgKiAgICAgIE9ubHkgdGhlIHVuYm91bmRlZCBFTkQgZ2V0cyBBQlNPUkJBQkxF IChqdWRnbWVudCBwb2ludCkuCisgKiAgICAgIEV4YW1wbGVzOgorICogICAgICAgIChBIEJ7Mn0p KyBDICAgICAgICAgIC0gQnsyfSBoYXMgbWluPT1tYXgsIHN0ZXA9MworICogICAgICAgIChBIChC IEMpezJ9IEQpKyBFICAgIC0gbmVzdGVkIHsyfSBzdWJncm91cCwgc3RlcD02CisgKiAgICAgICAg KChBIChCIEMpezJ9KXsyfSkrICAgLSBkb3VibHkgbmVzdGVkIHsyfSwgc3RlcD0xMAorICogICAg ICAgIChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRiAgLSBkZWVwIG5lc3RpbmcsIHN0ZXA9MjAK ICAqCiAgKiBSZXR1cm5zIGZhbHNlIGZvciBwYXR0ZXJucyB3aGVyZSBhYnNvcnB0aW9uIGNhbm5v dCB3b3JrOgogICogICAtIEEgQisgKHVuYm91bmRlZCBub3QgYXQgc3RhcnQpCiAgKiAgIC0gQSs/ IEIgKHJlbHVjdGFudCBxdWFudGlmaWVyKQogICogICAtIChBIHwgQikrIChBTFQgaW5zaWRlIGdy b3VwKQotICogICAtIChBIEIrKSsgKHVuYm91bmRlZCBlbGVtZW50IGluc2lkZSBncm91cCkKLSAq ICAgLSAoKEEgQikrIEMpKyAobmVzdGVkIHVuYm91bmRlZCBncm91cHMpCisgKiAgIC0gKEEgQisp KyAodmFyaWFibGUtbGVuZ3RoIGVsZW1lbnQgaW5zaWRlIGdyb3VwKQorICogICAtIChBIEJ7Miw1 fSkrIChtaW4gIT0gbWF4IGluc2lkZSBncm91cCkKICAqLwogc3RhdGljIGJvb2wKIGlzVW5ib3Vu ZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiB7CiAJUlBSUGF0 dGVybkVsZW1lbnQgKmVsZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbaWR4XTsKIAlSUFJEZXB0aAlz dGFydERlcHRoID0gZWxlbS0+ZGVwdGg7Ci0JUlBSUGF0dGVybkVsZW1lbnQgKm5leHRFbGVtOwog CVJQUlBhdHRlcm5FbGVtZW50ICplOwogCiAJLyogQ2FzZSAxOiBTaW1wbGUgdW5ib3VuZGVkIFZB UiBhdCBzdGFydCAoZ3JlZWR5IG9ubHkpICovCkBAIC0xNTY4LDIxICsxNjM2LDE5IEBAIGlzVW5i b3VuZGVkU3RhcnQoUlBSUGF0dGVybiAqcGF0dGVybiwgUlBSRWxlbUlkeCBpZHgpCiAJfQogCiAJ LyoKLQkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCAtIHRyYXZlcnNlIHNpYmxpbmdzIGF0IHN0 YXJ0RGVwdGggYW5kIGNoZWNrIGlmCi0JICogdGhleSdyZSBhbGwgc2ltcGxlIHsxLDF9IFZBUnMs IHRoZW4gY2hlY2sgaWYgRU5EIGF0IHN0YXJ0RGVwdGggLSAxIGlzCi0JICogdW5ib3VuZGVkIGdy ZWVkeS4KKwkgKiBDYXNlIDI6IFVuYm91bmRlZCBHUk9VUCB3aXRoIGZpeGVkLWxlbmd0aCBjaGls ZHJlbi4gIEVhY2ggY2hpbGQgbXVzdAorCSAqIGhhdmUgbWluID09IG1heCAocmVjdXJzaXZlbHkg Zm9yIG5lc3RlZCBzdWJncm91cHMpLCBlbnN1cmluZyBhIGZpeGVkCisJICogc3RlcCBzaXplIHBl ciBpdGVyYXRpb24gc28gdGhhdCBjb3VudC1kb21pbmFuY2UgaG9sZHMuCiAJICovCi0JZm9yIChl ID0gZWxlbTsgZS0+ZGVwdGggPT0gc3RhcnREZXB0aDsgZSA9IG5leHRFbGVtKQotCXsKLQkJLyog TXVzdCBiZSBzaW1wbGUgezEsMX0gVkFSICovCi0JCWlmICghUlBSRWxlbUlzVmFyKGUpIHx8IGUt Pm1pbiAhPSAxIHx8IGUtPm1heCAhPSAxKQotCQkJcmV0dXJuIGZhbHNlOworCWlmICghaXNGaXhl ZExlbmd0aENoaWxkcmVuKHBhdHRlcm4sIGlkeCwgc3RhcnREZXB0aCkpCisJCXJldHVybiBmYWxz ZTsKIAotCQlBc3NlcnQoZS0+bmV4dCAhPSBSUFJfRUxFTUlEWF9JTlZBTElEKTsKLQkJbmV4dEVs ZW0gPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF07Ci0JfQorCS8qIEZpbmQgdGhlIEVORCBl bGVtZW50IGF0IHN0YXJ0RGVwdGggLSAxICovCisJZSA9ICZwYXR0ZXJuLT5lbGVtZW50c1tpZHhd OworCXdoaWxlIChlLT5kZXB0aCA+PSBzdGFydERlcHRoKQorCQllID0gJnBhdHRlcm4tPmVsZW1l bnRzW2UtPm5leHRdOwogCi0JLyogTm93IGUgc2hvdWxkIGJlIEVORCBhdCBzdGFydERlcHRoIC0g MSAqLworCS8qIEVORCBtdXN0IGJlIHVuYm91bmRlZCBncmVlZHkgKi8KIAlpZiAoZS0+ZGVwdGgg PT0gc3RhcnREZXB0aCAtIDEgJiYKIAkJUlBSRWxlbUlzRW5kKGUpICYmIGUtPm1heCA9PSBSUFJf UVVBTlRJVFlfSU5GICYmCiAJCSFSUFJFbGVtSXNSZWx1Y3RhbnQoZSkpCkBAIC0xNTkwLDcgKzE2 NTYsOCBAQCBpc1VuYm91bmRlZFN0YXJ0KFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQUkVsZW1JZHgg aWR4KQogCQlBc3NlcnQoZS0+anVtcCA9PSBpZHgpOyAvKiBFTkQgcG9pbnRzIGJhY2sgdG8gZmly c3QgY2hpbGQgKi8KIAogCQkvKiBTZXQgQUJTT1JCQUJMRV9CUkFOQ0ggb24gYWxsIGNoaWxkcmVu LCBBQlNPUkJBQkxFIG9uIEVORCBvbmx5ICovCi0JCWZvciAoZSA9IGVsZW07ICFSUFJFbGVtSXNF bmQoZSk7IGUgPSAmcGF0dGVybi0+ZWxlbWVudHNbZS0+bmV4dF0pCisJCWZvciAoZSA9IGVsZW07 ICFSUFJFbGVtSXNFbmQoZSkgfHwgZS0+ZGVwdGggPj0gc3RhcnREZXB0aDsKKwkJCSBlID0gJnBh dHRlcm4tPmVsZW1lbnRzW2UtPm5leHRdKQogCQkJZS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JC QUJMRV9CUkFOQ0g7CiAJCWUtPmZsYWdzIHw9IFJQUl9FTEVNX0FCU09SQkFCTEVfQlJBTkNIIHwg UlBSX0VMRU1fQUJTT1JCQUJMRTsKIAkJcmV0dXJuIHRydWU7CkBAIC0xNjU0LDEyICsxNzIxLDI1 IEBAIGNvbXB1dGVBYnNvcmJhYmlsaXR5UmVjdXJzaXZlKFJQUlBhdHRlcm4gKnBhdHRlcm4sIFJQ UkVsZW1JZHggc3RhcnRJZHgsCiAJfQogCWVsc2UgaWYgKFJQUkVsZW1Jc0JlZ2luKGVsZW0pKQog CXsKLQkJLyogQkVHSU46IHNraXAgdG8gZmlyc3QgY2hpbGQgYW5kIGNoZWNrIHRoYXQgKi8KLQkJ Y29tcHV0ZUFic29yYmFiaWxpdHlSZWN1cnNpdmUocGF0dGVybiwgZWxlbS0+bmV4dCwgaGFzQWJz b3JiYWJsZSk7Ci0KLQkJLyogTWFyayBCRUdJTiBlbGVtZW50IGlmIGNvbnRlbnRzIGFyZSBhYnNv cmJhYmxlICovCi0JCWlmICgqaGFzQWJzb3JiYWJsZSkKKwkJLyoKKwkJICogQkVHSU46IGZpcnN0 IHRyeSB0byB0cmVhdCB0aGlzIEJFR0lOJ3MgY2hpbGRyZW4gYXMgYW4gdW5ib3VuZGVkCisJCSAq IGdyb3VwIGRpcmVjdGx5IChoYW5kbGVzIG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXBzIGxpa2Ug KChBezJ9CisJCSAqIEJ7M30pezJ9KSspLiAgSWYgdGhhdCBmYWlscywgc2tpcCB0byBmaXJzdCBj aGlsZCBhbmQgcmVjdXJzZSBhcworCQkgKiBiZWZvcmUuCisJCSAqLworCQlpZiAoaXNVbmJvdW5k ZWRTdGFydChwYXR0ZXJuLCBlbGVtLT5uZXh0KSkKKwkJeworCQkJKmhhc0Fic29yYmFibGUgPSB0 cnVlOwogCQkJZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0K KwkJZWxzZQorCQl7CisJCQljb21wdXRlQWJzb3JiYWJpbGl0eVJlY3Vyc2l2ZShwYXR0ZXJuLCBl bGVtLT5uZXh0LCBoYXNBYnNvcmJhYmxlKTsKKworCQkJLyogTWFyayBCRUdJTiBlbGVtZW50IGlm IGNvbnRlbnRzIGFyZSBhYnNvcmJhYmxlICovCisJCQlpZiAoKmhhc0Fic29yYmFibGUpCisJCQkJ ZWxlbS0+ZmxhZ3MgfD0gUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0g7CisJCX0KIAl9CiAJZWxz ZQogCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMzE2ODQ2OGQw YWUuLjc0NTJjZjFiM2FiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9iYXNlLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApA QCAtMzMxMiw3ICszMzEyLDcgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJuOiAoYXsy fSl7Mix9CisgICBQYXR0ZXJuOiAoYXsyfScpezIsfSIKICAgIC0+ICBTb3J0CiAgICAgICAgICBT b3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgpAQCAtNDA5NSw2 ICs0MDk1LDg3IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfcGxhbgogKDYgcm93cykKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29yYmFibGU6IChB ezJ9IEJ7M30pKyAtPiAoYXsyfScgYnszfScpezIsfSIKKy0tIEFsbCBjaGlsZHJlbiBoYXZlIG1p biA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5nIHRvIHsxLDF9CitFWFBMQUlOIChDT1NU UyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVS TiAoKEF7Mn0gQnszfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBB UyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhezJ9 JyBiezN9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVu Z3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KChBIChCIEMpezJ9IEQpKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIg QVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8PSA2MCwgRCBBUyB2YWwgPiA2MCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIgorICAgLT4g IFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCisoNiByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIHdpdGggaW5uZXIgcXVh bnRpZmllcjogKChBezJ9IEJ7M30pezJ9KSsgLT4gYWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMg T0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4g KCgoQXsyfSBCezN9KXsyfSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwg QiBBUyB2YWwgPiA1MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkg UExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46ICgo YXsyfScgYnszfScpezJ9JykrIgorICAgLT4gIFNvcnQKKyAgICAgICAgIFNvcnQgS2V5OiBpZAor ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCisoNiByb3dzKQorCistLSBOb24tYWJz b3JiYWJsZSBmaXhlZC1sZW5ndGg6IChBIEJ7Miw1fSkrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBt YXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQnsyLDV9KSspCisgICAgICAgICAgICAgREVGSU5FIEEg QVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQor ICAgUGF0dGVybjogKGEgYnsyLDV9KSsKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTog aWQKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgorKDYgcm93cykKKworLS0gTm9u LWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCPykrIC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBt YXgpCitFWFBMQUlOIChDT1NUUyBPRkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnBy X3BsYW4KK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cgUEFUVEVSTiAoKEEgQj8pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2 YWwgPD0gNTAsIEIgQVMgdmFsID4gNTApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQ YXR0ZXJuOiAoYSBiPykrCisgICAtPiAgU29ydAorICAgICAgICAgU29ydCBLZXk6IGlkCisgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KKyg2IHJvd3MpCisKIC0tIE5vbi1hYnNvcmJh YmxlICh1bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBhIGIrIChubyBtYXJrZXJzKQog RVhQTEFJTiAoQ09TVFMgT0ZGKQogU0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc5Y2JjMjQ2 MDM5Li41NjBmMjFmNDRjMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFp bi5vdXQKQEAgLTQ2MiwxMCArNDYyLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGEnIGInKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAotICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDYxIHRvdGFsLCAwIHBydW5lZAorICAgTkZBIFN0YXRlczogNCBwZWFr LCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwg MCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hl ZAotICAgTkZBOiAyOSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAzMCBza2lwcGVkIChsZW4gMS8x LzEuMCkKKyAgIE5GQTogMjkgYWJzb3JiZWQgKGxlbiAyLzIvMi4wKSwgMzAgc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKQEAgLTkwNCw2ICs5MDQsMTg4IEBA IFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAKKy0tIEZpeGVkLWxlbmd0 aCBncm91cCBhYnNvcnB0aW9uOiAoQSBCIEIpKyBDCistLSBCIEIgbWVyZ2VkIHRvIEJ7Mn07IGFi c29yYmFibGUgd2l0aCBmaXhlZC1sZW5ndGggY2hlY2sKKy0tIHN0ZXBfc2l6ZT0zIChBICsgQiAr IEIpOyB2ICUgNyBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMgcGVyIG1hdGNoCitDUkVBVEUgVklF VyBycHJfZXYyMGIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDcwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQiBCKSsgQykKKyAgICBERUZJTkUgQSBBUyB2ICUg NyBJTiAoMSwgNCksIEIgQVMgdiAlIDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAor KTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MjBiJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor ICAgICAgICAgIGxpbmUgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg UEFUVEVSTiAoKGEgYiBiKSsgYykgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA3MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEIgQikrIEMpCisgICAgREVGSU5FIEEgQVMgdiAl IDcgSU4gKDEsIDQpLCBCIEFTIHYgJSA3IElOICgyLCAzLCA1LCA2KSwgQyBBUyB2ICUgNyA9IDAK Kyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwg cm93cz03MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiAoYScgYnsyfScpKyIg YworICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgorICAgTkZBIFN0YXRl czogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNCBwZWFrLCA3 MSB0b3RhbCwgNDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA3LzcvNy4wKSwgMCBt aXNtYXRjaGVkCisgICBORkE6IDEwIGFic29yYmVkIChsZW4gMy8zLzMuMCksIDEwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTcwLjAwIGxvb3BzPTEpCisoOSByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVwX3NpemUg PSAxICsgKDErMSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsg RQorQ1JFQVRFIFZJRVcgcnByX2V2MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQor ICAgIERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4 LCAxMCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAl IDEzIElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBj JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworICAgICAgICAgICAg ICBsaW5lICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICBQQVRURVJOICgoYSAoYiBjKXsyfSBkKSsgZSkgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAg IERFRklORSBBIEFTIHYgJSAxMyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4LCAx MCksCisgICAgICAgICAgIEMgQVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAlIDEz IElOICg2LCAxMiksCisgICAgICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsnKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTY1LjAwIGxvb3Bz PTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIiBlCisgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBl YWssIDc2IHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDY2IHRvdGFs LCA1MCBwcnVuZWQKKyAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCksIDAgbWlzbWF0 Y2hlZAorICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBlZCAobGVuIDEv MS8xLjApCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9NjUuMDAgbG9vcHM9MSkKKyg5IHJvd3MpCisKKy0tIERvdWJseSBuZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgorLS0g c3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNsZSBnaXZl cyAyIGl0ZXJhdGlvbnMgKyBGCitDUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK1NFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEg KChCIEMgQyBDKXsyfSBEKXsyfSBFKSsgRikKKyAgICBERUZJTkUgQSBBUyB2ICUgNDEgSU4gKDEs IDIxKSwKKyAgICAgICAgICAgQiBBUyB2ICUgNDEgSU4gKDIsIDYsIDExLCAxNSwgMjIsIDI2LCAz MSwgMzUpLAorICAgICAgICAgICBDIEFTIHYgJSA0MSBJTiAoMyw0LDUsIDcsOCw5LCAxMiwxMywx NCwgMTYsMTcsMTgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAyMywyNCwyNSwgMjcsMjgs MjksIDMyLDMzLDM0LCAzNiwzNywzOCksCisgICAgICAgICAgIEQgQVMgdiAlIDQxIElOICgxMCwg MTksIDMwLCAzOSksCisgICAgICAgICAgIEUgQVMgdiAlIDQxIElOICgyMCwgNDApLAorICAgICAg ICAgICBGIEFTIHYgJSA0MSA9IDAKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg IFBBVFRFUk4gKChhICgoYiBjIGMgYyl7Mn0gZCl7Mn0gZSkrIGYpIAorKDEgcm93KQorCitTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMp ezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklORSBBIEFTIHYgJSA0MSBJTiAoMSwgMjEpLAorICAg ICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwgNiwgMTEsIDE1LCAyMiwgMjYsIDMxLCAzNSksCisg ICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgzLDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywx OCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMs MzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAgRCBBUyB2ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5 KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIwLCA0MCksCisgICAgICAgICAgIEYgQVMg diAlIDQxID0gMAorKTsnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5f ZmlsdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dB Z2cgKGFjdHVhbCByb3dzPTgyLjAwIGxvb3BzPTEpCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IChh JyAoKGInIGN7M30nKXsyfScgZCcpezJ9JyBlJykrIiBmCisgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiAzIHBlYWssIDg3IHRvdGFsLCAwIG1l cmdlZAorICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDgzIHRvdGFsLCA3NiBwcnVuZWQKKyAgIE5G QTogMiBtYXRjaGVkIChsZW4gNDEvNDEvNDEuMCksIDAgbWlzbWF0Y2hlZAorICAgTkZBOiAyIGFi c29yYmVkIChsZW4gMjAvMjAvMjAuMCksIDIgc2tpcHBlZCAobGVuIDEvMS8xLjApCisgICAtPiAg RnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9v cHM9MSkKKyg5IHJvd3MpCisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246ICgoQSAo QiBDKXsyfSl7Mn0pKworLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAxMDsgdiAl IDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucworLS0gRU5EIGNoYWluOiBFTkQoQkN7Mn0pIC0+ IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQorQ1JFQVRFIFZJRVcgcnByX2V2MjBl IEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0Mikg QVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVwor ICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUgQSBBUyB2ICUgMjEg SU4gKDEsIDYsIDExLCAxNiksCisgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5 LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAx MCwgMTMsIDE1LCAxOCwgMjApCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CisgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgUEFUVEVSTiAoKChhIChiIGMpezJ9 KXsyfSkrKSAKKygxIHJvdykKKworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBB UyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJ TiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAgQiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDks IDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAgQyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEw LCAxMywgMTUsIDE4LCAyMCkKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9l eHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg V2luZG93QWdnIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0 ZXJuOiAoKGEnIChiJyBjJyl7Mn0nKXsyfScpKyIKKyAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNDcgdG90YWwsIDAgbWVyZ2Vk CisgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNDMgdG90YWwsIDMwIHBydW5lZAorICAgTkZBOiAy IG1hdGNoZWQgKGxlbiAyMC8yMC8yMC4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6IDIgYWJzb3Ji ZWQgKGxlbiAxMC8xMC8xMC4wKSwgOCBza2lwcGVkIChsZW4gMS81LzMuMCkKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0x KQorKDkgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLSBNYXRjaCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cwog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CkBAIC0xODk0LDEwICsyMDc2LDEwIEBAIFdJTkRPVyB3IEFTICgKICAgIFdpbmRvdzog dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogKGEnIGInIGMnKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCi0gICBORkEgU3RhdGVzOiAzIHBlYWssIDgxIHRvdGFsLCAwIG1lcmdlZAotICAg TkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKKyAgIE5GQSBTdGF0ZXM6 IDQgcGVhaywgODEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDQgcGVhaywgNjEg dG90YWwsIDIwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA2MC82MC82MC4wKSwgMCBt aXNtYXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDMvMy8zLjApLCAyMCBza2lw cGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMjQ2MSw3ICsy NjQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgTkZBIFN0YXRlczogNCBwZWFrLCAxMDIgdG90YWws IDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDEwIHBydW5lZAog ICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAotICAgTkZBOiAy MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKKyAgIE5GQTogMTAgYWJzb3JiZWQg KGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICg5 IHJvd3MpCiAKQEAgLTMxNTgsMTAgKzMzNDAsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYScgYicpKyIKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKLSAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNjEgdG90YWwsIDAgbWVyZ2VkCi0gICBO RkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCisgICBORkEgU3RhdGVzOiA0 IHBlYWssIDYxIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRv dGFsLCAwIHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiA0MC80MC80MC4wKSwgMCBtaXNt YXRjaGVkCi0gICBORkE6IDE5IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDIwIHNraXBwZWQgKGxl biAxLzEvMS4wKQorICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQogKDkgcm93cykKIApAQCAtMzIzNCwxMiArMzQx NiwxMiBAQCBXSU5ET1cgdyBBUyAoCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCi0gICBQYXR0ZXJuOiAoKGEgYil7Mn0pKwor ICAgUGF0dGVybjogKChhJyBiJyl7Mn0nKSsiCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA1IHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAog ICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFsLCAxNSBwcnVuZWQKICAgIE5GQTogMSBt YXRjaGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hlZAotICAgTkZBOiAwIGFic29yYmVk LCA0NCBza2lwcGVkIChsZW4gMS80LzIuMykKKyAgIE5GQTogMTQgYWJzb3JiZWQgKGxlbiA0LzQv NC4wKSwgMzAgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICg5IHJvd3MpCiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX25mYS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CmluZGV4IDdiNWExN2ZiNjcxLi4yNTBm N2YxMzFiMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfbmZhLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9uZmEub3V0CkBAIC00NDcsNiAr NDQ3LDMyNyBAQCBXSU5ET1cgdyBBUyAoCiAgIDcgfCB7WH0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCiAoNyByb3dzKQogCistLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEg QnsyfSkrIEMKKy0tIEJ7Mn0gaGFzIG1pbiA9PSBtYXgsIGVxdWl2YWxlbnQgdG8gdW5yb2xsaW5n IHRvIChBIEIgQikrIEMKK1dJVEggdGVzdF9hYnNvcmJfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVD VCAqIEZST00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwg IEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydCJ10pLAorICAgICAgICAoNCwgIEFS UkFZWydBJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNiwgIEFSUkFZ WydCJ10pLAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydC J10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTEsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NF TEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxh c3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfZml4ZWRs ZW4KK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBIEJ7Mn0pKyBDKQorICAgIERFRklORQorICAgICAg ICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwK KyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9z dGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDEwCisgIDIgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgIDQgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgIDcgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDggfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTEgfCB7 WH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisoMTEgcm93cykKKworLS0gQ29uc2VjdXRp dmUgdmFycyBtZXJnZWQgdG8gZml4ZWQtbGVuZ3RoOiAoQSBCIEIpKyAtPiAoQSBCezJ9KSsKKy0t IG1lcmdlQ29uc2VjdXRpdmVWYXJzIHByb2R1Y2VzIEJ7Mn07IG5vdyBhYnNvcmJhYmxlIHdpdGgg Zml4ZWQtbGVuZ3RoIGNoZWNrCitXSVRIIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlIEFTICgKKyAg ICBTRUxFQ1QgKiBGUk9NIChWQUxVRVMKKyAgICAgICAgKDEsICBBUlJBWVsnQSddKSwKKyAgICAg ICAgKDIsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDMsICBBUlJBWVsnQiddKSwKKyAgICAgICAg KDQsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDUsICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDYs ICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDcsICBBUlJBWVsnQSddKSwKKyAgICAgICAgKDgsICBB UlJBWVsnQiddKSwKKyAgICAgICAgKDksICBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEwLCBBUlJB WVsnWCddKQorICAgICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2NvbnNlY3V0aXZlCitXSU5ET1cgdyBBUyAo CisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOICgoQSBCIEIpKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxh Z3MpLAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1h dGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAorLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyAgMSB8IHtBfSAgIHwgICAgICAgICAgIDEgfCAgICAgICAgIDkKKyAgMiB8IHtCfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgMyB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgNCB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNiB8IHtCfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAgNyB8IHtBfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8 IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOSB8IHtCfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKyAxMCB8IHtYfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKygx MCByb3dzKQorCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChC IEMpezJ9IEQpKyBFCistLSBJbm5lciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFic29yYmFi bGUgdmlhIHJlY3Vyc2l2ZSBjaGVjaworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0g NgorV0lUSCB0ZXN0X2Fic29yYl9uZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVDVCAqIEZS T00gKFZBTFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZ WydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydC J10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydEJ10p LAorICAgICAgICAoNywgIEFSUkFZWydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAor ICAgICAgICAoOSwgIEFSUkFZWydDJ10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10pLAorICAg ICAgICAoMTEsIEFSUkFZWydDJ10pLAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAorICAgICAg ICAoMTMsIEFSUkFZWydFJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0 KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcg QVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00g dGVzdF9hYnNvcmJfbmVzdGVkX2ZpeGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkg aWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoQiBD KXsyfSBEKSsgRSkKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAor ICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZs YWdzKSwKKyAgICAgICAgRCBBUyAnRCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9 IEFOWShmbGFncykKKyk7CisgaWQgfCBmbGFncyB8IG1hdGNoX3N0YXJ0IHwgbWF0Y2hfZW5kIAor LS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyAgMSB8IHtBfSAgIHwgICAg ICAgICAgIDEgfCAgICAgICAgMTMKKyAgMiB8IHtCfSAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAKKyAgMyB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNCB8IHtCfSAgIHwg ICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAg ICAgICAKKyAgNiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgNyB8IHtBfSAg IHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAgOCB8IHtCfSAgIHwgICAgICAgICAgICAgfCAg ICAgICAgICAKKyAgOSB8IHtDfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMCB8IHtC fSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMSB8IHtDfSAgIHwgICAgICAgICAgICAg fCAgICAgICAgICAKKyAxMiB8IHtEfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxMyB8 IHtFfSAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAKKyAxNCB8IHtYfSAgIHwgICAgICAgICAg ICAgfCAgICAgICAgICAKKygxNCByb3dzKQorCistLSBEb3VibHkgbmVzdGVkIGZpeGVkLWxlbmd0 aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYKKy0tIHN0ZXBf c2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyAyIGl0ZXJhdGlvbnMgKyBGID0gNDEg cm93cworV0lUSCB0ZXN0X2Fic29yYl9kb3VibHlfbmVzdGVkIEFTICgKKyAgICBTRUxFQ1QgdiBB UyBpZCwgQVJSQVlbCisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgx LCAyMSkgIFRIRU4gJ0EnCisgICAgICAgICAgICBXSEVOIHYgJSA0MSBJTiAoMiwgNiwgMTEsIDE1 LCAyMiwgMjYsIDMxLCAzNSkgVEhFTiAnQicKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgz LDQsNSwgNyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAyMywyNCwyNSwgMjcsMjgsMjksIDMyLDMzLDM0LCAzNiwzNywzOCkgVEhFTiAnQycKKyAg ICAgICAgICAgIFdIRU4gdiAlIDQxIElOICgxMCwgMTksIDMwLCAzOSkgVEhFTiAnRCcKKyAgICAg ICAgICAgIFdIRU4gdiAlIDQxIElOICgyMCwgNDApIFRIRU4gJ0UnCisgICAgICAgICAgICBXSEVO IHYgJSA0MSA9IDAgVEhFTiAnRicKKyAgICAgICAgICAgIEVMU0UgJ1gnCisgICAgICAgIEVORAor ICAgIF0gQVMgZmxhZ3MKKyAgICBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQor KQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFy dCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9k b3VibHlfbmVzdGVkCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9 IEUpKyBGKQorICAgIERFRklORQorICAgICAgICBBIEFTICdBJyA9IEFOWShmbGFncyksCisgICAg ICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQyBBUyAnQycgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBEIEFTICdEJyA9IEFOWShmbGFncyksCisgICAgICAgIEUgQVMgJ0UnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgRiBBUyAnRicgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3Mg fCBtYXRjaF9zdGFydCB8IG1hdGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgIDEgfCB7QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDQxCisgIDIgfCB7 Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDYgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgMTAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMTEgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMTQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTggfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTkgfCB7RH0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMjAgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjEgfCB7 QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjIgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgMjMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjQg fCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjUgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgMjYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg MjcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjggfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgMjkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMzAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzEgfCB7Qn0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMzIgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMzMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzQgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzUgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMzYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzcgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMzggfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMzkgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDAgfCB7 RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDEgfCB7Rn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNDIgfCB7QX0gICB8ICAgICAgICAgIDQyIHwgICAgICAgIDgyCisgNDMg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDQgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNDUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NDYgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNDcgfCB7Qn0gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNDggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgNDkgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTAgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNTEgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTMgfCB7Q30gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNTUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTYgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTcgfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNTggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNTkgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjAgfCB7RH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgNjEgfCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjIg fCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjMgfCB7Qn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgNjQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg NjUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjYgfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgNjcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgNjggfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNjkgfCB7Q30gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgNzAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgNzEgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzIgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgNzQgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzUgfCB7Q30g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzYgfCB7Qn0gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgNzcgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzggfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgNzkgfCB7Q30gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgODAgfCB7RH0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgODEg fCB7RX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgODIgfCB7Rn0gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisoODIgcm93cykKKworLS0gMy1sZXZlbCBFTkQgY2hhaW46ICgoQSAo QiBDKXsyfSl7Mn0pKworLS0gVGVzdHMgRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQo KykgY2hhaW5pbmcKKy0tIDIgaXRlcmF0aW9ucyBvZiArLCBlYWNoIDEwIHJvd3M6IChBIEIgQyBC IEMpKEEgQiBDIEIgQykKK1dJVEggdGVzdF9hYnNvcmJfM2xldmVsX2VuZCBBUyAoCisgICAgU0VM RUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksICAtLSAxc3QgKyBp dGVyLCAxc3QgezJ9LCBBCisgICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAg QVJSQVlbJ0MnXSksCisgICAgICAgICg0LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg1LCAgQVJS QVlbJ0MnXSksICAtLSAxc3QgKEJDKXsyfSBkb25lCisgICAgICAgICg2LCAgQVJSQVlbJ0EnXSks ICAtLSAxc3QgKyBpdGVyLCAybmQgezJ9LCBBCisgICAgICAgICg3LCAgQVJSQVlbJ0InXSksCisg ICAgICAgICg4LCAgQVJSQVlbJ0MnXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAg ICAgICgxMCwgQVJSQVlbJ0MnXSksICAtLSAybmQgKEJDKXsyfSBkb25lLCAxc3QgezJ9IGRvbmUs IDFzdCArIGl0ZXIgZG9uZQorICAgICAgICAoMTEsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRl ciwgMXN0IHsyfSwgQQorICAgICAgICAoMTIsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTMsIEFS UkFZWydDJ10pLAorICAgICAgICAoMTQsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTUsIEFSUkFZ WydDJ10pLAorICAgICAgICAoMTYsIEFSUkFZWydBJ10pLCAgLS0gMm5kICsgaXRlciwgMm5kIHsy fSwgQQorICAgICAgICAoMTcsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTgsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTksIEFSUkFZWydCJ10pLAorICAgICAgICAoMjAsIEFSUkFZWydDJ10pLCAg LS0gMm5kICsgaXRlciBkb25lCisgICAgICAgICgyMSwgQVJSQVlbJ1gnXSkgICAtLSBubyBtYXRj aCwgKyBlbmRzCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVDVCBpZCwgZmxhZ3MsIGZp cnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3RfdmFsdWUoaWQpIE9WRVIg dyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfM2xldmVsX2VuZAorV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkrKQorICAgIERFRklORQorICAgICAgICBBIEFTICdB JyA9IEFOWShmbGFncyksCisgICAgICAgIEIgQVMgJ0InID0gQU5ZKGZsYWdzKSwKKyAgICAgICAg QyBBUyAnQycgPSBBTlkoZmxhZ3MpCispOworIGlkIHwgZmxhZ3MgfCBtYXRjaF9zdGFydCB8IG1h dGNoX2VuZCAKKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgIDEgfCB7 QX0gICB8ICAgICAgICAgICAxIHwgICAgICAgIDIwCisgIDIgfCB7Qn0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisgIDMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDQg fCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDUgfCB7Q30gICB8ICAgICAgICAg ICAgIHwgICAgICAgICAgCisgIDYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisg IDcgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgIDggfCB7Q30gICB8ICAgICAg ICAgICAgIHwgICAgICAgICAgCisgIDkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAg CisgMTAgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTEgfCB7QX0gICB8ICAg ICAgICAgICAgIHwgICAgICAgICAgCisgMTIgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAg ICAgCisgMTMgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTQgfCB7Qn0gICB8 ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTUgfCB7Q30gICB8ICAgICAgICAgICAgIHwgICAg ICAgICAgCisgMTYgfCB7QX0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTcgfCB7Qn0g ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMTggfCB7Q30gICB8ICAgICAgICAgICAgIHwg ICAgICAgICAgCisgMTkgfCB7Qn0gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjAgfCB7 Q30gICB8ICAgICAgICAgICAgIHwgICAgICAgICAgCisgMjEgfCB7WH0gICB8ICAgICAgICAgICAg IHwgICAgICAgICAgCisoMjEgcm93cykKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBBKyBCKyAo Zmlyc3QgZWxlbWVudCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0ZXN0X211 bHRpX3VuYm91bmRlZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKaW5kZXggY2Y2YzA2MmFlODUuLjhjMjNjNzU5OGEzIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0yNjAwLDYgKzI2MDAsNDIgQEAgV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RwogICAgICAgICAgICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyBQQVRURVJOICgo QSsgQiB8IEEgQikqKQogICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2 YWwgPiA1MCk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNvcmJhYmxlOiAoQXsyfSBCezN9 KSsgLT4gKGF7Mn0nIGJ7M30nKXsyLH0iCistLSBBbGwgY2hpbGRyZW4gaGF2ZSBtaW4gPT0gbWF4 LCBlcXVpdmFsZW50IHRvIHVucm9sbGluZyB0byB7MSwxfQorRVhQTEFJTiAoQ09TVFMgT0ZGKQor U0VMRUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBezJ9 IEJ7M30pKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyB2YWwgPD0gNTAsIEIgQVMgdmFsID4g NTApOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4g YWJzb3JiYWJsZQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIgdyBG Uk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFUQ0gg U0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKykKKyAgICAgICAgICAg ICBERUZJTkUgQSBBUyB2YWwgPD0gMjAsIEIgQVMgdmFsIDw9IDQwLCBDIEFTIHZhbCA8PSA2MCwg RCBBUyB2YWwgPiA2MCk7CisKKy0tIE5lc3RlZCBmaXhlZC1sZW5ndGggd2l0aCBpbm5lciBxdWFu dGlmaWVyOiAoKEF7Mn0gQnszfSl7Mn0pKyAtPiBhYnNvcmJhYmxlCitFWFBMQUlOIChDT1NUUyBP RkYpCitTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICAgICAgICAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgUEFUVEVSTiAo KChBezJ9IEJ7M30pezJ9KSspCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsIDw9IDUwLCBC IEFTIHZhbCA+IDUwKTsKKworLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCezIs NX0pKyAtPiBubyBtYXJrZXJzIChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VM RUNUIENPVU5UKCopIE9WRVIgdyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg ICAgICAgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEJ7Miw1 fSkrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIHZhbCA8PSA1MCwgQiBBUyB2YWwgPiA1MCk7 CisKKy0tIE5vbi1hYnNvcmJhYmxlIGZpeGVkLWxlbmd0aDogKEEgQj8pKyAtPiBubyBtYXJrZXJz IChtaW4gIT0gbWF4KQorRVhQTEFJTiAoQ09TVFMgT0ZGKQorU0VMRUNUIENPVU5UKCopIE9WRVIg dyBGUk9NIHJwcl9wbGFuCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XIFBBVFRFUk4gKChBIEI/KSspCisgICAgICAgICAgICAgREVG SU5FIEEgQVMgdmFsIDw9IDUwLCBCIEFTIHZhbCA+IDUwKTsKKwogLS0gTm9uLWFic29yYmFibGUg KHVuYm91bmRlZCBub3QgYXQgc3RhcnQpOiBBIEIrIC0+IGEgYisgKG5vIG1hcmtlcnMpCiBFWFBM QUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3IEZST00gcnByX3BsYW4KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCA5M2UwNmIwY2JkZi4uMjM3ZjAzNjY2 MzEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTU3OCw2ICs1NzgsMTIw IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMg PSAyLCBDIEFTIHYgJSAzID0gMAogKTsnKTsKIAorLS0gRml4ZWQtbGVuZ3RoIGdyb3VwIGFic29y cHRpb246IChBIEIgQikrIEMKKy0tIEIgQiBtZXJnZWQgdG8gQnsyfTsgYWJzb3JiYWJsZSB3aXRo IGZpeGVkLWxlbmd0aCBjaGVjaworLS0gc3RlcF9zaXplPTMgKEEgKyBCICsgQik7IHYgJSA3IGN5 Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyBwZXIgbWF0Y2gKK0NSRUFURSBWSUVXIHJwcl9ldjIwYiBB UworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklORSBBIEFTIHYgJSA3IElOICgxLCA0KSwg QiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMgdiAlIDcgPSAwCispOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGIn KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4 cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYs IFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSBCIEIpKyBDKQorICAgIERFRklO RSBBIEFTIHYgJSA3IElOICgxLCA0KSwgQiBBUyB2ICUgNyBJTiAoMiwgMywgNSwgNiksIEMgQVMg diAlIDcgPSAwCispOycpOworCistLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRp b246IChBIChCIEMpezJ9IEQpKyBFCistLSBzdGVwX3NpemUgPSAxICsgKDErMSkqMiArIDEgPSA2 OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQorQ1JFQVRFIFZJRVcgcnByX2V2 MjBjIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2 NSkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKChBIChCIEMpezJ9IEQpKyBFKQorICAgIERFRklORSBBIEFTIHYgJSAx MyBJTiAoMSwgNyksIEIgQVMgdiAlIDEzIElOICgyLCA0LCA4LCAxMCksCisgICAgICAgICAgIEMg QVMgdiAlIDEzIElOICgzLCA1LCA5LCAxMSksIEQgQVMgdiAlIDEzIElOICg2LCAxMiksCisgICAg ICAgICAgIEUgQVMgdiAlIDEzID0gMAorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBjJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1 KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoKEEgKEIgQyl7Mn0gRCkrIEUpCisgICAgREVGSU5FIEEgQVMgdiAlIDEz IElOICgxLCA3KSwgQiBBUyB2ICUgMTMgSU4gKDIsIDQsIDgsIDEwKSwKKyAgICAgICAgICAgQyBB UyB2ICUgMTMgSU4gKDMsIDUsIDksIDExKSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKKyAgICAg ICAgICAgRSBBUyB2ICUgMTMgPSAwCispOycpOworCistLSBEb3VibHkgbmVzdGVkIGZpeGVkLWxl bmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoKEIgQ3szfSl7Mn0gRCl7Mn0gRSkrIEYKKy0tIHN0 ZXBfc2l6ZSA9IDEgKyAoKDErMykqMisxKSoyICsgMSA9IDIwOyB2ICUgNDEgY3ljbGUgZ2l2ZXMg MiBpdGVyYXRpb25zICsgRgorQ1JFQVRFIFZJRVcgcnByX2V2MjBkIEFTCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA4MikgQVMgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKChBICgo QiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FIEEgQVMgdiAlIDQxIElOICgxLCAy MSksCisgICAgICAgICAgIEIgQVMgdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAyNiwgMzEs IDM1KSwKKyAgICAgICAgICAgQyBBUyB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIsMTMsMTQs IDE2LDE3LDE4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMsMjQsMjUsIDI3LDI4LDI5 LCAzMiwzMywzNCwgMzYsMzcsMzgpLAorICAgICAgICAgICBEIEFTIHYgJSA0MSBJTiAoMTAsIDE5 LCAzMCwgMzkpLAorICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQwKSwKKyAgICAgICAg ICAgRiBBUyB2ICUgNDEgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQorU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFT IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOICgoQSAoKEIgQyBDIEMpezJ9IEQpezJ9IEUpKyBGKQorICAgIERFRklORSBBIEFT IHYgJSA0MSBJTiAoMSwgMjEpLAorICAgICAgICAgICBCIEFTIHYgJSA0MSBJTiAoMiwgNiwgMTEs IDE1LCAyMiwgMjYsIDMxLCAzNSksCisgICAgICAgICAgIEMgQVMgdiAlIDQxIElOICgzLDQsNSwg Nyw4LDksIDEyLDEzLDE0LCAxNiwxNywxOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDIz LDI0LDI1LCAyNywyOCwyOSwgMzIsMzMsMzQsIDM2LDM3LDM4KSwKKyAgICAgICAgICAgRCBBUyB2 ICUgNDEgSU4gKDEwLCAxOSwgMzAsIDM5KSwKKyAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIw LCA0MCksCisgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAorKTsnKTsKKworLS0gMy1sZXZlbCBF TkQgY2hhaW4gYWJzb3JwdGlvbjogKChBIChCIEMpezJ9KXsyfSkrCistLSBzdGVwX3NpemUgPSAo MSArICgxKzEpKjIpICogMiA9IDEwOyB2ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zCist LSBFTkQgY2hhaW46IEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCssIEFCU09SQkFC TEUpCitDUkVBVEUgVklFVyBycHJfZXYyMGUgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQyKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKChBIChCIEMpezJ9KXsyfSkr KQorICAgIERFRklORSBBIEFTIHYgJSAyMSBJTiAoMSwgNiwgMTEsIDE2KSwKKyAgICAgICAgICAg QiBBUyB2ICUgMjEgSU4gKDIsIDQsIDcsIDksIDEyLCAxNCwgMTcsIDE5KSwKKyAgICAgICAgICAg QyBBUyB2ICUgMjEgSU4gKDMsIDUsIDgsIDEwLCAxMywgMTUsIDE4LCAyMCkKKyk7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIw ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA0MikgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSAoQiBDKXsyfSl7Mn0pKykK KyAgICBERUZJTkUgQSBBUyB2ICUgMjEgSU4gKDEsIDYsIDExLCAxNiksCisgICAgICAgICAgIEIg QVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCisgICAgICAgICAgIEMg QVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCispOycpOworCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9uZmEuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX25mYS5zcWwKaW5kZXggNWVkY2IzMzU3ZTYuLmFhYTdiNDRmNzg5IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfbmZhLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfbmZhLnNxbApAQCAtMzQ2LDYgKzM0NiwxNzQgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBCIEFTICdCJyA9IEFOWShmbGFncykKICk7CiAKKy0tIEZpeGVkLWxlbmd0aCBncm91cCBhYnNv cnB0aW9uOiAoQSBCezJ9KSsgQworLS0gQnsyfSBoYXMgbWluID09IG1heCwgZXF1aXZhbGVudCB0 byB1bnJvbGxpbmcgdG8gKEEgQiBCKSsgQworV0lUSCB0ZXN0X2Fic29yYl9maXhlZGxlbiBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ0MnXSksCisgICAgICAgICgxMSwgQVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZs YWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRj aF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fi c29yYl9maXhlZGxlbgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoKEEgQnsyfSkrIEMpCisgICAgREVG SU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBB TlkoZmxhZ3MpLAorICAgICAgICBDIEFTICdDJyA9IEFOWShmbGFncykKKyk7CisKKy0tIENvbnNl Y3V0aXZlIHZhcnMgbWVyZ2VkIHRvIGZpeGVkLWxlbmd0aDogKEEgQiBCKSsgLT4gKEEgQnsyfSkr CistLSBtZXJnZUNvbnNlY3V0aXZlVmFycyBwcm9kdWNlcyBCezJ9OyBub3cgYWJzb3JiYWJsZSB3 aXRoIGZpeGVkLWxlbmd0aCBjaGVjaworV0lUSCB0ZXN0X2Fic29yYl9jb25zZWN1dGl2ZSBBUyAo CisgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCisgICAgICAgICgxLCAgQVJSQVlbJ0EnXSksCisg ICAgICAgICgyLCAgQVJSQVlbJ0InXSksCisgICAgICAgICgzLCAgQVJSQVlbJ0InXSksCisgICAg ICAgICg0LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg1LCAgQVJSQVlbJ0InXSksCisgICAgICAg ICg2LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg3LCAgQVJSQVlbJ0EnXSksCisgICAgICAgICg4 LCAgQVJSQVlbJ0InXSksCisgICAgICAgICg5LCAgQVJSQVlbJ0InXSksCisgICAgICAgICgxMCwg QVJSQVlbJ1gnXSkKKyAgICApIEFTIHQoaWQsIGZsYWdzKQorKQorU0VMRUNUIGlkLCBmbGFncywg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9zdGFydCwgbGFzdF92YWx1ZShpZCkgT1ZF UiB3IEFTIG1hdGNoX2VuZAorRlJPTSB0ZXN0X2Fic29yYl9jb25zZWN1dGl2ZQorV0lORE9XIHcg QVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisg ICAgUEFUVEVSTiAoKEEgQiBCKSspCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgJ0EnID0gQU5Z KGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpCispOworCistLSBOZXN0ZWQg Zml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCistLSBJbm5l ciBncm91cCB7Mn0gaGFzIG1pbiA9PSBtYXg7IGFic29yYmFibGUgdmlhIHJlY3Vyc2l2ZSBjaGVj aworLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNgorV0lUSCB0ZXN0X2Fic29yYl9u ZXN0ZWRfZml4ZWRsZW4gQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZBTFVFUworICAgICAgICAo MSwgIEFSUkFZWydBJ10pLAorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywg IEFSUkFZWydDJ10pLAorICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgIEFS UkFZWydDJ10pLAorICAgICAgICAoNiwgIEFSUkFZWydEJ10pLAorICAgICAgICAoNywgIEFSUkFZ WydBJ10pLAorICAgICAgICAoOCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydD J10pLAorICAgICAgICAoMTAsIEFSUkFZWydCJ10pLAorICAgICAgICAoMTEsIEFSUkFZWydDJ10p LAorICAgICAgICAoMTIsIEFSUkFZWydEJ10pLAorICAgICAgICAoMTMsIEFSUkFZWydFJ10pLAor ICAgICAgICAoMTQsIEFSUkFZWydYJ10pCisgICAgKSBBUyB0KGlkLCBmbGFncykKKykKK1NFTEVD VCBpZCwgZmxhZ3MsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfc3RhcnQsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtYXRjaF9lbmQKK0ZST00gdGVzdF9hYnNvcmJfbmVzdGVkX2Zp eGVkbGVuCitXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOICgoQSAoQiBDKXsyfSBEKSsgRSkKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBCIEFTICdCJyA9IEFO WShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgRCBBUyAn RCcgPSBBTlkoZmxhZ3MpLAorICAgICAgICBFIEFTICdFJyA9IEFOWShmbGFncykKKyk7CisKKy0t IERvdWJseSBuZXN0ZWQgZml4ZWQtbGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9 KXsyfSBEKXsyfSBFKSsgRgorLS0gc3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0g MjA7IDIgaXRlcmF0aW9ucyArIEYgPSA0MSByb3dzCitXSVRIIHRlc3RfYWJzb3JiX2RvdWJseV9u ZXN0ZWQgQVMgKAorICAgIFNFTEVDVCB2IEFTIGlkLCBBUlJBWVsKKyAgICAgICAgQ0FTRQorICAg ICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEsIDIxKSAgVEhFTiAnQScKKyAgICAgICAgICAgIFdI RU4gdiAlIDQxIElOICgyLCA2LCAxMSwgMTUsIDIyLCAyNiwgMzEsIDM1KSBUSEVOICdCJworICAg ICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDMsNCw1LCA3LDgsOSwgMTIsMTMsMTQsIDE2LDE3LDE4 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLDI0LDI1LCAyNywyOCwyOSwgMzIsMzMs MzQsIDM2LDM3LDM4KSBUSEVOICdDJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDEwLCAx OSwgMzAsIDM5KSBUSEVOICdEJworICAgICAgICAgICAgV0hFTiB2ICUgNDEgSU4gKDIwLCA0MCkg VEhFTiAnRScKKyAgICAgICAgICAgIFdIRU4gdiAlIDQxID0gMCBUSEVOICdGJworICAgICAgICAg ICAgRUxTRSAnWCcKKyAgICAgICAgRU5ECisgICAgXSBBUyBmbGFncworICAgIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0 Y2hfZW5kCitGUk9NIHRlc3RfYWJzb3JiX2RvdWJseV9uZXN0ZWQKK1dJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRF Uk4gKChBICgoQiBDIEMgQyl7Mn0gRCl7Mn0gRSkrIEYpCisgICAgREVGSU5FCisgICAgICAgIEEg QVMgJ0EnID0gQU5ZKGZsYWdzKSwKKyAgICAgICAgQiBBUyAnQicgPSBBTlkoZmxhZ3MpLAorICAg ICAgICBDIEFTICdDJyA9IEFOWShmbGFncyksCisgICAgICAgIEQgQVMgJ0QnID0gQU5ZKGZsYWdz KSwKKyAgICAgICAgRSBBUyAnRScgPSBBTlkoZmxhZ3MpLAorICAgICAgICBGIEFTICdGJyA9IEFO WShmbGFncykKKyk7CisKKy0tIDMtbGV2ZWwgRU5EIGNoYWluOiAoKEEgKEIgQyl7Mn0pezJ9KSsK Ky0tIFRlc3RzIEVORChCQ3syfSkgLT4gRU5EKEEuLnsyfSkgLT4gRU5EKCspIGNoYWluaW5nCist LSAyIGl0ZXJhdGlvbnMgb2YgKywgZWFjaCAxMCByb3dzOiAoQSBCIEMgQiBDKShBIEIgQyBCIEMp CitXSVRIIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQgQVMgKAorICAgIFNFTEVDVCAqIEZST00gKFZB TFVFUworICAgICAgICAoMSwgIEFSUkFZWydBJ10pLCAgLS0gMXN0ICsgaXRlciwgMXN0IHsyfSwg QQorICAgICAgICAoMiwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMywgIEFSUkFZWydDJ10pLAor ICAgICAgICAoNCwgIEFSUkFZWydCJ10pLAorICAgICAgICAoNSwgIEFSUkFZWydDJ10pLCAgLS0g MXN0IChCQyl7Mn0gZG9uZQorICAgICAgICAoNiwgIEFSUkFZWydBJ10pLCAgLS0gMXN0ICsgaXRl ciwgMm5kIHsyfSwgQQorICAgICAgICAoNywgIEFSUkFZWydCJ10pLAorICAgICAgICAoOCwgIEFS UkFZWydDJ10pLAorICAgICAgICAoOSwgIEFSUkFZWydCJ10pLAorICAgICAgICAoMTAsIEFSUkFZ WydDJ10pLCAgLS0gMm5kIChCQyl7Mn0gZG9uZSwgMXN0IHsyfSBkb25lLCAxc3QgKyBpdGVyIGRv bmUKKyAgICAgICAgKDExLCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDFzdCB7Mn0sIEEK KyAgICAgICAgKDEyLCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDEzLCBBUlJBWVsnQyddKSwKKyAg ICAgICAgKDE0LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE1LCBBUlJBWVsnQyddKSwKKyAgICAg ICAgKDE2LCBBUlJBWVsnQSddKSwgIC0tIDJuZCArIGl0ZXIsIDJuZCB7Mn0sIEEKKyAgICAgICAg KDE3LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDE4LCBBUlJBWVsnQyddKSwKKyAgICAgICAgKDE5 LCBBUlJBWVsnQiddKSwKKyAgICAgICAgKDIwLCBBUlJBWVsnQyddKSwgIC0tIDJuZCArIGl0ZXIg ZG9uZQorICAgICAgICAoMjEsIEFSUkFZWydYJ10pICAgLS0gbm8gbWF0Y2gsICsgZW5kcworICAg ICkgQVMgdChpZCwgZmxhZ3MpCispCitTRUxFQ1QgaWQsIGZsYWdzLCBmaXJzdF92YWx1ZShpZCkg T1ZFUiB3IEFTIG1hdGNoX3N0YXJ0LCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWF0Y2hfZW5k CitGUk9NIHRlc3RfYWJzb3JiXzNsZXZlbF9lbmQKK1dJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKCgoQSAo QiBDKXsyfSl7Mn0pKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyAnQScgPSBBTlkoZmxhZ3Mp LAorICAgICAgICBCIEFTICdCJyA9IEFOWShmbGFncyksCisgICAgICAgIEMgQVMgJ0MnID0gQU5Z KGZsYWdzKQorKTsKKwogLS0gTXVsdGlwbGUgdW5ib3VuZGVkOiBBKyBCKyAoZmlyc3QgZWxlbWVu dCB1bmJvdW5kZWQgZW5hYmxlcyBhYnNvcnB0aW9uKQogV0lUSCB0ZXN0X211bHRpX3VuYm91bmRl ZCBBUyAoCiAgICAgU0VMRUNUICogRlJPTSAoVkFMVUVTCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0x NTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Disposition: attachment; filename="nocfbot-0010-Rename-rpr_explain-test-views-to-descriptive-names.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tq92d9 RnJvbSA3ODUxZDg1ZWY3NDUwYzIwYjU1MDM1NTQ3ZWNhZjhjOTc3YzY4MjA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMjI6MDA6NTAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW5hbWUg cnByX2V4cGxhaW4gdGVzdCB2aWV3cyBmcm9tIHNlcXVlbnRpYWwgbnVtYmVycyB0bwogZGVzY3Jp cHRpdmUgbmFtZXMKClJlcGxhY2UgcnByX2V2MDEuLnJwcl9ldjg5IHdpdGggc2VjdGlvbi1iYXNl ZCBuYW1lcyBsaWtlCnJwcl9ldl9jdHhfYWJzb3JiX2dyb3VwLCBycHJfZXZfYWx0X25lc3RlZF9z dGFydCwgZXRjLgpUaGlzIGF2b2lkcyBudW1iZXJpbmcgY29uZmxpY3RzIHdoZW4gaW5zZXJ0aW5n IG5ldyB0ZXN0cy4KLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91 dCB8IDM3OCArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf ZXhwbGFpbi5zcWwgICAgICB8IDM3MiArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDM3NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDU2MGYyMWY0NGMyLi5mNjZjYWY4OTA4 ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTExMSw3 ICsxMTEsNyBAQCBWQUxVRVMKIC0tIEJhc2ljIE5GQSBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tIFNpbXBsZSBwYXR0ZXJuIC0gc2hvdWxkIHNob3cgYmFzaWMgc3RhdGlzdGljcwotQ1JFQVRF IFZJRVcgcnByX2V2MDEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9iYXNpY19zaW1wbGUgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBA IC0xMjAsNyArMTIwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InCiApOwotU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX3NpbXBsZScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTUwLDcgKzE1 MCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFBhdHRlcm4gd2l0aCBubyBtYXRj aGVzIC0gMCBtYXRjaGVkCi1DUkVBVEUgVklFVyBycHJfZXYwMiBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2Jhc2ljX25vbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25m YV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNTksNyArMTU5LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKFggWSBaKQogICAgIERFRklORSBYIEFTIGNhdCA9ICdYJywgWSBBUyBjYXQg PSAnWScsIFogQVMgY2F0ID0gJ1onCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX25vbWF0Y2gnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHggeSB6KSAKQEAgLTE4OCw3ICsxODgsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIG1hdGNoaW5nIGV2ZXJ5IHJvdyAt IGhpZ2ggbWF0Y2ggY291bnQKLUNSRUFURSBWSUVXIHJwcl9ldjAzIEFTCitDUkVBVEUgVklFVyBy cHJfZXZfYmFzaWNfYWxscm93cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJf bmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE5Nyw3ICsxOTcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoUikKICAgICBERUZJTkUgUiBBUyBUUlVFCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwMycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2ljX2FsbHJv d3MnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICBsaW5l ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChyKSAKQEAgLTIyNyw3ICsyMjcs NyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlZ3Jlc3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBh cmVudGhlc2lzIGluIHBhdHRlcm4gZGVwYXJzZQogLS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMp IiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiYSAoYiB8IGMpIiB3aXRoIHNwYWNlCi1DUkVBVEUgVklF VyBycHJfZXYwNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBz KHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzUsNyArMjM1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEEgKEIgfCBDKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAl IDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDQnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NwYWNlJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGEgKGIgfCBjKSkgCkBA IC0yNjYsNyArMjY2LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUmVncmVzc2lvbiB0ZXN0OiBTZXF1 ZW50aWFsIGFsdGVybmF0aW9ucyBhdCBzYW1lIGRlcHRoCiAtLSBWZXJpZmllcyB0aGF0ICIoKEIg fCBDKSAoRCB8IEUpKSIgY29ycmVjdGx5IG91dHB1dHMgYXMgIihiIHwgYykgKGQgfCBlKSIKIC0t IFByZXZpb3VzbHkgZmFpbGVkIGR1ZSB0byBtaXNzaW5nIHBhcmVudGhlc2VzIG9uIEFMVCBkZXB0 aCBkZWNyZWFzZQotQ1JFQVRFIFZJRVcgcnByX2V2MDUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9i YXNpY19kZXBhcnNlX3NlcWFsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI3NCw3ICsyNzQs NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSAoKEIgfCBDKSAoRCB8IEUpKSopCiAg ICAgREVGSU5FIEEgQVMgdiAlIDUgPSAxLCBCIEFTIHYgJSA1ID0gMiwgQyBBUyB2ICUgNSA9IDMs IEQgQVMgdiAlIDUgPSA0LCBFIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MDUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9iYXNpY19kZXBhcnNlX3NlcWFs dCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgUEFUVEVSTiAoYSAoKGIgfCBjKSAoZCB8IGUpKSopIApAQCAtMzA1LDcgKzMwNSw3 IEBAIFdJTkRPVyB3IEFTICgKIC0tIFN0YXRlIFN0YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFs LCBtZXJnZWQpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIFNpbXBsZSBxdWFudGlmaWVyIHBhdHRlcm4gLSBBKyB3aXRo IHNob3J0IG1hdGNoZXMgKG5vIG1lcmdpbmcpCi1DUkVBVEUgVklFVyBycHJfZXYwNiBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTMxNCw3ICszMTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAg REVGSU5FIEEgQVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX3NpbXBsZV9xdWFudCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAtMzQzLDcgKzM0Myw3IEBAIFdJTkRP VyB3IEFTICgKICg4IHJvd3MpCiAKIC0tIEFsdGVybmF0aW9uIHBhdHRlcm4gLSBtdWx0aXBsZSBz dGF0ZSBicmFuY2hlcwotQ1JFQVRFIFZJRVcgcnByX2V2MDcgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl9zdGF0ZV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0 CiBXSU5ET1cgdyBBUyAoCkBAIC0zNTQsNyArMzU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAg ICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAg ICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjA3JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAgbGluZSAg ICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFU VEVSTiAoKGEgfCBiIHwgYykgKGQgfCBlKSkgCkBAIC0zODYsNyArMzg2LDcgQEAgV0lORE9XIHcg QVMgKAogKDkgcm93cykKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3Vu dAotQ1JFQVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21w bGV4IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM5OCw3ICszOTgsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9zdGF0ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKiBjKykgCkBAIC00MzEsNyArNDMxLDcgQEAgV0lORE9XIHcgQVMgKAogKDkg cm93cykKIAogLS0gR3JvdXBlZCBwYXR0ZXJuIHdpdGggcXVhbnRpZmllciAtIHN0YXRlIGNvdW50 IHdpdGggZ3JvdXBpbmcKLUNSRUFURSBWSUVXIHJwcl9ldjA5IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfc3RhdGVfZ3JvdXBfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00NDAsNyArNDQw LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJTkUgQSBB UyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwOScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2dyb3VwX3F1YW50JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKykgCkBAIC00NzEs NyArNDcxLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBTdGF0ZSBleHBsb3Npb24gcGF0dGVybiAt IG1hbnkgYWx0ZXJuYXRpb25zCiAtLSBQYXR0ZXJuIChBfEIpKEF8QikoQXxCKShBfEIpIGNhbiBj cmVhdGUgbWFueSBwYXJhbGxlbCBzdGF0ZXMKLUNSRUFURSBWSUVXIHJwcl9ldjEwIEFTCitDUkVB VEUgVklFVyBycHJfZXZfc3RhdGVfZXhwbG9zaW9uIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTQ4MCw3ICs0ODAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8 IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpKQogICAg IERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEwJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfZXhwbG9z aW9uJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikg KGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikgKGEgfCBiKSkg CkBAIC01MTEsNyArNTExLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBDb25zZWN1dGl2ZSBBTFQg bWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2 ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTogKEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBWSUVXIHJw cl9ldjExIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTUyMCw3ICs1MjAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwgRCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAw LCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUgNCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYxMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0 YXRlX2FsdF9tZXJnZV9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikgKGEgfCBiKSAo YyB8IGQpKSAKQEAgLTU1MSw3ICs1NTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIENvbnNlY3V0 aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBub24tQUxUIGVsZW1lbnQKIC0tIFRlc3RzIG1lcmdl Q29uc2VjdXRpdmVBbHRzIGZsdXNoIG9uIG5vbi1BTFQ6IChBfEIpezJ9IGMKLUNSRUFURSBWSUVX IHJwcl9ldjEyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X21lcmdlX25vbmFsdCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU2MCw3ICs1NjAsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAw LCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEyJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X21lcmdlX25v bmFsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAg ICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoKGEgfCBiKSAoYSB8IGIpIGMpIApAQCAtNTkwLDcgKzU5MCw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEFMVCBwcmVmaXgvc3VmZml4IGFic29yYmVkIGlu dG8gR1JPVVA6IChBfEIpIChBfEIpKyAoQXxCKSAtPiAoQXxCKXszLH0KLUNSRUFURSBWSUVXIHJw cl9ldjEzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCBBUwog U0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTU5OSw3ICs1OTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpKyAoQSB8IEIpKQogICAgIERFRklORSBBIEFTIHYgJSAy ID0gMCwgQiBBUyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjEzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfc3RhdGVfYWx0X2Fic29yYl9ncm91cCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgbGlu ZSAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikrIChhIHwgYikpIApAQCAtNjI5LDcgKzYy OSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBh bHRlcm5hdGlvbiB3aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC02MzgsNyArNjM4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8 IEMpKyBEKQogICAgIERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMg diAlIDQgPSAzLCBEIEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBi IHwgYykrIGQpIApAQCAtNjY5LDcgKzY2OSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gRWFybHkg dGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVkaWF0ZWx5 LAogLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFjY3VtdWxh dGUgQiByZXBldGl0aW9ucy4KLUNSRUFURSBWSUVXIHJwcl9ldjE1IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfc3RhdGVfYWx0X3BydW5lIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTY3OCw3ICs2 NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBBIEIpKykKICAgICBERUZJ TkUgQSBBUyB2ID0gMSwgQiBBUyB2ID4gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MTUnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGEgYikrKSAK QEAgLTcwNyw3ICs3MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBOZXN0ZWQg cXVhbnRpZmllcnMgY2F1c2luZyBzdGF0ZSBncm93dGgKLUNSRUFURSBWSUVXIHJwcl9ldjE2IEFT CitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC03MTYsNyArNzE2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgo QSB8IEIpKykrKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIKICk7 Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldjE2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXZfc3RhdGVfbmVzdGVkX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoKGEgfCBiKSspKykgCkBAIC03NDksNyArNzQ5LDcgQEAgV0lO RE9XIHcgQVMgKAogLS0gQ29udGV4dCBTdGF0aXN0aWNzIFRlc3RzIChwZWFrLCB0b3RhbCwgcHJ1 bmVkICsgYWJzb3JiZWQvc2tpcHBlZCkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29udGV4dCBhYnNvcnB0aW9uIHdp dGggdW5ib3VuZGVkIHF1YW50aWZpZXIgYXQgc3RhcnQKLUNSRUFURSBWSUVXIHJwcl9ldjE3IEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl91bmJvdW5kZWQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC03NTgsNyArNzU4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djE3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4 X2Fic29yYl91bmJvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTc4OCw3ICs3ODgsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAt LSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXYx OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmIgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC03OTcsNyArNzk3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw0 fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0 eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgICBsaW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGF7Miw0fSBiKSAKQEAgLTgyNyw3ICs4MjcsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dz KQogCiAtLSBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVwotQ1JFQVRFIFZJ RVcgcnByX2V2MTkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jdHhfc2tpcCBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC04MzYsNyArODM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEEgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA9IDEsIEIgQVMgdiAlIDEwID0gMiwgQyBB UyB2ICUgMTAgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2N0eF9za2lwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOIChhIGIgYykgCkBAIC04NjYsNyArODY2LDcgQEAgV0lORE9XIHcgQVMgKAog KDkgcm93cykKIAogLS0gSGlnaCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5kZWQgZ3JvdXAK LUNSRUFURSBWSUVXIHJwcl9ldjIwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9n cm91cCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC04NzUsNyArODc1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKChBIEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfZ3JvdXAnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAg ICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIGIpKyBjKSAK QEAgLTkwNyw3ICs5MDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAg YWJzb3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNvcmJhYmxl IHdpdGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBCKTsgdiAl IDcgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcgcnByX2V2 MjBiIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTkxNiw3ICs5MTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoKEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIgQVMgdiAl IDcgSU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9maXhl ZHZhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAg ICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4g KChhIGIgYikrIGMpIApAQCAtOTQ3LDcgKzk0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gTmVz dGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoQiBDKXsyfSBEKSsgRQogLS0g c3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNjsgdiAlIDEzIGN5Y2xlIGdpdmVzIDIgaXRl cmF0aW9ucyArIEUKLUNSRUFURSBWSUVXIHJwcl9ldjIwYyBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2N0eF9hYnNvcmJfbmVzdGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCA2NSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtOTU4LDcgKzk1OCw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgQyBBUyB2ICUgMTMgSU4gKDMsIDUsIDksIDEx KSwgRCBBUyB2ICUgMTMgSU4gKDYsIDEyKSwKICAgICAgICAgICAgRSBBUyB2ICUgMTMgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYyMGMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9jdHhfYWJzb3JiX25lc3RlZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKGIgYyl7Mn0gZCkrIGUpIApAQCAt OTkxLDcgKzk5MSw3IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gRG91Ymx5IG5lc3RlZCBmaXhlZC1s ZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChCIEN7M30pezJ9IEQpezJ9IEUpKyBGCiAtLSBz dGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiArIDEgPSAyMDsgdiAlIDQxIGN5Y2xlIGdpdmVz IDIgaXRlcmF0aW9ucyArIEYKLUNSRUFURSBWSUVXIHJwcl9ldjIwZCBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2N0eF9hYnNvcmJfZGVlcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgODIpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEwMDYsNyAr MTAwNiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgICAgRSBBUyB2ICUgNDEgSU4gKDIwLCA0 MCksCiAgICAgICAgICAgIEYgQVMgdiAlIDQxID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBkJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9kZWVwJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAg ICAgIGxpbmUgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgKChiIGMgYyBjKXsyfSBkKXsyfSBlKSsg ZikgCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSAzLWxldmVsIEVORCBj aGFpbiBhYnNvcnB0aW9uOiAoKEEgKEIgQyl7Mn0pezJ9KSsKIC0tIHN0ZXBfc2l6ZSA9ICgxICsg KDErMSkqMikgKiAyID0gMTA7IHYgJSAyMSBjeWNsZSBnaXZlcyAyIGl0ZXJhdGlvbnMKIC0tIEVO RCBjaGFpbjogRU5EKEJDezJ9KSAtPiBFTkQoQS4uezJ9KSAtPiBFTkQoKywgQUJTT1JCQUJMRSkK LUNSRUFURSBWSUVXIHJwcl9ldjIwZSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJf ZW5kY2hhaW4gQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDQyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDU1LDcgKzEwNTUsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQs IDE3LCAxOSksCiAgICAgICAgICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1 LCAxOCwgMjApCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKCgoYSAoYiBj KXsyfSl7Mn0pKykgCkBAIC0xMDkwLDcgKzEwOTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBNYXRj aCBMZW5ndGggU3RhdGlzdGljcyBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaXhlZCBsZW5ndGggbWF0Y2hl cyAtIGFsbCBzYW1lIGxlbmd0aAotQ1JFQVRFIFZJRVcgcnByX2V2MjEgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9tbGVuX2ZpeGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9u ZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAtMTEwMSw3ICsxMTAxLDcgQEAgV0lORE9XIHcgQVMg KAogICAgICAgICBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0Mn LAogICAgICAgICBEIEFTIGNhdCA9ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIxJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9maXhl ZCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBs aW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIg YyBkIGUpIApAQCAtMTEzMyw3ICsxMTMzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAog LS0gVmFyaWFibGUgbGVuZ3RoIG1hdGNoZXMgLSBtaW4vbWF4L2F2ZyBkaWZmZXIKLUNSRUFURSBW SUVXIHJwcl9ldjIyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl92YXJpYWJsZSBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTQyLDcgKzExNDIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQ QVRURVJOIChhKyBiKSAKQEAgLTExNzIsNyArMTE3Miw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJv d3MpCiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMTgx LDcgKzExODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJ TkUgQSBBUyB2IDw9IDE5NSwgQiBBUyB2ID4gMTk1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMycpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X21sZW5fbG9uZycpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTIxMSw3ICsxMjExLDcg QEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVW5pZm9ybSBtYXRjaCBsZW5ndGggd2l0 aCBtaXNtYXRjaGVzIGZyb20gZ2FwIHJvd3MgKHYlMjAgPSAxMS4uMTUpCi1DUkVBVEUgVklFVyBy cHJfZXYyNCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjIyLDcgKzEyMjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgIEEgQVMgKHYgJSAyMCA8PiAwKSBBTkQgKHYgJSAyMCA8PSAxMCBPUiB2ICUgMjAgPiAxNSks CiAgICAgICAgIEIgQVMgdiAlIDIwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2gnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTEyNTgsNyArMTI1 OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUGF0dGVybiB3aXRoIGNvbXBsZXRlIG1h dGNoIGV2ZXJ5IGN5Y2xlOiAwIG1pc21hdGNoZWQKIC0tIEEoMSwyLDMpIEIoNCw1KSBDKDYpIHJl cGVhdHMgcGVyZmVjdGx5OyBYIHJvd3MgYXJlIHBydW5lZCwgbm90IG1pc21hdGNoZWQKLUNSRUFU RSBWSUVXIHJwcl9ldjI1IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9ub19taXNtYXRjaCBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIHYsCkBAIC0xMjc0 LDcgKzEyNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9tbGVuX25vX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSsgYisgYykgCkBAIC0xMzExLDcgKzEzMTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAo OSByb3dzKQogCiAtLSBMb25nIHBhcnRpYWwgbWF0Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBWSUVX IHJwcl9ldjI2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAogICAgIFNFTEVDVCBpIEFTIHYsCkBAIC0xMzMy LDcgKzEzMzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBE RUZJTkUgQSBBUyBjYXQgPSAnQScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9tbGVuX2xvbmdfcGFydGlhbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGErIGIrIGMpIApAQCAtMTM3Nyw3ICsxMzc3LDcgQEAgV0lORE9XIHcgQVMgKAog LS0gSlNPTiBGb3JtYXQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gSlNPTiBmb3JtYXQgb3V0cHV0IHdpdGgg YWxsIHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI3IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9iYXNpYyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzODYsNyArMTM4Niw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIrKSAKQEAgLTE0NTQsNyArMTQ1NCw3IEBAIFdJ TkRPVyB3IEFTICgKICgxIHJvdykKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBtYXRjaCBsZW5ndGgg c3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9q c29uX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE0NjMsNyArMTQ2Myw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSAx MCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI4JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfanNvbl9tYXRjaGxlbicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMTUzNSw3ICsxNTM1LDcgQEAg V0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNoIHN0YXRpc3RpY3MK IC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIsNCB0d2ljZSBjYXVz aW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoVkFMVUVT ICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQodikKIFdJTkRPVyB3 IEFTICgKQEAgLTE1NDQsNyArMTU0NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgQykKICAgICBERUZJTkUgQSBBUyB2ID0gMSwgQiBBUyB2ID0gMiwgQyBBUyB2ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2MjknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9qc29uX21pc21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhIGIgYykgCkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIEpTT04g Zm9ybWF0IHdpdGggc2tpcHBlZCBjb250ZXh0IHN0YXRpc3RpY3MKIC0tIEFsdGVybmF0aW9uIHBh dHRlcm4gd2l0aCBTS0lQIFBBU1QgTEFTVCBST1cgY2F1c2VzIG1hbnkgY29udGV4dHMgdG8gYmUg c2tpcHBlZAotQ1JFQVRFIFZJRVcgcnByX2V2MzAgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9qc29u X3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTYyNCw3ICsxNjI0LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIChhIHwgYikgKGEgfCBiKSAoYSB8IGIpIChhIHwg YikgKGEgfCBiKSAoYSB8IGIpIChhIHwgYikpIApAQCAtMTY5OCw3ICsxNjk4LDcgQEAgV0lORE9X IHcgQVMgKAogLS0gWE1MIEZvcm1hdCBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBYTUwgZm9ybWF0IG91dHB1 dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxfYmFzaWMg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzA3LDcgKzE3MDcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2ICUg MiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjMxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfeG1sX2Jhc2ljJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGEgYikgCkBAIC0xNzc4LDcgKzE3NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBNdWx0aXBs ZSBQYXJ0aXRpb25zIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRpc3RpY3MgYWNyb3NzIG11bHRpcGxl IHBhcnRpdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjMyIEFTCitDUkVBVEUgVklFVyBycHJfZXZf cGFydF9tdWx0aSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSAoCiAgICAgU0VMRUNU IHAsIHYKQEAgLTE3OTIsNyArMTc5Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB KyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYzMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3Bh cnRfbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAg ICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAK QEAgLTE4MzIsNyArMTgzMiw3IEBAIFdJTkRPVyB3IEFTICgKICgxNCByb3dzKQogCiAtLSBEaWZm ZXJlbnQgcGF0dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBycHJfZXYz MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoCiAgICAgU0VMRUNUCkBAIC0xODQ3LDcgKzE4NDcsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBCIEFTIHZh bCA+PSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBB VFRFUk4gKGErIGIpIApAQCAtMTg4OSw3ICsxODg5LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gRWRn ZSBDYXNlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSBFbXB0eSByZXN1bHQgc2V0Ci1DUkVBVEUgVklFVyBycHJfZXYz NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2VfZW1wdHkgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE4OTgsNyArMTg5OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAg ICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM0JyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9lbXB0eScpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgIAog LS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIpIApAQCAtMTkyMyw3ICsxOTIzLDcg QEAgV0lORE9XIHcgQVMgKAogKDQgcm93cykKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFZJRVcg cnByX2V2MzUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTE5MzIsNyArMTkzMiw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOIChBKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgbGluZSAgICAgIAog LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSkgCkBAIC0xOTYxLDcgKzE5NjEsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBQYXR0ZXJuIGxvbmdlciB0aGFuIGRhdGEKLUNS RUFURSBWSUVXIHJwcl9ldjM2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9wYXR0ZXJuX2xv bmdlciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NSkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTk3Miw3ICsxOTcyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgICAgICBBIEFTIHYgPSAxLCBCIEFTIHYgPSAyLCBDIEFTIHYgPSAzLCBEIEFTIHYg PSA0LCBFIEFTIHYgPSA1LAogICAgICAgICBGIEFTIHYgPSA2LCBHIEFTIHYgPSA3LCBIIEFTIHYg PSA4LCBJIEFTIHYgPSA5LCBKIEFTIHYgPSAxMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzYnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2VyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICAg bGluZSAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgUEFUVEVSTiAoYSBiIGMgZCBlIGYgZyBoIGkgaikgCkBAIC0yMDAzLDcgKzIwMDMsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOCByb3dzKQogCiAtLSBBbGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0 Y2gKLUNSRUFURSBWSUVXIHJwcl9ldjM3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9zaW5n bGVfbWF0Y2ggQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDEyLDcgKzIwMTIsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgVFJVRQogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9l ZGdlX3NpbmdsZV9tYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKICAgICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSsp IApAQCAtMjA0NSw3ICsyMDQ1LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gQ29tcGxleCBQYXR0ZXJu IFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjM4IEFT CitDUkVBVEUgVklFVyBycHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTIwNTQsNyArMjA1NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykr KQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYzOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2NweF9uZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICBQQVRURVJOICgoKGEgYikgYykrKSAKQEAgLTIwODQsNyArMjA4NCw3IEBAIFdJTkRP VyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aW9ucwotQ1JFQVRFIFZJ RVcgcnByX2V2MzkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKApAQCAt MjA5NSw3ICsyMDk1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9ICdBJywg QiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9ICdEJywg RSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X211bHRpX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikg KGMgfCBkIHwgZSkpIApAQCAtMjEyNyw3ICsyMTI3LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93 cykKIAogLS0gT3B0aW9uYWwgZWxlbWVudHMKLUNSRUFURSBWSUVXIHJwcl9ldjQwIEFTCitDUkVB VEUgVklFVyBycHJfZXZfY3B4X29wdGlvbmFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjEz Niw3ICsyMTM2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQj8gQykKICAgICBE RUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBDIEFTIHYgJSA0ID0gMwogKTsK LVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZign cnByX2V2NDAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l dl9jcHhfb3B0aW9uYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSBiPyBjKSAKQEAgLTIxNjYsNyArMjE2Niw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3Mp CiAKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNSRUFURSBWSUVXIHJwcl9ldjQxIEFTCitDUkVB VEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE3 NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7Miw1fSBCKQogICAg IERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X2JvdW5k ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBs aW5lICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGF7Miw1 fSBiKSAKQEAgLTIyMDUsNyArMjIwNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0t IFN0YXIgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NDIgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9jcHhfc3RhciBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIyMTQsNyArMjIxNCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIqIEMpCiAgICAgREVGSU5FIEEgQVMgdiAl IDEwID0gMSwgQiBBUyB2ICUgMTAgSU4gKDIsMyw0LDUsNiw3LDgpLCBDIEFTIHYgJSAxMCA9IDkK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjQyJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfY3B4X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVS TiAoYSBiKiBjKSAKQEAgLTIyNDcsNyArMjI0Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIFJlYWwt d29ybGQgUGF0dGVybiBFeGFtcGxlcwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdG9jayBwcmljZSBwYXR0ZXJuIC0g Vi1zaGFwZSAoZG93biB0aGVuIHVwKQotQ1JFQVRFIFZJRVcgcnByX2V2NDMgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9yZWFsX3ZzaGFwZSBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBy cHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyNTYsNyArMjI1Niw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChEKyBVKykKICAgICBERUZJTkUgRCBBUyB0cmVuZCA9ICdE JywgVSBBUyB0cmVuZCA9ICdVJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3ZzaGFwZScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoZCsgdSspIApAQCAtMjI4Niw3ICsyMjg2LDcgQEAgV0lO RE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVw LCBzdGFibGUsIGRvd24pCi1DUkVBVEUgVklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X3JlYWxfcGVhayBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX2Nv bXBsZXgKIFdJTkRPVyB3IEFTICgKQEAgLTIyOTUsNyArMjI5NSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChVKyBTKiBEKykKICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdVJywgUyBB UyB0cmVuZCA9ICdTJywgRCBBUyB0cmVuZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBsaW5lICAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKHUrIHMqIGQrKSAKQEAgLTIz MjUsNyArMjMyNSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZl IGluY3JlYXNpbmcgdmFsdWVzICh1c2luZyBQUkVWKQotQ1JFQVRFIFZJRVcgcnByX2V2NDUgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9yZWFsX2luY3JlYXNpbmcgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0yMzM0LDcgKzIzMzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0p CiAgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikgT1IgUFJFVih2KSBJUyBOVUxMCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY0NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3Jl YWxfaW5jcmVhc2luZycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK ICAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAo YXszLH0pIApAQCAtMjM2Nyw3ICsyMzY3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gUGVyZm9ybWFu Y2Utb3JpZW50ZWQgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTGFyZ2UgZGF0YXNldCB3aXRoIHNpbXBsZSBw YXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY0NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZf bGFyZ2Vfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzc2LDcgKzIzNzYsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgJSAy ID0gMSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9zaW1wbGUnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiKSAKQEAgLTI0MDYsNyArMjQwNiw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIExhcmdlIGRhdGFzZXQgd2l0aCBhYnNvcnB0aW9u Ci1DUkVBVEUgVklFVyBycHJfZXY0NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3BlcmZfbGFyZ2Vf YWJzb3JiIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMDAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNDE1LDcgKzI0MTUsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAwIDw+ IDAsIEIgQVMgdiAlIDEwMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGVyZl9sYXJnZV9hYnNvcmInKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0t LS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiKSAKQEAgLTI0NDUsNyArMjQ0NSw3IEBA IFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KLUNS RUFURSBWSUVXIHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdoX21lcmdl IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI0NTQsNyArMjQ1NCw3IEBAIFdJTkRPVyB3IEFT ICgKICAgICBQQVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwg QiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikr IGMpIApAQCAtMjQ4Nyw3ICsyNDg3LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gSU5JVElBTCB2cyBu byBJTklUSUFMIGNvbXBhcmlzb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQKLUNS RUFURSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRoIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQ5Nyw3ICsyNDk3LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUg NSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg UEFUVEVSTiAoYSsgYikgCkBAIC0yNTI4LDcgKzI1MjgsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSBy b3dzKQogCiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJyZW50 bHkpCi1DUkVBVEUgVklFVyBycHJfZXY1MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2luaXRpYWxf d2l0aG91dCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI1MzcsNyArMjUzNyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2luaXRpYWxfd2l0aG91dCcpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMjU3MCw3ICsyNTcwLDcgQEAgV0lORE9X IHcgQVMgKAogLS0gUXVhbnRpZmllciBWYXJpYXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFBsdXMgcXVhbnRp ZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2NTEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9w bHVzIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjU3OSw3ICsyNTc5LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIHYgJSA0IDw+IDAKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjUxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf cXVhbnRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgIGxpbmUgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSspIApAQCAt MjYwOSw3ICsyNjA5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gU3RhciBxdWFu dGlmaWVyICh6ZXJvIG9yIG1vcmUpCi1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X3F1YW50X3N0YXIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNjE4LDcgKzI2 MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJTkUgQSBB UyB2ICUgNCBJTiAoMSwgMiksIEIgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgbGluZSAgICAgICAg CiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKiBiKSAKQEAgLTI2NDgsNyArMjY0 OCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFF1ZXN0aW9uIG1hcmsgKHplcm8g b3Igb25lKQotQ1JFQVRFIFZJRVcgcnByX2V2NTMgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFu dF9xdWVzdGlvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2NTcsNyArMjY1Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBPyBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQg PSAxLCBCIEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUzJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfcXVlc3Rpb24n KSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYT8gYiBjKSAKQEAg LTI2ODcsNyArMjY4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIEV4YWN0IGNv dW50IHtufQotQ1JFQVRFIFZJRVcgcnByX2V2NTQgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9xdWFu dF9leGFjdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI2OTYsNyArMjY5Niw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBezN9IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjU0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVhbnRfZXhhY3QnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYXszfSBiKSAKQEAgLTI3MjYsNyArMjcyNiw3IEBAIFdJ TkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIFJhbmdlIHtuLG19Ci1DUkVBVEUgVklFVyBycHJf ZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3JhbmdlIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtMjczNSw3ICsyNzM1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEF7 Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog ICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRU RVJOIChhezIsNH0gYikgCkBAIC0yNzY1LDcgKzI3NjUsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOSBy b3dzKQogCiAtLSBBdCBsZWFzdCB7bix9Ci1DUkVBVEUgVklFVyBycHJfZXY1NiBBUworQ1JFQVRF IFZJRVcgcnByX2V2X3F1YW50X2F0bGVhc3QgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yNzc0 LDcgKzI3NzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszLH0gQikKICAgICBE RUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NicpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X2F0bGVh c3QnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICBs aW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhezMsfSBi KSAKQEAgLTI4MDgsNyArMjgwOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gVmVyaWZ5 IHN0YXRlIGNvdW50IGFjY3VyYWN5CiAtLSBQYXR0ZXJuIEErIEIgd2l0aCAyMCByb3dzIHNob3Vs ZCBzaG93IHByZWRpY3RhYmxlIHN0YXRlIGJlaGF2aW9yCi1DUkVBVEUgVklFVyBycHJfZXY1NyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19zdGF0ZV9jb3VudCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRPVyB3IEFT ICgKQEAgLTI4MTcsNyArMjgxNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1 NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlZ19z dGF0ZV9jb3VudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAg ICAgICBsaW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIp IApAQCAtMjg0Nyw3ICsyODQ3LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVmVy aWZ5IGNvbnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklFVyBycHJf ZXY1OCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtMjg1Niw3ICsyODU2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KEErIEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFT IHYgJSAxMCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAg IAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBiIGMpIApAQCAtMjg4Niw3 ICsyODg2LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVmVyaWZ5IG1hdGNoIGxl bmd0aCB3aXRoIGZpeGVkLWxlbmd0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY1OSBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTI4OTUsNyArMjg5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBIEIgQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2NTknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9yZWdfbWF0Y2hsZW4nKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgIGxpbmUgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRF Uk4gKGEgYiBjKSAKQEAgLTI5MjgsNyArMjkyOCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIEFsdGVy bmF0aW9uIFBhdHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2ltcGxlIGFsdGVybmF0aW9uCi1DUkVB VEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9zaW1wbGUgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBA IC0yOTM3LDcgKzI5MzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBD KQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0g J0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgbGluZSAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgUEFUVEVSTiAoKGEgfCBiKSBjKSAKQEAgLTI5NjcsNyArMjk2Nyw3IEBAIFdJTkRPVyB3 IEFTICgKICg5IHJvd3MpCiAKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9uCi1DUkVB VEUgVklFVyBycHJfZXY2MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9tdWx0aV9pdGVtIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMg KApAQCAtMjk3OCw3ICsyOTc4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBBIEFTIGNhdCA9 ICdBJywgQiBBUyBjYXQgPSAnQicsIEMgQVMgY2F0ID0gJ0MnLAogICAgICAgICBEIEFTIGNhdCA9 ICdEJywgRSBBUyBjYXQgPSAnRScKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X211bHRpX2l0ZW0nKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwg YiB8IGMgfCBkKSBlKSAKQEAgLTMwMTAsNyArMzAxMCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJv d3MpCiAKIC0tIEFsdGVybmF0aW9uIHdpdGggcXVhbnRpZmllcnMKLUNSRUFURSBWSUVXIHJwcl9l djYyIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X3dpdGhfcXVhbnQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0zMDE5LDcgKzMwMTksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgfCBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBD IEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NjInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfd2l0aF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYikrIGMpIApAQCAtMzA0OSw3ICsz MDQ5LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRp dmVzICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0 X2ZvdXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMDU3LDcgKzMwNTcsNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVGSU5F IEEgQVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAl IDUgPSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICAgICBsaW5lICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIHwg YiB8IGMgfCBkIHwgZSkgCkBAIC0zMDg1LDcgKzMwODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAoOCBy b3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBzdGFydAotQ1JFQVRFIFZJRVcgcnByX2V2NjQgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfc3RhcnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0zMDkzLDcgKzMwOTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSBD IEQpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUg NCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9hdF9zdGFydCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAgICAgCiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgfCBiKSBjIGQpIApAQCAt MzEyMiw3ICszMTIyLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUg c2VxdWVudGlhbCBhbHRlcm5hdGlvbnMKLUNSRUFURSBWSUVXIHJwcl9ldjY1IEFTCitDUkVBVEUg VklFVyBycHJfZXZfYWx0X3NlcXVlbnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzEz MCw3ICszMTMwLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgQyAoRCB8 IEUpIEYpCiAgICAgREVGSU5FIEEgQVMgdiAlIDYgPSAwLCBCIEFTIHYgJSA2ID0gMSwgQyBBUyB2 ICUgNiA9IDIsIEQgQVMgdiAlIDYgPSAzLCBFIEFTIHYgJSA2ID0gNCwgRiBBUyB2ICUgNiA9IDUK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjY1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfYWx0X3NlcXVlbnRpYWwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSB8IGIpIGMgKGQgfCBlKSBmKSAK QEAgLTMxNTgsNyArMzE1OCw3IEBAIFdJTkRPVyB3IEFTICgKICg4IHJvd3MpCiAKIC0tIFF1YW50 aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzE2Niw3ICsz MTY2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQogICAgIERF RklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICBQQVRURVJOICgoYSsgfCBiKykgYykgCkBAIC0zMTk1LDcgKzMxOTUsNyBAQCBXSU5ET1cg dyBBUyAoCiAoOSByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBlbmQKLUNSRUFURSBWSUVXIHJw cl9ldjY3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2F0X2VuZCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3 IEFTICgKQEAgLTMyMDMsNyArMzIwMyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChB IEIgKEMgfCBEKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBD IEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY3JyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X2VuZCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgbGluZSAgICAgICAg ICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSBiIChjIHwgZCkp IApAQCAtMzIzMyw3ICszMjMzLDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgQUxUIGF0 IHN0YXJ0IG9mIGJyYW5jaCBpbnNpZGUgb3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQSAoKEIgfCBD KSBEIHwgRSkpIC0gcHJlY2VkaW5nIFZBUiArIGlubmVyIEFMVCBhcyBmaXJzdCBicmFuY2ggZWxl bWVudAotQ1JFQVRFIFZJRVcgcnByX2V2NjggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9hbHRfbmVz dGVkX3N0YXJ0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAyMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzI0MSw3ICszMjQxLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKChCIHwgQykgRCB8IEUpKQogICAgIERFRklORSBB IEFTIHYgJSA1ID0gMCwgQiBBUyB2ICUgNSA9IDEsIEMgQVMgdiAlIDUgPSAyLCBEIEFTIHYgJSA1 ID0gMywgRSBBUyB2ICUgNSA9IDQKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9zdGFydCcpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICAgICAgbGluZSAgICAgICAg ICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoYSAo KGIgfCBjKSBkIHwgZSkpIApAQCAtMzI3MCw3ICszMjcwLDcgQEAgV0lORE9XIHcgQVMgKAogCiAt LSBOZXN0ZWQgQUxUIGF0IGVuZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVy bjogKEMgKEEgfCBCKSB8IEQpIC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBvdXRlciBi cmFuY2gKLUNSRUFURSBWSUVXIHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25l c3RlZF9lbmQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMjc4LDcgKzMyNzgsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUgQSBBUyB2 ICUgNCA9IDAsIEIgQVMgdiAlIDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjY5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfYWx0X25lc3RlZF9lbmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOIChjIChhIHwgYikgfCBkKSAKQEAgLTMzMDksNyArMzMwOSw3 IEBAIFdJTkRPVyB3IEFTICgKIC0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU2lt cGxlIGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXY3MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dy cF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzE4LDcgKzMzMTgsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0g MSwgQiBBUyB2ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjcwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgbGluZSAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSBiKSspIApAQCAtMzM0OCw3ICszMzQ4LDcgQEAgV0lO RE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZpZXIK LUNSRUFURSBWSUVXIHJwcl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzU3LDcgKzMzNTcsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIg QVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKGEgYil7Miw0fSkgCkBAIC0zMzg3LDcgKzMzODcs NyBAQCBXSU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBOZXN0ZWQgZ3JvdXBzCi1DUkVBVEUg VklFVyBycHJfZXY3MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9uZXN0ZWQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDYwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0zMzk2LDcgKzMzOTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKChBIEIpezJ9KSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAy ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2NzInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9ncnBfbmVzdGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICAgICBsaW5lICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICBQQVRURVJOICgoKGEgYil7Mn0pKykgCkBAIC0zNDI2LDcgKzM0MjYsNyBAQCBX SU5ET1cgdyBBUyAoCiAoOSByb3dzKQogCiAtLSBEZWVwIG5lc3RpbmcgKDMrIGxldmVscykKLUNS RUFURSBWSUVXIHJwcl9ldjczIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2RlZXAgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0zNDM0LDcgKzM0MzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoKCgoQSB8IEIpKykrKSspCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAwLCBCIEFT IHYgJSAyID0gMQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NzMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfZGVlcCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAoKCgoYSB8IGIpKykrKSspIApAQCAtMzQ2Myw3 ICszNDYzLDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gQm91bmRlZCBxdWFudGlm aWVyIG9uIGFsdGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY3NCBBUworQ1JFQVRFIFZJRVcg cnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM0NzEsNyAr MzQ3MSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpezIsM30gQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9ncnBfYm91bmRlZF9hbHQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CiAgICAgICAgICAgICBsaW5lICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKChhIHwgYil7MiwzfSBjKSAKQEAgLTM1MDAsNyArMzUw MCw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIE5lc3RlZCBncm91cHMgd2l0aCBx dWFudGlmaWVycwotQ1JFQVRFIFZJRVcgcnByX2V2NzUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9n cnBfbmVzdGVkX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzUwOCw3ICszNTA4LDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKCgoQSBCKSsgQykqKQogICAgIERFRklORSBB IEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3 NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9u ZXN0ZWRfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgICAgIGxpbmUgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKCgoYSBiKSsgYykqKSAKQEAgLTM1MzcsNyArMzUzNyw3IEBAIFdJTkRPVyB3IEFT ICgKICg5IHJvd3MpCiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1YW50aWZpY2F0aW9uCi1DUkVBVEUg VklFVyBycHJfZXY3NiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9wYXJ0aWFsX3F1YW50IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMzU0NSw3ICszNTQ1LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKChBIChCIEMpKykqKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBB UyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9wYXJ0aWFsX3F1YW50JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogICAgICAgICAgICBsaW5lICAg ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOICgoYSAoYiBj KSspKikgCkBAIC0zNTc3LDcgKzM1NzcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBXaW5kb3cgRnVu Y3Rpb24gQ29tYmluYXRpb25zCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIGNvdW50KCopIHdpdGggcGF0dGVybgotQ1JF QVRFIFZJRVcgcnByX2V2NzcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl93Zm5fY291bnQgQVMKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0zNTg2LDcgKzM1ODYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2NzcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl93Zm5fY291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM2MTYsNyArMzYxNiw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAK IC0tIGZpcnN0X3ZhbHVlIHdpdGggcGF0dGVybgotQ1JFQVRFIFZJRVcgcnByX2V2NzggQVMKK0NS RUFURSBWSUVXIHJwcl9ldl93Zm5fZmlyc3RfdmFsdWUgQVMKIFNFTEVDVCBmaXJzdF92YWx1ZSh2 KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBB UyAoCkBAIC0zNjI1LDcgKzM2MjUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 NzgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5f Zmlyc3RfdmFsdWUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiAg ICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhKyBi KSAKQEAgLTM2NTUsNyArMzY1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0tIGxh c3RfdmFsdWUgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X3dmbl9sYXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0z NjY0LDcgKzM2NjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBE RUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzknKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1 ZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBsaW5l ICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAtMzY5 NCw3ICszNjk0LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gTXVsdGlwbGUgd2lu ZG93IGZ1bmN0aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODAgQVMKK0NSRUFURSBWSUVXIHJwcl9l dl93Zm5fbXVsdGkgQVMKIFNFTEVDVAogICAgIGNvdW50KCopIE9WRVIgdywKICAgICBmaXJzdF92 YWx1ZSh2KSBPVkVSIHcsCkBAIC0zNzA2LDcgKzM3MDYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2ODAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl93Zm5fbXVsdGknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM3NDIsNyArMzc0Miw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIERFRklORSBF eHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQ29tcGxleCBib29sZWFuIGV4cHJlc3Np b25zCi1DUkVBVEUgVklFVyBycHJfZXY4MSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9jb21w bGV4X2Jvb2wgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zNzUzLDcgKzM3NTMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIEEgQVMgKHYgJSA1IDw+IDApIEFORCAodiAlIDMgPD4gMCksCiAg ICAgICAgIEIgQVMgKHYgJSA1ID0gMCkgT1IgKHYgJSAzID0gMCkKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjgxJyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZGVmX2NvbXBsZXhf Ym9vbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICBs aW5lICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFBBVFRFUk4gKGErIGIpIApAQCAt Mzc4NSw3ICszNzg1LDcgQEAgV0lORE9XIHcgQVMgKAogKDkgcm93cykKIAogLS0gVXNpbmcgUFJF ViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9k ZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM3OTcsNyArMzc5Nyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2IDwgUFJF Vih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKICAgICAgICAgIGxpbmUgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKHMgdSsgZCspIApAQCAtMzgyOSw3ICszODI5LDcgQEAgV0lORE9XIHcgQVMgKAog KDggcm93cykKIAogLS0gVXNpbmcgTlVMTCBjb21wYXJpc29ucwotQ1JFQVRFIFZJRVcgcnByX2V2 ODMgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfbnVsbCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSAoCiAgICAgU0VMRUNUIENBU0UgV0hFTiB2ICUgNSA9IDAgVEhFTiBOVUxMIEVM U0UgdiBFTkQgQVMgdgpAQCAtMzg0MSw3ICszODQxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBB VFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiBJUyBOT1QgTlVMTCwgQiBBUyB2IElTIE5V TEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjgzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfZGVmX251bGwnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJO IChhKyBiKSAKQEAgLTM4NzcsNyArMzg3Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIExhcmdlIFNj YWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIDUwMCByb3dzIC0gdmVyaWZ5 IHN0YXRpc3RpY3Mgc2NhbGUgY29ycmVjdGx5Ci1DUkVBVEUgVklFVyBycHJfZXY4NCBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3NjYWxlXzUwMHJvd3MgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzg4Niw3ICszODg2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIgQykKICAg ICBERUZJTkUgQSBBUyB2ICUgMTAgPCA3LCBCIEFTIHYgJSAxMCA9IDcsIEMgQVMgdiAlIDEwID0g OAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2ODQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9zY2FsZV81MDByb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogICAgICAgICBsaW5lICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg IFBBVFRFUk4gKGErIGIgYykgCkBAIC0zOTE2LDcgKzM5MTYsNyBAQCBXSU5ET1cgdyBBUyAoCiAo OSByb3dzKQogCiAtLSBIaWdoIG1hdGNoIGNvdW50IHNjZW5hcmlvCi1DUkVBVEUgVklFVyBycHJf ZXY4NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2ggQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMzkyNSw3ICszOTI1LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXY4NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3NjYWxlX2hpZ2hfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiAgICAgICAgbGluZSAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgUEFUVEVSTiAo YSBiKSAKQEAgLTM5NTUsNyArMzk1NSw3IEBAIFdJTkRPVyB3IEFTICgKICg5IHJvd3MpCiAKIC0t IEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzk2OSw3ICszOTY5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAxMDAgPSA0 LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfc2tpcCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKICAgICAgICAgICBsaW5lICAgICAg ICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBQQVRURVJOIChhIGIgYyBkIGUpIApA QCAtNDAxMywxNyArNDAxMywxNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBUZXN0IHdpdGggcm93X251 bWJlcigpIGFzIHJlcHJlc2VudGF0aXZlIGNhc2UuCiAtLQogLS0gV2l0aG91dCBSUFI6IHJvd19u dW1iZXIoKSBmcmFtZSBpcyBvcHRpbWl6ZWQgdG8gUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5HCi1D UkVBVEUgVklFVyBycHJfZXY4NyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X29wdF9ub19ycHIgQVMK IFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKAogICAgIE9SREVSIEJZIHYKICAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICk7Ci1FWFBMQUlOIChDT1NUUyBP RkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODc7CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcnByX2V2X29wdF9ub19ycHI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZ IFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9u IHJwcl9ldjg3CisgU3VicXVlcnkgU2NhbiBvbiBycHJfZXZfb3B0X25vX3JwcgogICAgLT4gIFdp bmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5E RUQgUFJFQ0VESU5HKQogICAgICAgICAgLT4gIFNvcnQKQEAgLTQwMzIsNyArNDAzMiw3IEBAIEVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKICg2IHJvd3MpCiAKIC0t IFdpdGggUlBSOiBmcmFtZSBtdXN0IHJlbWFpbiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKLUNSRUFURSBWSUVXIHJwcl9ldjg4IEFTCitDUkVBVEUgVklF VyBycHJfZXZfb3B0X3dpdGhfcnByIEFTCiBTRUxFQ1Qgcm93X251bWJlcigpIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTQwNDMs MTAgKzQwNDMsMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIERFRklORQogICAgICAgICBCIEFTIHYg PiBQUkVWKHYpCiApOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldjg4 OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfd2l0aF9ycHI7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldjg4CisgU3VicXVlcnkgU2NhbiBvbiBycHJf ZXZfb3B0X3dpdGhfcnByCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCkBAIC00MDU5LDcgKzQwNTksNyBAQCBFWFBM QUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gcnByX2V2ODg7CiAtLSBQbGFubmVyIG9wdGlt aXphdGlvbjogbm9uLVJQUiBhbmQgUlBSIHdpbmRvd3MgdGhhdCBzaGFyZSB0aGUgc2FtZSBiYXNl IGZyYW1lCiAtLSBhZnRlciBmcmFtZSBvcHRpbWl6YXRpb24gYXJlIGtlcHQgYXMgc2VwYXJhdGUg V2luZG93QWdnIG5vZGVzLgogLS0KLUNSRUFURSBWSUVXIHJwcl9ldjg5IEFTCitDUkVBVEUgVklF VyBycHJfZXZfb3B0X21peGVkIEFTCiBTRUxFQ1QKICAgICByb3dfbnVtYmVyKCkgT1ZFUiB3X25v cm1hbCBBUyBybl9ub3JtYWwsCiAgICAgcm93X251bWJlcigpIE9WRVIgd19ycHIgQVMgcm5fcnBy CkBAIC00MDcyLDEwICs0MDcyLDEwIEBAIFdJTkRPVwogICAgICAgICBQQVRURVJOIChBKykKICAg ICAgICAgREVGSU5FIEEgQVMgdiA+IDEKICAgICApOwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgKiBGUk9NIHJwcl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldl9vcHRfbWl4ZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIFN1YnF1ZXJ5IFNjYW4gb24gcnByX2V2ODkK KyBTdWJxdWVyeSBTY2FuIG9uIHJwcl9ldl9vcHRfbWl4ZWQKICAgIC0+ICBXaW5kb3dBZ2cKICAg ICAgICAgIFdpbmRvdzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAppbmRleCAyMzdmMDM2NjYzMS4uNjVhNzc1ZmRh ZDkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfZXhwbGFpbi5zcWwKQEAgLTExOCw3ICsxMTgsNyBA QCBWQUxVRVMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogCiAtLSBTaW1wbGUgcGF0dGVybiAtIHNob3VsZCBzaG93IGJhc2lj IHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjAxIEFTCitDUkVBVEUgVklFVyBycHJfZXZf YmFzaWNfc2ltcGxlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVz dAogV0lORE9XIHcgQVMgKApAQCAtMTI3LDcgKzEyNyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJwog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9iYXNpY19zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTQwLDcgKzE0MCw3IEBAIFdJTkRPVyB3IEFTICgKICknKTsKIAogLS0g UGF0dGVybiB3aXRoIG5vIG1hdGNoZXMgLSAwIG1hdGNoZWQKLUNSRUFURSBWSUVXIHJwcl9ldjAy IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYmFzaWNfbm9tYXRjaCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTE0OSw3ICsxNDks NyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoWCBZIFopCiAgICAgREVGSU5FIFggQVMg Y2F0ID0gJ1gnLCBZIEFTIGNhdCA9ICdZJywgWiBBUyBjYXQgPSAnWicKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjAyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYmFzaWNfbm9t YXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0xNjIsNyArMTYyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gUGF0dGVybiBtYXRj aGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50Ci1DUkVBVEUgVklFVyBycHJfZXYwMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX2FsbHJvd3MgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xNzEsNyArMTcxLDcg QEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKFIpCiAgICAgREVGSU5FIFIgQVMgVFJVRQog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2MDMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9iYXNpY19hbGxyb3dzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTE4NSw3ICsxODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFJlZ3Jl c3Npb24gdGVzdDogU3BhY2UgYmVmb3JlIHBhcmVudGhlc2lzIGluIHBhdHRlcm4gZGVwYXJzZQog LS0gVmVyaWZpZXMgdGhhdCAiQSAoQiB8IEMpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiYSAoYiB8 IGMpIiB3aXRoIHNwYWNlCi1DUkVBVEUgVklFVyBycHJfZXYwNCBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2Jhc2ljX2RlcGFyc2Vfc3BhY2UgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xOTMsNyAr MTkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgKEIgfCBDKSkKICAgICBERUZJ TkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2MDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9i YXNpY19kZXBhcnNlX3NwYWNlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTIwNyw3ICsyMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBSZWdyZXNz aW9uIHRlc3Q6IFNlcXVlbnRpYWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKIC0tIFZlcmlm aWVzIHRoYXQgIigoQiB8IEMpIChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIgfCBj KSAoZCB8IGUpIgogLS0gUHJldmlvdXNseSBmYWlsZWQgZHVlIHRvIG1pc3NpbmcgcGFyZW50aGVz ZXMgb24gQUxUIGRlcHRoIGRlY3JlYXNlCi1DUkVBVEUgVklFVyBycHJfZXYwNSBBUworQ1JFQVRF IFZJRVcgcnByX2V2X2Jhc2ljX2RlcGFyc2Vfc2VxYWx0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApA QCAtMjE1LDcgKzIxNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8IEMp IChEIHwgRSkpKikKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDEsIEIgQVMgdiAlIDUgPSAyLCBD IEFTIHYgJSA1ID0gMywgRCBBUyB2ICUgNSA9IDQsIEUgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYw NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Jhc2lj X2RlcGFyc2Vfc2VxYWx0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTIzMSw3ICsyMzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g U2ltcGxlIHF1YW50aWZpZXIgcGF0dGVybiAtIEErIHdpdGggc2hvcnQgbWF0Y2hlcyAobm8gbWVy Z2luZykKLUNSRUFURSBWSUVXIHJwcl9ldjA2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVf c2ltcGxlX3F1YW50IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjQwLDcgKzI0MCw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjA2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfc3RhdGVfc2ltcGxlX3F1YW50JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpF LCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKQEAgLTI1Myw3ICsyNTMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycp OwogCiAtLSBBbHRlcm5hdGlvbiBwYXR0ZXJuIC0gbXVsdGlwbGUgc3RhdGUgYnJhbmNoZXMKLUNS RUFURSBWSUVXIHJwcl9ldjA3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0IEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIHJwcl9uZmFfdGVzdAogV0lORE9XIHcgQVMgKApA QCAtMjY0LDcgKzI2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyBjYXQgPSAnQScs IEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJywKICAgICAgICAgRCBBUyBjYXQgPSAnRCcs IEUgQVMgY2F0ID0gJ0UnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYwNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAo QU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYp CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yNzksNyArMjc5LDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gQ29tcGxleCBwYXR0ZXJuIHdpdGggaGlnaCBzdGF0ZSBjb3VudAotQ1JF QVRFIFZJRVcgcnByX2V2MDggQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21wbGV4IEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTI5MSw3ICsyOTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEIgQVMgdiAlIDMgPSAyLAogICAgICAgICBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 MDgnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0 ZV9jb21wbGV4JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VM RUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwg Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKQEAgLTMwNyw3ICszMDcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBHcm91cGVk IHBhdHRlcm4gd2l0aCBxdWFudGlmaWVyIC0gc3RhdGUgY291bnQgd2l0aCBncm91cGluZwotQ1JF QVRFIFZJRVcgcnByX2V2MDkgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9ncm91cF9xdWFu dCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjAp IEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTMxNiw3ICszMTYsNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoKEEgQikrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMSwgQiBBUyB2 ICUgMiA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldjA5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzMwLDcgKzMzMCw3IEBAIFdJTkRPVyB3IEFT ICgKIAogLS0gU3RhdGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFsdGVybmF0aW9ucwogLS0g UGF0dGVybiAoQXxCKShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxsZWwgc3Rh dGVzCi1DUkVBVEUgVklFVyBycHJfZXYxMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2V4 cGxvc2lvbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0zMzksNyArMzM5LDcgQEAgV0lORE9X IHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEg fCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEs IEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2V4cGxvc2lvbicpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQ TEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFS WSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0zNTMsNyArMzUzLDcgQEAgV0lORE9X IHcgQVMgKAogCiAtLSBDb25zZWN1dGl2ZSBBTFQgbWVyZ2UgZm9sbG93ZWQgYnkgZGlmZmVyZW50 IEFMVAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24gQUxUIGNoYW5nZTog KEF8Qil7Mn0gKEN8RCkKLUNSRUFURSBWSUVXIHJwcl9ldjExIEFTCitDUkVBVEUgVklFVyBycHJf ZXZfc3RhdGVfYWx0X21lcmdlX2FsdCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTM2Miw3ICsz NjIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKEEgfCBCKSAoQSB8IEIpIChDIHwg RCkpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAwLCBCIEFTIHYgJSA0ID0gMSwgQyBBUyB2ICUg NCA9IDIsIEQgQVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9tZXJnZV9hbHQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMzc2LDcgKzM3Niw3 IEBAIFdJTkRPVyB3IEFTICgKIAogLS0gQ29uc2VjdXRpdmUgQUxUIG1lcmdlIGZvbGxvd2VkIGJ5 IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2ZUFsdHMgZmx1c2ggb24g bm9uLUFMVDogKEF8Qil7Mn0gYwotQ1JFQVRFIFZJRVcgcnByX2V2MTIgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAt Mzg1LDcgKzM4NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIChBIHwg QikgQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYg JSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2MTInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfbWVyZ2Vfbm9uYWx0JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTM5OCw3ICszOTgsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBBTFQgcHJlZml4L3N1ZmZpeCBhYnNvcmJlZCBpbnRvIEdST1VQ OiAoQXxCKSAoQXxCKSsgKEF8QikgLT4gKEF8Qil7Myx9Ci1DUkVBVEUgVklFVyBycHJfZXYxMyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAgQVMKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5E T1cgdyBBUyAoCkBAIC00MDcsNyArNDA3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4g KChBIHwgQikgKEEgfCBCKSsgKEEgfCBCKSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDAsIEIg QVMgdiAlIDIgPSAxCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNDIwLDcgKzQyMCw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgY291bnQgLSBhbHRlcm5hdGlvbiB3 aXRoIHBsdXMgcXVhbnRpZmllcgotQ1JFQVRFIFZJRVcgcnByX2V2MTQgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9zdGF0ZV9hbHRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC00MjksNyAr NDI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQiB8IEMpKyBEKQogICAg IERFRklORSBBIEFTIHYgJSA0ID0gMSwgQiBBUyB2ICUgNCA9IDIsIEMgQVMgdiAlIDQgPSAzLCBE IEFTIHYgJSA0ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2MTQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9zdGF0ZV9hbHRfcGx1cycpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC00NDMsNyArNDQzLDcgQEAgV0lORE9XIHcg QVMgKAogCiAtLSBFYXJseSB0ZXJtaW5hdGlvbjogZmlyc3QgQUxUIGJyYW5jaCAoQSkgcmVhY2hl cyBGSU4gaW1tZWRpYXRlbHksCiAtLSBwcnVuaW5nIHNlY29uZCBicmFuY2ggKEEgQispIGJlZm9y ZSBpdCBjYW4gYWNjdW11bGF0ZSBCIHJlcGV0aXRpb25zLgotQ1JFQVRFIFZJRVcgcnByX2V2MTUg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9hbHRfcHJ1bmUgQVMKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtNDUyLDcgKzQ1Miw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8 IEEgQikrKQogICAgIERFRklORSBBIEFTIHYgPSAxLCBCIEFTIHYgPiAxCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3N0YXRlX2Fs dF9wcnVuZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC00NjUsNyArNDY1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVzdGVkIHF1 YW50aWZpZXJzIGNhdXNpbmcgc3RhdGUgZ3Jvd3RoCi1DUkVBVEUgVklFVyBycHJfZXYxNiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX25lc3RlZF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCop IE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgcyh2KQogV0lORE9XIHcg QVMgKApAQCAtNDc0LDcgKzQ3NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEg fCBCKSspKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEsIEIgQVMgdiAlIDMgPSAyCiApOwot U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXYxNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVD VCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2 X3N0YXRlX25lc3RlZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC00OTEsNyArNDkxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK IC0tIENvbnRleHQgYWJzb3JwdGlvbiB3aXRoIHVuYm91bmRlZCBxdWFudGlmaWVyIGF0IHN0YXJ0 Ci1DUkVBVEUgVklFVyBycHJfZXYxNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJf dW5ib3VuZGVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTAwLDcgKzUwMCw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTUxMyw3ICs1MTMsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBObyBhYnNvcnB0aW9uIC0gYm91bmRlZCBxdWFudGlm aWVyCi1DUkVBVEUgVklFVyBycHJfZXYxOCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19h YnNvcmIgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC01MjIsNyArNTIyLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYxOCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2N0eF9ub19hYnNvcmInKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTM1LDcgKzUzNSw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIENvbnRleHRzIHNraXBwZWQgYnkgU0tJUCBQQVNUIExBU1QgUk9X Ci1DUkVBVEUgVklFVyBycHJfZXYxOSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9za2lwIEFT CiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTU0NCw3ICs1NDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgUEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwID0gMSwgQiBBUyB2ICUg MTAgPSAyLCBDIEFTIHYgJSAxMCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjE5JyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X3NraXAnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVY UExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1B UlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNTU3LDcgKzU1Nyw3IEBAIFdJTkRP VyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggY29udGV4dCBhYnNvcnB0aW9uIC0gdW5ib3VuZGVk IGdyb3VwCi1DUkVBVEUgVklFVyBycHJfZXYyMCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9h YnNvcmJfZ3JvdXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtNTY2LDcgKzU2Niw3IEBAIFdJ TkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUg MyA9IDEsIEIgQVMgdiAlIDMgPSAyLCBDIEFTIHYgJSAzID0gMAogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjAnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2dy b3VwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTU4MSw3ICs1ODEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJz b3JwdGlvbjogKEEgQiBCKSsgQwogLS0gQiBCIG1lcmdlZCB0byBCezJ9OyBhYnNvcmJhYmxlIHdp dGggZml4ZWQtbGVuZ3RoIGNoZWNrCiAtLSBzdGVwX3NpemU9MyAoQSArIEIgKyBCKTsgdiAlIDcg Y3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zIHBlciBtYXRjaAotQ1JFQVRFIFZJRVcgcnByX2V2MjBi IEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9maXhlZHZhciBBUwogU0VMRUNUIGNv dW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNzApIEFTIHModikKIFdJTkRP VyB3IEFTICgKQEAgLTU5MCw3ICs1OTAsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgQiBCKSsgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNyBJTiAoMSwgNCksIEIgQVMgdiAlIDcg SU4gKDIsIDMsIDUsIDYpLCBDIEFTIHYgJSA3ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjBiJyksIEUnXG4nKSkg QVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9maXhlZHZh cicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC02 MDQsNyArNjA0LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgZml4ZWQtbGVuZ3RoIGdy b3VwIGFic29ycHRpb246IChBIChCIEMpezJ9IEQpKyBFCiAtLSBzdGVwX3NpemUgPSAxICsgKDEr MSkqMiArIDEgPSA2OyB2ICUgMTMgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zICsgRQotQ1JFQVRF IFZJRVcgcnByX2V2MjBjIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9uZXN0ZWQg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDY1KSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02MTUsNyArNjE1LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgICAgICAgICBDIEFTIHYgJSAxMyBJTiAoMywgNSwgOSwgMTEpLCBEIEFTIHYgJSAxMyBJTiAo NiwgMTIpLAogICAgICAgICAgICBFIEFTIHYgJSAxMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjIwYycpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5u ZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2N0eF9hYnNvcmJfbmVz dGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJw cl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMg T0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAg LTYzMSw3ICs2MzEsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIERvdWJseSBuZXN0ZWQgZml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBICgoQiBDezN9KXsyfSBEKXsyfSBFKSsgRgogLS0g c3RlcF9zaXplID0gMSArICgoMSszKSoyKzEpKjIgKyAxID0gMjA7IHYgJSA0MSBjeWNsZSBnaXZl cyAyIGl0ZXJhdGlvbnMgKyBGCi1DUkVBVEUgVklFVyBycHJfZXYyMGQgQVMKK0NSRUFURSBWSUVX IHJwcl9ldl9jdHhfYWJzb3JiX2RlZXAgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDgyKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC02NDYsNyAr NjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBFIEFTIHYgJSA0MSBJTiAoMjAsIDQw KSwKICAgICAgICAgICAgRiBBUyB2ICUgNDEgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyMGQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jdHhfYWJzb3JiX2RlZXAnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxh aW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJ TUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNjY3LDcg KzY2Nyw3IEBAIFdJTkRPVyB3IEFTICgKIC0tIDMtbGV2ZWwgRU5EIGNoYWluIGFic29ycHRpb246 ICgoQSAoQiBDKXsyfSl7Mn0pKwogLS0gc3RlcF9zaXplID0gKDEgKyAoMSsxKSoyKSAqIDIgPSAx MDsgdiAlIDIxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucwogLS0gRU5EIGNoYWluOiBFTkQoQkN7 Mn0pIC0+IEVORChBLi57Mn0pIC0+IEVORCgrLCBBQlNPUkJBQkxFKQotQ1JFQVRFIFZJRVcgcnBy X2V2MjBlIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3R4X2Fic29yYl9lbmRjaGFpbiBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDIpIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTY3OCw3ICs2NzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg ICAgIEIgQVMgdiAlIDIxIElOICgyLCA0LCA3LCA5LCAxMiwgMTQsIDE3LCAxOSksCiAgICAgICAg ICAgIEMgQVMgdiAlIDIxIElOICgzLCA1LCA4LCAxMCwgMTMsIDE1LCAxOCwgMjApCiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXYyMGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9j dHhfYWJzb3JiX2VuZGNoYWluJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTY5Nyw3ICs2OTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAog LS0gRml4ZWQgbGVuZ3RoIG1hdGNoZXMgLSBhbGwgc2FtZSBsZW5ndGgKLUNSRUFURSBWSUVXIHJw cl9ldjIxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfbWxlbl9maXhlZCBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX3Rlc3QKIFdJTkRPVyB3IEFTICgKQEAgLTcwOCw3ICs3 MDgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9 ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2MjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9tbGVuX2ZpeGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTcyMyw3ICs3MjMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwog CiAtLSBWYXJpYWJsZSBsZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgotQ1JFQVRF IFZJRVcgcnByX2V2MjIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3ZhcmlhYmxlIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDApIEFTIHMo dikKIFdJTkRPVyB3IEFTICgKQEAgLTczMiw3ICs3MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgPD4gMCwgQiBBUyB2ICUgMTAg PSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXYyMicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJO JzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2X21sZW5fdmFyaWFibGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtNzQ1LDcgKzc0NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIFZlcnkgbG9uZyBtYXRjaGVzCi1DUkVBVEUgVklFVyBycHJfZXYyMyBBUworQ1JFQVRF IFZJRVcgcnByX2V2X21sZW5fbG9uZyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwgMjAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC03NTQsNyAr NzU0LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEg QVMgdiA8PSAxOTUsIEIgQVMgdiA+IDE5NQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjMnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX2xvbmcnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtNzY3LDcgKzc2Nyw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFVuaWZvcm0gbWF0Y2ggbGVuZ3RoIHdpdGggbWlzbWF0 Y2hlcyBmcm9tIGdhcCByb3dzICh2JTIwID0gMTEuLjE1KQotQ1JFQVRFIFZJRVcgcnByX2V2MjQg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2ggQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMgcyh2KQogV0lORE9X IHcgQVMgKApAQCAtNzc4LDcgKzc3OCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICAgICAgQSBBUyAo diAlIDIwIDw+IDApIEFORCAodiAlIDIwIDw9IDEwIE9SIHYgJSAyMCA+IDE1KSwKICAgICAgICAg QiBBUyB2ICUgMjAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X21sZW5fd2l0aF9taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC03OTgsNyArNzk4LDcgQEAgV0lO RE9XIHcgQVMgKAogCiAtLSBQYXR0ZXJuIHdpdGggY29tcGxldGUgbWF0Y2ggZXZlcnkgY3ljbGU6 IDAgbWlzbWF0Y2hlZAogLS0gQSgxLDIsMykgQig0LDUpIEMoNikgcmVwZWF0cyBwZXJmZWN0bHk7 IFggcm93cyBhcmUgcHJ1bmVkLCBub3QgbWlzbWF0Y2hlZAotQ1JFQVRFIFZJRVcgcnByX2V2MjUg QVMKK0NSRUFURSBWSUVXIHJwcl9ldl9tbGVuX25vX21pc21hdGNoIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgdiwKQEAgLTgxNCw3ICs4MTQsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQisgQykKICAgICBERUZJTkUgQSBBUyBjYXQgPSAn QScsIEIgQVMgY2F0ID0gJ0InLCBDIEFTIGNhdCA9ICdDJwogKTsKLVNFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjUnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9tbGVuX25vX21pc21hdGNo JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTgz NCw3ICs4MzQsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBMb25nIHBhcnRpYWwgbWF0 Y2hlcyB0aGF0IGZhaWwKLUNSRUFURSBWSUVXIHJwcl9ldjI2IEFTCitDUkVBVEUgVklFVyBycHJf ZXZfbWxlbl9sb25nX3BhcnRpYWwgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gKAog ICAgIFNFTEVDVCBpIEFTIHYsCkBAIC04NTUsNyArODU1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIrIEMpCiAgICAgREVGSU5FIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9 ICdCJywgQyBBUyBjYXQgPSAnQycKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjI2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbWxlbl9sb25nX3BhcnRpYWwnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtODg0LDcgKzg4NCw3IEBA IFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBKU09OIGZvcm1hdCBvdXRwdXQgd2l0aCBhbGwg c3RhdGlzdGljcwotQ1JFQVRFIFZJRVcgcnByX2V2MjcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9q c29uX2Jhc2ljIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtODkzLDcgKzg5Myw3IEBAIFdJTkRP VyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDEs IEIgQVMgdiAlIDMgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYyNycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X2pzb25fYmFzaWMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG LCBGT1JNQVQgSlNPTikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTkwNiw3ICs5MDYsNyBA QCBXSU5ET1cgdyBBUyAoCiApJyk7CiAKIC0tIEpTT04gZm9ybWF0IHdpdGggbWF0Y2ggbGVuZ3Ro IHN0YXRpc3RpY3MKLUNSRUFURSBWSUVXIHJwcl9ldjI4IEFTCitDUkVBVEUgVklFVyBycHJfZXZf anNvbl9tYXRjaGxlbiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05MTUsNyArOTE1LDcgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEw IDw+IDAsIEIgQVMgdiAlIDEwID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MjgnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9qc29uX21hdGNobGVuJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcign CiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBT VU1NQVJZIE9GRiwgRk9STUFUIEpTT04pCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC05Mjks NyArOTI5LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBKU09OIGZvcm1hdCB3aXRoIG1pc21hdGNo IHN0YXRpc3RpY3MKIC0tIFBhdHRlcm4gQSBCIEMgZXhwZWN0cyAxLDIsMyBidXQgZ2V0cyAxLDIs NCB0d2ljZSBjYXVzaW5nIG1pc21hdGNoZXMKLUNSRUFURSBWSUVXIHJwcl9ldjI5IEFTCitDUkVB VEUgVklFVyBycHJfZXZfanNvbl9taXNtYXRjaCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSAoVkFMVUVTICgxKSwoMiksKDQpLCAoMSksKDIpLCg0KSwgKDEpLCgyKSwoMykpIEFTIHQo dikKIFdJTkRPVyB3IEFTICgKQEAgLTkzOCw3ICs5MzgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSBCIEMpCiAgICAgREVGSU5FIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMg diA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldjI5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3 ZGVmKCdycHJfZXZfanNvbl9taXNtYXRjaCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1B VCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtOTUyLDcgKzk1Miw3IEBAIFdJTkRP VyB3IEFTICgKIAogLS0gSlNPTiBmb3JtYXQgd2l0aCBza2lwcGVkIGNvbnRleHQgc3RhdGlzdGlj cwogLS0gQWx0ZXJuYXRpb24gcGF0dGVybiB3aXRoIFNLSVAgUEFTVCBMQVNUIFJPVyBjYXVzZXMg bWFueSBjb250ZXh0cyB0byBiZSBza2lwcGVkCi1DUkVBVEUgVklFVyBycHJfZXYzMCBBUworQ1JF QVRFIFZJRVcgcnByX2V2X2pzb25fc2tpcCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05NjEs NyArOTYxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBIHwgQikgKEEgfCBCKSAo QSB8IEIpIChBIHwgQikgKEEgfCBCKSAoQSB8IEIpIChBIHwgQikgKEEgfCBCKSkKICAgICBERUZJ TkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzMCcpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2pzb25fc2tpcCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9m aWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5H IE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1BVCBKU09OKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtOTc4LDcgKzk3OCw3IEBAIFdJTkRPVyB3IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCiAtLSBYTUwgZm9ybWF0 IG91dHB1dAotQ1JFQVRFIFZJRVcgcnByX2V2MzEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl94bWxf YmFzaWMgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC05ODcsNyArOTg3LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEEgQikKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMg diAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXYzMScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X3htbF9iYXNpYycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYsIEZPUk1B VCBYTUwpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMDA0LDcgKzEwMDQsNyBAQCBXSU5E T1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIAogLS0gU3RhdGlzdGljcyBhY3Jvc3MgbXVsdGlwbGUgcGFydGl0 aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2MzIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9wYXJ0X211 bHRpIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NICgKICAgICBTRUxFQ1QgcCwgdgpA QCAtMTAxOCw3ICsxMDE4LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjMyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcGFydF9tdWx0 aScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJf ZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9G RiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0x MDM2LDcgKzEwMzYsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBEaWZmZXJlbnQgcGF0 dGVybiBiZWhhdmlvciBwZXIgcGFydGl0aW9uCi1DUkVBVEUgVklFVyBycHJfZXYzMyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJP TSAoCiAgICAgU0VMRUNUCkBAIC0xMDUxLDcgKzEwNTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg UEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2YWwgPCA1LCBCIEFTIHZhbCA+PSA1CiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXYzMycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X3BhcnRfZGlmZicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsK IFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBP RkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CkBAIC0xMDc0LDcgKzEwNzQsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0g RW1wdHkgcmVzdWx0IHNldAotQ1JFQVRFIFZJRVcgcnByX2V2MzQgQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9lZGdlX2VtcHR5IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRl X3NlcmllcygxLCAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDgzLDcgKzEwODMsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSBCKQogICAgIERFRklORSBBIEFTIHYgPSAx LCBCIEFTIHYgPSAyCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X2VkZ2VfZW1wdHknKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gU2luZ2xlIHJvdwotQ1JFQVRFIFZJRVcgcnByX2V2MzUgQVMKK0NSRUFU RSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEx MDUsNyArMTEwNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklO RSBBIEFTIFRSVUUKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjM1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfZWRnZV9zaW5nbGVfcm93JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTExMTgsNyArMTExOCw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIFBhdHRlcm4gbG9uZ2VyIHRoYW4gZGF0YQotQ1JFQVRFIFZJRVcg cnByX2V2MzYgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3BhdHRlcm5fbG9uZ2VyIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSBBUyBzKHYp CiBXSU5ET1cgdyBBUyAoCkBAIC0xMTI5LDcgKzExMjksNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAg ICAgIEEgQVMgdiA9IDEsIEIgQVMgdiA9IDIsIEMgQVMgdiA9IDMsIEQgQVMgdiA9IDQsIEUgQVMg diA9IDUsCiAgICAgICAgIEYgQVMgdiA9IDYsIEcgQVMgdiA9IDcsIEggQVMgdiA9IDgsIEkgQVMg diA9IDksIEogQVMgdiA9IDEwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYzNicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2VkZ2VfcGF0dGVybl9sb25nZXInKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTE0NCw3ICsxMTQ0LDcg QEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gQWxsIHJvd3MgbWF0Y2ggYXMgc2luZ2xlIG1h dGNoCi1DUkVBVEUgVklFVyBycHJfZXYzNyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2VkZ2Vfc2lu Z2xlX21hdGNoIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTE1Myw3ICsxMTUzLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIFRSVUUKICk7Ci1T RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldjM3JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZf ZWRnZV9zaW5nbGVfbWF0Y2gnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTE3MCw3ICsxMTcwLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAK IC0tIE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjM4IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfY3B4X25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTExNzksNyArMTE3OSw3 IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQikgQykrKQogICAgIERFRklORSBB IEFTIHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXYz OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2NweF9u ZXN0ZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTE5Miw3ICsxMTkyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUg YWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXYzOSBBUworQ1JFQVRFIFZJRVcgcnByX2V2 X2NweF9tdWx0aV9hbHQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90 ZXN0CiBXSU5ET1cgdyBBUyAoCkBAIC0xMjAzLDcgKzEyMDMsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIEEgQVMgY2F0ID0gJ0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAg ICAgICAgIEQgQVMgY2F0ID0gJ0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2MzknKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVu bmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfbXVsdGlfYWx0 JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9l eHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZG LCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEy MTgsNyArMTIxOCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE9wdGlvbmFsIGVsZW1l bnRzCi1DUkVBVEUgVklFVyBycHJfZXY0MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9vcHRp b25hbCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg NTApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEyMjcsNyArMTIyNyw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBIEI/IEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDQgPSAxLCBC IEFTIHYgJSA0ID0gMiwgQyBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQwJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3B4X29wdGlvbmFsJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEyNDAsNyArMTI0 MCw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEJvdW5kZWQgcXVhbnRpZmllcnMKLUNS RUFURSBWSUVXIHJwcl9ldjQxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfY3B4X2JvdW5kZWQgQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgQVMg cyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI0OSw3ICsxMjQ5LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEF7Miw1fSBCKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFT IHYgJSAxMCA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQxJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfY3B4X2JvdW5kZWQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTI2Miw3ICsxMjYyLDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyCi1DUkVBVEUgVklFVyBycHJfZXY0MiBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X2NweF9zdGFyIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTI3 MSw3ICsxMjcxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiogQykKICAgICBE RUZJTkUgQSBBUyB2ICUgMTAgPSAxLCBCIEFTIHYgJSAxMCBJTiAoMiwzLDQsNSw2LDcsOCksIEMg QVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NDInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9jcHhfc3RhcicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5B TFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMjg4LDcgKzEyODgsNyBAQCBXSU5ET1cgdyBBUyAo CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIFYtc2hhcGUgKGRvd24gdGhlbiB1 cCkKLUNSRUFURSBWSUVXIHJwcl9ldjQzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfcmVhbF92c2hh cGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV9jb21wbGV4CiBXSU5E T1cgdyBBUyAoCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVS TiAoRCsgVSspCiAgICAgREVGSU5FIEQgQVMgdHJlbmQgPSAnRCcsIFUgQVMgdHJlbmQgPSAnVScK ICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldjQzJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwor U0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdy cHJfZXZfcmVhbF92c2hhcGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZF UlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAog LS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUsIGRvd24pCi1DUkVBVEUg VklFVyBycHJfZXY0NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfcGVhayBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBycHJfbmZhX2NvbXBsZXgKIFdJTkRPVyB3IEFTICgKQEAg LTEzMTksNyArMTMxOSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChVKyBTKiBEKykK ICAgICBERUZJTkUgVSBBUyB0cmVuZCA9ICdVJywgUyBBUyB0cmVuZCA9ICdTJywgRCBBUyB0cmVu ZCA9ICdEJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2NDQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFU VEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9yZWFsX3BlYWsnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUs IEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNU IGNvdW50KCopIE9WRVIgdwpAQCAtMTMzMiw3ICsxMzMyLDcgQEAgV0lORE9XIHcgQVMgKAogKTsn KTsKIAogLS0gQ29uc2VjdXRpdmUgaW5jcmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYpCi1DUkVB VEUgVklFVyBycHJfZXY0NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3JlYWxfaW5jcmVhc2luZyBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFT IHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNDEsNyArMTM0MSw3IEBAIFdJTkRPVyB3IEFTICgK ICAgICBQQVRURVJOIChBezMsfSkKICAgICBERUZJTkUgQSBBUyB2ID4gUFJFVih2KSBPUiBQUkVW KHYpIElTIE5VTEwKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjQ1JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfcmVhbF9pbmNyZWFzaW5nJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTEzNTgsNyArMTM1OCw3IEBAIFdJTkRPVyB3 IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggc2ltcGxlIHBhdHRlcm4KLUNS RUFURSBWSUVXIHJwcl9ldjQ2IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9sYXJnZV9zaW1w bGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTEzNjcsNyArMTM2Nyw3IEBAIFdJTkRPVyB3 IEFTICgKICAgICBQQVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFT IHYgJSAyID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NDYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9wZXJmX2xhcmdlX3NpbXBsZScpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xMzgwLDcgKzEzODAsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBMYXJnZSBkYXRhc2V0IHdpdGggYWJzb3JwdGlvbgotQ1JFQVRF IFZJRVcgcnByX2V2NDcgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2xhcmdlX2Fic29yYiBB UwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTM4OSw3ICsxMzg5LDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDEwMCA8PiAwLCBCIEFT IHYgJSAxMDAgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0NycpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3BlcmZfbGFyZ2VfYWJzb3JiJyksIEUnXG4nKSkgQVMgbGluZSBX SEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0MDIsNyArMTQwMiw3IEBAIFdJTkRP VyB3IEFTICgKICk7Jyk7CiAKIC0tIEhpZ2ggc3RhdGUgbWVyZ2UgcmF0aW8KLUNSRUFURSBWSUVX IHJwcl9ldjQ4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcGVyZl9oaWdoX21lcmdlIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTE0MTEsNyArMTQxMSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIpKyBDKQogICAgIERFRklORSBBIEFTIHYgJSAzID0gMSwgQiBBUyB2ICUg MyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY0OCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19h cnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3BlcmZfaGlnaF9tZXJnZScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNDI4LDcgKzE0MjgsNyBA QCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gV2l0aCBJTklUSUFMIGtleXdvcmQKLUNSRUFU RSBWSUVXIHJwcl9ldjQ5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRoIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTQzOCw3ICsxNDM4LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9 IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldjQ5JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXZfaW5pdGlhbF93aXRoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTE0NTIsNyArMTQ1Miw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIFdpdGhvdXQgSU5JVElBTCBrZXl3b3JkIChzYW1lIGJlaGF2aW9yIGN1cnJlbnRseSkK LUNSRUFURSBWSUVXIHJwcl9ldjUwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRo b3V0IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTQ2MSw3ICsxNDYxLDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBB UyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjUwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfaW5pdGlhbF93aXRob3V0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIFdJTkRPVyB3 IEFTICgKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogCiAtLSBQbHVzIHF1YW50aWZpZXIKLUNSRUFURSBWSUVXIHJwcl9ldjUx IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNDApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE0ODcsNyArMTQ4Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKykKICAg ICBERUZJTkUgQSBBUyB2ICUgNCA8PiAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MScpLCBFJ1xuJykpIEFTIGxpbmUg V0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3BsdXMnKSwgRSdcbicpKSBBUyBs aW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcK IEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNV TU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUwMCw3ICsxNTAwLDcgQEAg V0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gU3RhciBxdWFudGlmaWVyICh6ZXJvIG9yIG1vcmUp Ci1DUkVBVEUgVklFVyBycHJfZXY1MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIg QVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNTA5LDcgKzE1MDksNyBAQCBXSU5ET1cgdyBBUyAo CiAgICAgUEFUVEVSTiAoQSogQikKICAgICBERUZJTkUgQSBBUyB2ICUgNCBJTiAoMSwgMiksIEIg QVMgdiAlIDQgPSAzCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3F1YW50X3N0YXInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxp bmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFO QUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQog U0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTUyMiw3ICsxNTIyLDcgQEAgV0lORE9XIHcgQVMg KAogKTsnKTsKIAogLS0gUXVlc3Rpb24gbWFyayAoemVybyBvciBvbmUpCi1DUkVBVEUgVklFVyBy cHJfZXY1MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3F1ZXN0aW9uIEFTCiBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2KQogV0lO RE9XIHcgQVMgKApAQCAtMTUzMSw3ICsxNTMxLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRF Uk4gKEE/IEIgQykKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDEsIEIgQVMgdiAlIDQgPSAyLCBD IEFTIHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2NTMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdf Z2V0X3ZpZXdkZWYoJ3Jwcl9ldl9xdWFudF9xdWVzdGlvbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hF UkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJ TiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBP RkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNTQ0LDcgKzE1NDQsNyBAQCBXSU5ET1cg dyBBUyAoCiApOycpOwogCiAtLSBFeGFjdCBjb3VudCB7bn0KLUNSRUFURSBWSUVXIHJwcl9ldjU0 IEFTCitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfZXhhY3QgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAo CkBAIC0xNTUzLDcgKzE1NTMsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQXszfSBC KQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNU IGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1 NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3F1YW50 X2V4YWN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcK QEAgLTE1NjYsNyArMTU2Niw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFJhbmdlIHtu LG19Ci1DUkVBVEUgVklFVyBycHJfZXY1NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3Jh bmdlIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1 MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTU3NSw3ICsxNTc1LDcgQEAgV0lORE9XIHcg QVMgKAogICAgIFBBVFRFUk4gKEF7Miw0fSBCKQogICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAs IEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2Fy cmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X3F1YW50X3JhbmdlJyksIEUnXG4nKSkgQVMgbGluZSBXSEVS RSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlO IChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE1ODgsNyArMTU4OCw3IEBAIFdJTkRPVyB3 IEFTICgKICk7Jyk7CiAKIC0tIEF0IGxlYXN0IHtuLH0KLUNSRUFURSBWSUVXIHJwcl9ldjU2IEFT CitDUkVBVEUgVklFVyBycHJfZXZfcXVhbnRfYXRsZWFzdCBBUwogU0VMRUNUIGNvdW50KCopIE9W RVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKIFdJTkRPVyB3IEFTICgK QEAgLTE1OTcsNyArMTU5Nyw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBezMsfSBC KQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8PiAwLCBCIEFTIHYgJSAxMCA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djU2JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfcXVh bnRfYXRsZWFzdCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNF TEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYs IENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAKIC0tIFZlcmlmeSBzdGF0 ZSBjb3VudCBhY2N1cmFjeQogLS0gUGF0dGVybiBBKyBCIHdpdGggMjAgcm93cyBzaG91bGQgc2hv dyBwcmVkaWN0YWJsZSBzdGF0ZSBiZWhhdmlvcgotQ1JFQVRFIFZJRVcgcnByX2V2NTcgQVMKK0NS RUFURSBWSUVXIHJwcl9ldl9yZWdfc3RhdGVfY291bnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVS IHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBA IC0xNjI0LDcgKzE2MjQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAg ICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5l IEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTcnKSwg RSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfc3RhdGVf Y291bnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTYzNyw3ICsxNjM3LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVmVyaWZ5IGNv bnRleHQgY291bnQgd2l0aCBrbm93biBhYnNvcnB0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY1OCBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3JlZ19jdHhfYWJzb3JiIEFTCiBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMTY0Niw3ICsxNjQ2LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIg QykKICAgICBERUZJTkUgQSBBUyB2ICUgMTAgSU4gKDEsMiwzLDQsNSw2LDcpLCBCIEFTIHYgJSAx MCA9IDgsIEMgQVMgdiAlIDEwID0gOQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NTgnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9yZWdfY3R4X2Fic29yYicpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNjU5LDcgKzE2NTksNyBA QCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBWZXJpZnkgbWF0Y2ggbGVuZ3RoIHdpdGggZml4 ZWQtbGVuZ3RoIHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjU5IEFTCitDUkVBVEUgVklFVyBy cHJfZXZfcmVnX21hdGNobGVuIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTY2OCw3ICsxNjY4 LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiBDKQogICAgIERFRklORSBBIEFT IHYgJSAzID0gMSwgQiBBUyB2ICUgMyA9IDIsIEMgQVMgdiAlIDMgPSAwCiApOwotU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY1OScp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZS T00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3JlZ19tYXRj aGxlbicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBy cHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RT IE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBA IC0xNjg1LDcgKzE2ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gU2ltcGxlIGFs dGVybmF0aW9uCi1DUkVBVEUgVklFVyBycHJfZXY2MCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2Fs dF9zaW1wbGUgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBX SU5ET1cgdyBBUyAoCkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoKEEgfCBCKSBDKQogICAgIERFRklORSBBIEFTIGNhdCA9ICdBJywgQiBBUyBjYXQgPSAn QicsIEMgQVMgY2F0ID0gJ0MnCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJh eShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExB SU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkg T0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTcwNyw3ICsxNzA3LDcgQEAgV0lORE9X IHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgaXRlbXMgaW4gYWx0ZXJuYXRpb24KLUNSRUFU RSBWSUVXIHJwcl9ldjYxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X211bHRpX2l0ZW0gQVMK IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gcnByX25mYV90ZXN0CiBXSU5ET1cgdyBBUyAo CkBAIC0xNzE4LDcgKzE3MTgsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEEgQVMgY2F0ID0g J0EnLCBCIEFTIGNhdCA9ICdCJywgQyBBUyBjYXQgPSAnQycsCiAgICAgICAgIEQgQVMgY2F0ID0g J0QnLCBFIEFTIGNhdCA9ICdFJwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfbXVsdGlfaXRlbScpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwog RVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VN TUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0xNzMzLDcgKzE3MzMsNyBAQCBX SU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBBbHRlcm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzCi1D UkVBVEUgVklFVyBycHJfZXY2MiBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF93aXRoX3F1YW50 IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTc0Miw3ICsxNzQyLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKChBIHwgQikrIEMpCiAgICAgREVGSU5FIEEgQVMgdiAlIDMgPSAxLCBC IEFTIHYgJSAzID0gMiwgQyBBUyB2ICUgMyA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVz dChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjYyJyksIEUnXG4nKSkgQVMg bGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X3dpdGhfcXVhbnQnKSwgRSdc bicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5f ZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTc1NSw3ICsx NzU1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTXVsdGlwbGUgYWx0ZXJuYXRpdmVz ICg0KykKLUNSRUFURSBWSUVXIHJwcl9ldjYzIEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X2Zv dXJfcGx1cyBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMTAwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0xNzYzLDcgKzE3NjMsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSB8IEIgfCBDIHwgRCB8IEUpCiAgICAgREVGSU5FIEEg QVMgdiAlIDUgPSAwLCBCIEFTIHYgJSA1ID0gMSwgQyBBUyB2ICUgNSA9IDIsIEQgQVMgdiAlIDUg PSAzLCBFIEFTIHYgJSA1ID0gNAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190 b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NjMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfZm91cl9wbHVzJyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBF WFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1N QVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3NzUsNyArMTc3NSw3IEBAIFdJ TkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIEFsdGVybmF0aW9uIGF0IHN0YXJ0Ci1DUkVBVEUgVklF VyBycHJfZXY2NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2FsdF9hdF9zdGFydCBBUwogU0VMRUNU IGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJ TkRPVyB3IEFTICgKQEAgLTE3ODMsNyArMTc4Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRU RVJOICgoQSB8IEIpIEMgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAlIDQg PSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBGUk9N IHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY0JyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5l c3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X2F0X3N0YXJ0Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBs YWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE3OTUs NyArMTc5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHNlcXVlbnRp YWwgYWx0ZXJuYXRpb25zCi1DUkVBVEUgVklFVyBycHJfZXY2NSBBUworQ1JFQVRFIFZJRVcgcnBy X2V2X2FsdF9zZXF1ZW50aWFsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAxMDApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4MDMsNyArMTgw Myw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSB8IEIpIEMgKEQgfCBFKSBGKQog ICAgIERFRklORSBBIEFTIHYgJSA2ID0gMCwgQiBBUyB2ICUgNiA9IDEsIEMgQVMgdiAlIDYgPSAy LCBEIEFTIHYgJSA2ID0gMywgRSBBUyB2ICUgNiA9IDQsIEYgQVMgdiAlIDYgPSA1CiApOwotU0VM RUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJf ZXY2NScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBs aW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2Fs dF9zZXF1ZW50aWFsJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwog U0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9G RiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKQEAgLTE4MTUsNyArMTgxNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIFF1 YW50aWZpZWQgYWx0ZXJuYXRpdmVzCi1DUkVBVEUgVklFVyBycHJfZXY2NiBBUworQ1JFQVRFIFZJ RVcgcnByX2V2X2FsdF9xdWFudGlmaWVkIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTgyMyw3 ICsxODIzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKChBKyB8IEIrKSBDKQogICAg IERFRklORSBBIEFTIHYgJSAzID0gMCwgQiBBUyB2ICUgMyA9IDEsIEMgQVMgdiAlIDMgPSAyCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY2NicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2FsdF9xdWFudGlmaWVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRF Uk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZG RVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKQEAgLTE4MzUsNyArMTgzNSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAK IC0tIEFsdGVybmF0aW9uIGF0IGVuZAotQ1JFQVRFIFZJRVcgcnByX2V2NjcgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9hbHRfYXRfZW5kIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA2MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTg0Myw3ICsx ODQzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEgQiAoQyB8IEQpKQogICAgIERF RklORSBBIEFTIHYgJSA0ID0gMCwgQiBBUyB2ICUgNCA9IDEsIEMgQVMgdiAlIDQgPSAyLCBEIEFT IHYgJSA0ID0gMwogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2NjcnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0 X3ZpZXdkZWYoJ3Jwcl9ldl9hbHRfYXRfZW5kJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5l IH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFM WVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKQEAgLTE4NTYsNyArMTg1Niw3IEBAIFdJTkRPVyB3IEFTICgK IAogLS0gTmVzdGVkIEFMVCBhdCBzdGFydCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0g UGF0dGVybjogKEEgKChCIHwgQykgRCB8IEUpKSAtIHByZWNlZGluZyBWQVIgKyBpbm5lciBBTFQg YXMgZmlyc3QgYnJhbmNoIGVsZW1lbnQKLUNSRUFURSBWSUVXIHJwcl9ldjY4IEFTCitDUkVBVEUg VklFVyBycHJfZXZfYWx0X25lc3RlZF9zdGFydCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE4 NjQsNyArMTg2NCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBICgoQiB8IEMpIEQg fCBFKSkKICAgICBERUZJTkUgQSBBUyB2ICUgNSA9IDAsIEIgQVMgdiAlIDUgPSAxLCBDIEFTIHYg JSA1ID0gMiwgRCBBUyB2ICUgNSA9IDMsIEUgQVMgdiAlIDUgPSA0CiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY2OCcpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2FsdF9uZXN0ZWRf c3RhcnQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMTg3Nyw3ICsxODc3LDcgQEAgV0lORE9XIHcgQVMgKAogCiAtLSBOZXN0ZWQgQUxUIGF0IGVu ZCBvZiBicmFuY2ggaW5zaWRlIG91dGVyIEFMVAogLS0gUGF0dGVybjogKEMgKEEgfCBCKSB8IEQp IC0gaW5uZXIgQUxUIGlzIGxhc3QgZWxlbWVudCBpbiBvdXRlciBicmFuY2gKLUNSRUFURSBWSUVX IHJwcl9ldjY5IEFTCitDUkVBVEUgVklFVyBycHJfZXZfYWx0X25lc3RlZF9lbmQgQVMKIFNFTEVD VCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIwKSBBUyBzKHYpCiBX SU5ET1cgdyBBUyAoCkBAIC0xODg1LDcgKzE4ODUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFU VEVSTiAoQyAoQSB8IEIpIHwgRCkKICAgICBERUZJTkUgQSBBUyB2ICUgNCA9IDAsIEIgQVMgdiAl IDQgPSAxLCBDIEFTIHYgJSA0ID0gMiwgRCBBUyB2ICUgNCA9IDMKICk7Ci1TRUxFQ1QgbGluZSBG Uk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjY5JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfYWx0X25lc3RlZF9l bmQnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnBy X2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBP RkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAt MTkwMSw3ICsxOTAxLDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIFNpbXBsZSBncm91 cAotQ1JFQVRFIFZJRVcgcnByX2V2NzAgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9ncnBfc2ltcGxl IEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkg QVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMTkxMCw3ICsxOTEwLDcgQEAgV0lORE9XIHcgQVMg KAogICAgIFBBVFRFUk4gKChBIEIpKykKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMg diAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBn X2dldF92aWV3ZGVmKCdycHJfZXY3MCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQ QVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X2dycF9zaW1wbGUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTkyMyw3ICsxOTIzLDcgQEAgV0lORE9XIHcgQVMgKAog KTsnKTsKIAogLS0gR3JvdXAgd2l0aCBib3VuZGVkIHF1YW50aWZpZXIKLUNSRUFURSBWSUVXIHJw cl9ldjcxIEFTCitDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWQgQVMKIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDQwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0xOTMyLDcgKzE5MzIsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo KEEgQil7Miw0fSkKICAgICBERUZJTkUgQSBBUyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiAp OwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVm KCdycHJfZXY3MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2X2dycF9ib3VuZGVkJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4n OwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJT IE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKQEAgLTE5NDUsNyArMTk0NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0t IE5lc3RlZCBncm91cHMKLUNSRUFURSBWSUVXIHJwcl9ldjcyIEFTCitDUkVBVEUgVklFVyBycHJf ZXZfZ3JwX25lc3RlZCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTE5NTQsNyArMTk1NCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoKEEgQil7Mn0pKykKICAgICBERUZJTkUgQSBB UyB2ICUgMiA9IDEsIEIgQVMgdiAlIDIgPSAwCiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qo c3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3MicpLCBFJ1xuJykpIEFTIGxp bmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2dycF9uZXN0ZWQnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYs IFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk2Nyw3ICsxOTY3LDcg QEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gRGVlcCBuZXN0aW5nICgzKyBsZXZlbHMpCi1D UkVBVEUgVklFVyBycHJfZXY3MyBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9kZWVwIEFTCiBT RUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA0MCkgQVMgcyh2 KQogV0lORE9XIHcgQVMgKApAQCAtMTk3NSw3ICsxOTc1LDcgQEAgV0lORE9XIHcgQVMgKAogICAg IFBBVFRFUk4gKCgoKEEgfCBCKSspKykrKQogICAgIERFRklORSBBIEFTIHYgJSAyID0gMCwgQiBB UyB2ICUgMiA9IDEKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXko cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjczJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4g J1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dl dF92aWV3ZGVmKCdycHJfZXZfZ3JwX2RlZXAnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUg fiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZ WkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VM RUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgV0lORE9XIHcgQVMgKAog KTsnKTsKIAogLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFsdGVybmF0aW9uCi1DUkVBVEUgVklF VyBycHJfZXY3NCBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkX2FsdCBBUwogU0VM RUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTE5OTUsNyArMTk5NSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOICgoQSB8IEIpezIsM30gQykKICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMg diAlIDMgPSAxLCBDIEFTIHYgJSAzID0gMgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzQnKSwgRSdcbicpKSBBUyBsaW5l IFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdf dG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9ncnBfYm91bmRlZF9hbHQnKSwgRSdcbicp KSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmls dGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBP RkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjAwNyw3ICsyMDA3 LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gTmVzdGVkIGdyb3VwcyB3aXRoIHF1YW50 aWZpZXJzCi1DUkVBVEUgVklFVyBycHJfZXY3NSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9u ZXN0ZWRfcXVhbnQgQVMKIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDYwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMDE1LDcgKzIwMTUsNyBAQCBX SU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoKChBIEIpKyBDKSopCiAgICAgREVGSU5FIEEgQVMg diAlIDMgPSAwLCBCIEFTIHYgJSAzID0gMSwgQyBBUyB2ICUgMyA9IDIKICk7Ci1TRUxFQ1QgbGlu ZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc1Jyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJP TSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfZ3JwX25lc3Rl ZF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBQYXJ0aWFs IG5lc3RlZCBxdWFudGlmaWNhdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2NzYgQVMKK0NSRUFURSBW SUVXIHJwcl9ldl9ncnBfcGFydGlhbF9xdWFudCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwog RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNjApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIw MzUsNyArMjAzNSw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOICgoQSAoQiBDKSspKikK ICAgICBERUZJTkUgQSBBUyB2ICUgMyA9IDAsIEIgQVMgdiAlIDMgPSAxLCBDIEFTIHYgJSAzID0g MgogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmll d2RlZigncnByX2V2NzYnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7 CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYo J3Jwcl9ldl9ncnBfcGFydGlhbF9xdWFudCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFla RSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDUxLDcgKzIwNTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogLS0gY291bnQoKikgd2l0aCBwYXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3NyBB UworQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9jb3VudCBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIg dwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAg LTIwNjAsNyArMjA2MCw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKyBCKQogICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY3NycpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3dmbl9jb3VudCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMDcz LDcgKzIwNzMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwogCiAtLSBmaXJzdF92YWx1ZSB3aXRo IHBhdHRlcm4KLUNSRUFURSBWSUVXIHJwcl9ldjc4IEFTCitDUkVBVEUgVklFVyBycHJfZXZfd2Zu X2ZpcnN0X3ZhbHVlIEFTCiBTRUxFQ1QgZmlyc3RfdmFsdWUodikgT1ZFUiB3CiBGUk9NIGdlbmVy YXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjA4Miw3ICsyMDgy LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErIEIpCiAgICAgREVGSU5FIEEgQVMg diAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxFQ1QgbGluZSBGUk9NIHVubmVzdChz dHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldjc4JyksIEUnXG4nKSkgQVMgbGlu ZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5n X3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2ZuX2ZpcnN0X3ZhbHVlJyksIEUnXG4n KSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2Zp bHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcg T0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBmaXJzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIwOTUs NyArMjA5NSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIGxhc3RfdmFsdWUgd2l0aCBw YXR0ZXJuCi1DUkVBVEUgVklFVyBycHJfZXY3OSBBUworQ1JFQVRFIFZJRVcgcnByX2V2X3dmbl9s YXN0X3ZhbHVlIEFTCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDMwKSBBUyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMTA0LDcgKzIxMDQsNyBA QCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsgQikKICAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIHYgJSA1ID0gMAogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmlu Z190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2NzknKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9f YXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl93Zm5fbGFzdF92YWx1ZScpLCBFJ1xuJykpIEFT IGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIo JwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCiBTRUxFQ1QgbGFzdF92YWx1ZSh2KSBPVkVSIHcKQEAgLTIxMTcsNyArMjEx Nyw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7CiAKIC0tIE11bHRpcGxlIHdpbmRvdyBmdW5jdGlv bnMKLUNSRUFURSBWSUVXIHJwcl9ldjgwIEFTCitDUkVBVEUgVklFVyBycHJfZXZfd2ZuX211bHRp IEFTCiBTRUxFQ1QKICAgICBjb3VudCgqKSBPVkVSIHcsCiAgICAgZmlyc3RfdmFsdWUodikgT1ZF UiB3LApAQCAtMjEyOSw3ICsyMTI5LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr IEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAKICk7Ci1TRUxF Q1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9l djgwJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIGxp bmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfd2Zu X211bHRpJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOwogU0VMRUNU IHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09T VFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVApAQCAtMjE0OSw3ICsyMTQ5 LDcgQEAgV0lORE9XIHcgQVMgKAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0tIENvbXBsZXggYm9vbGVhbiBleHByZXNz aW9ucwotQ1JFQVRFIFZJRVcgcnByX2V2ODEgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9kZWZfY29t cGxleF9ib29sIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCA1MCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjE2MCw3ICsyMTYwLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgICAgICBBIEFTICh2ICUgNSA8PiAwKSBBTkQgKHYgJSAzIDw+IDApLAog ICAgICAgICBCIEFTICh2ICUgNSA9IDApIE9SICh2ICUgMyA9IDApCiApOwotU0VMRUNUIGxpbmUg RlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4MScpLCBF J1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00g dW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X2RlZl9jb21wbGV4 X2Jvb2wnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1Qg cnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NU UyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpA QCAtMjE3NSw3ICsyMTc1LDcgQEAgV0lORE9XIHcgQVMgKAogKTsnKTsKIAogLS0gVXNpbmcgUFJF ViBmdW5jdGlvbgotQ1JFQVRFIFZJRVcgcnByX2V2ODIgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9k ZWZfcHJldiBBUwogU0VMRUNUIGNvdW50KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwgMzApIEFTIHModikKIFdJTkRPVyB3IEFTICgKQEAgLTIxODcsNyArMjE4Nyw3IEBAIFdJTkRP VyB3IEFTICgKICAgICAgICAgVSBBUyB2ID4gUFJFVih2KSwKICAgICAgICAgRCBBUyB2IDwgUFJF Vih2KQogKTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2ODInKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVS Tic7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9kZWZfcHJldicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRU RVJOJzsKIFNFTEVDVCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVG RkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CkBAIC0yMjAzLDcgKzIyMDMsNyBAQCBXSU5ET1cgdyBBUyAoCiApOycpOwog CiAtLSBVc2luZyBOVUxMIGNvbXBhcmlzb25zCi1DUkVBVEUgVklFVyBycHJfZXY4MyBBUworQ1JF QVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CiBGUk9N ICgKICAgICBTRUxFQ1QgQ0FTRSBXSEVOIHYgJSA1ID0gMCBUSEVOIE5VTEwgRUxTRSB2IEVORCBB UyB2CkBAIC0yMjE1LDcgKzIyMTUsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSsg QikKICAgICBERUZJTkUgQSBBUyB2IElTIE5PVCBOVUxMLCBCIEFTIHYgSVMgTlVMTAogKTsKLVNF TEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnBy X2V2ODMnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitTRUxFQ1Qg bGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9k ZWZfbnVsbCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVD VCBycHJfZXhwbGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENP U1RTIE9GRiwgVElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3 CkBAIC0yMjM1LDcgKzIyMzUsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gNTAwIHJv d3MgLSB2ZXJpZnkgc3RhdGlzdGljcyBzY2FsZSBjb3JyZWN0bHkKLUNSRUFURSBWSUVXIHJwcl9l djg0IEFTCitDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfNTAwcm93cyBBUwogU0VMRUNUIGNvdW50 KCopIE9WRVIgdwogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTAwKSBBUyBzKHYpCiBXSU5ET1cg dyBBUyAoCkBAIC0yMjQ0LDcgKzIyNDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAo QSsgQiBDKQogICAgIERFRklORSBBIEFTIHYgJSAxMCA8IDcsIEIgQVMgdiAlIDEwID0gNywgQyBB UyB2ICUgMTAgPSA4CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5 KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NCcpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X3NjYWxlXzUwMHJvd3MnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJF IGxpbmUgfiAnUEFUVEVSTic7CiBTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKIEVYUExBSU4g KEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBDT1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZG KQogU0VMRUNUIGNvdW50KCopIE9WRVIgdwpAQCAtMjI1Nyw3ICsyMjU3LDcgQEAgV0lORE9XIHcg QVMgKAogKTsnKTsKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcg cnByX2V2ODUgQVMKK0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX21hdGNoIEFTCiBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MDApIEFTIHModikK IFdJTkRPVyB3IEFTICgKQEAgLTIyNjYsNyArMjI2Niw3IEBAIFdJTkRPVyB3IEFTICgKICAgICBQ QVRURVJOIChBIEIpCiAgICAgREVGSU5FIEEgQVMgdiAlIDIgPSAxLCBCIEFTIHYgJSAyID0gMAog KTsKLVNFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2Rl ZigncnByX2V2ODUnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTic7CitT RUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jw cl9ldl9zY2FsZV9oaWdoX21hdGNoJyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BB VFRFUk4nOwogU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCiBFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKIFNFTEVDVCBj b3VudCgqKSBPVkVSIHcKQEAgLTIyNzksNyArMjI3OSw3IEBAIFdJTkRPVyB3IEFTICgKICk7Jyk7 CiAKIC0tIEhpZ2ggc2tpcCBjb3VudCBzY2VuYXJpbwotQ1JFQVRFIFZJRVcgcnByX2V2ODYgQVMK K0NSRUFURSBWSUVXIHJwcl9ldl9zY2FsZV9oaWdoX3NraXAgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwMCkgQVMgcyh2KQogV0lORE9XIHcgQVMg KApAQCAtMjI5Myw3ICsyMjkzLDcgQEAgV0lORE9XIHcgQVMgKAogICAgICAgICBEIEFTIHYgJSAx MDAgPSA0LAogICAgICAgICBFIEFTIHYgJSAxMDAgPSA1CiApOwotU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXY4NicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0 KHN0cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X3NjYWxlX2hpZ2hfc2tpcCcp LCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKIFNFTEVDVCBycHJfZXhw bGFpbl9maWx0ZXIoJwogRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwg VElNSU5HIE9GRiwgU1VNTUFSWSBPRkYpCiBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CkBAIC0yMzIx LDcgKzIzMjEsNyBAQCBXSU5ET1cgdyBBUyAoCiAtLQogCiAtLSBXaXRob3V0IFJQUjogcm93X251 bWJlcigpIGZyYW1lIGlzIG9wdGltaXplZCB0byBST1dTIFVOQk9VTkRFRCBQUkVDRURJTkcKLUNS RUFURSBWSUVXIHJwcl9ldjg3IEFTCitDUkVBVEUgVklFVyBycHJfZXZfb3B0X25vX3JwciBBUwog U0VMRUNUIHJvd19udW1iZXIoKSBPVkVSIHcKIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBB UyBzKHYpCiBXSU5ET1cgdyBBUyAoCkBAIC0yMzI5LDEwICsyMzI5LDEwIEBAIFdJTkRPVyB3IEFT ICgKICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK ICk7CiAKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4NzsKK0VYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X25vX3JwcjsKIAogLS0gV2l0 aCBSUFI6IGZyYW1lIG11c3QgcmVtYWluIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwotQ1JFQVRFIFZJRVcgcnByX2V2ODggQVMKK0NSRUFURSBWSUVXIHJw cl9ldl9vcHRfd2l0aF9ycHIgQVMKIFNFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiB3CiBGUk9NIGdl bmVyYXRlX3NlcmllcygxLCAxMCkgQVMgcyh2KQogV0lORE9XIHcgQVMgKApAQCAtMjM0NCwxMyAr MjM0NCwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIEIgQVMgdiA+IFBSRVYodikKICk7CiAK LUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXY4ODsKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUICogRlJPTSBycHJfZXZfb3B0X3dpdGhfcnByOwogCiAtLQogLS0gUGxh bm5lciBvcHRpbWl6YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hhcmUgdGhl IHNhbWUgYmFzZSBmcmFtZQogLS0gYWZ0ZXIgZnJhbWUgb3B0aW1pemF0aW9uIGFyZSBrZXB0IGFz IHNlcGFyYXRlIFdpbmRvd0FnZyBub2Rlcy4KIC0tCi1DUkVBVEUgVklFVyBycHJfZXY4OSBBUwor Q1JFQVRFIFZJRVcgcnByX2V2X29wdF9taXhlZCBBUwogU0VMRUNUCiAgICAgcm93X251bWJlcigp IE9WRVIgd19ub3JtYWwgQVMgcm5fbm9ybWFsLAogICAgIHJvd19udW1iZXIoKSBPVkVSIHdfcnBy IEFTIHJuX3JwcgpAQCAtMjM2NCw3ICsyMzY0LDcgQEAgV0lORE9XCiAgICAgICAgIERFRklORSBB IEFTIHYgPiAxCiAgICAgKTsKIAotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJw cl9ldjg5OworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHJwcl9ldl9vcHRfbWl4 ZWQ7CiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXphdGlvbjogZmluZF93aW5kb3dfcnVuX2NvbmRp dGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Disposition: attachment; filename="nocfbot-0011-Fix-quote_identifier-deparse.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqb8v10 RnJvbSA1YTVlMDRlYjNiZWNmYzVjZDE4NWI2NzI0M2ZlMTVlZmY1ZWY2ZjU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDg6NTM6NDYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggcXVv dGVfaWRlbnRpZmllcigpIGZvciBSUFIgcGF0dGVybiB2YXJpYWJsZSBuYW1lIGRlcGFyc2UKCkFk ZCBxdW90ZV9pZGVudGlmaWVyKCkgdG8gUEFUVEVSTiBhbmQgREVGSU5FIHZhcmlhYmxlIG5hbWUg b3V0cHV0CmluIHJ1bGV1dGlscy5jIGFuZCBleHBsYWluLmMuICBXaXRob3V0IHF1b3RpbmcsIG1p eGVkLWNhc2Ugb3IKcmVzZXJ2ZWQtd29yZCB2YXJpYWJsZSBuYW1lcyAoZS5nLiwgIlN0YXJ0Iiwg IlVwIikgbG9zZSB0aGVpcgpjYXNlIG9yIGNvbmZsaWN0IHdpdGgga2V5d29yZHMgaW4gcGdfZ2V0 X3ZpZXdkZWYoKSBvdXRwdXQsCmJyZWFraW5nIHBnX2R1bXAvcGdfcmVzdG9yZSByb3VuZC10cmlw cy4KCkFkZCByZWdyZXNzaW9uIHRlc3Qgd2l0aCBxdW90ZWQgaWRlbnRpZmllcnMgKCJTdGFydCIs ICJVcCIpIHRvCnZlcmlmeSBjb3JyZWN0IGRlcGFyc2UgaW4gYm90aCBwZ19nZXRfdmlld2RlZiBh bmQgRVhQTEFJTiBvdXRwdXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAg ICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAg ICAgfCAgNCArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCAgICB8 IDI0ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jw cl9leHBsYWluLm91dCB8IDE5ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2Jhc2Uuc3FsICAgICAgICAgfCAxMCArKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDEyICsrKysrKysrKysrKwogNiBmaWxlcyBjaGFu Z2VkLCA2OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4u YwppbmRleCA3ZjAzNjdjZTU0Ni4uOTMzZWFkYWI3MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMK QEAgLTMxNzYsNyArMzE3Niw3IEBAIGRlcGFyc2VfcnByX3ZhcihSUFJQYXR0ZXJuICpwYXR0ZXJu LCBpbnQgKmlkeCwgU3RyaW5nSW5mb0RhdGEgKmJ1ZiwKIAkJYXBwZW5kU3RyaW5nSW5mb0NoYXIo YnVmLCAnICcpOwogCiAJQXNzZXJ0KGVsZW0tPnZhcklkIDwgcGF0dGVybi0+bnVtVmFycyk7Ci0J YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHBhdHRlcm4tPnZhck5hbWVzW2VsZW0tPnZhcklk XSk7CisJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lkZW50aWZpZXIocGF0dGVy bi0+dmFyTmFtZXNbZWxlbS0+dmFySWRdKSk7CiAJYXBwZW5kX3Jwcl9xdWFudGlmaWVyKGJ1Ziwg ZWxlbSk7CiAJKm5lZWRTcGFjZSA9IHRydWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpp bmRleCBjZmUyNGRlNDNjZi4uYzc1NWE0MmVmZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKQEAgLTcxNjAsNyArNzE2MCw3IEBAIGdldF9ydWxlX3BhdHRlcm5fbm9kZShSUFJQYXR0ZXJu Tm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCXN3aXRjaCAobm9kZS0+bm9k ZVR5cGUpCiAJewogCQljYXNlIFJQUl9QQVRURVJOX1ZBUjoKLQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCBub2RlLT52YXJOYW1lKTsKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVm LCBxdW90ZV9pZGVudGlmaWVyKG5vZGUtPnZhck5hbWUpKTsKIAkJCWFwcGVuZF9wYXR0ZXJuX3F1 YW50aWZpZXIoYnVmLCBub2RlKTsKIAkJCWJyZWFrOwogCkBAIC03MjI5LDcgKzcyMjksNyBAQCBn ZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLCBkZXBh cnNlX2NvbnRleHQgKmNvbnRleHQpCiAJewogCQlUYXJnZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50 cnkgKikgbGZpcnN0KGxjX2RlZik7CiAKLQkJYXBwZW5kU3RyaW5nSW5mbyhidWYsICIlcyVzIEFT ICIsIHNlcCwgdGUtPnJlc25hbWUpOworCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiVzJXMgQVMg Iiwgc2VwLCBxdW90ZV9pZGVudGlmaWVyKHRlLT5yZXNuYW1lKSk7CiAJCWdldF9ydWxlX2V4cHIo KE5vZGUgKikgdGUtPmV4cHIsIGNvbnRleHQsIGZhbHNlKTsKIAkJc2VwID0gIixcbiAgIjsKIAl9 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDc0NTJjZjFiM2FiLi42 NTI2MzY1ZGQ2YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFz ZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAgLTIy NTIsNiArMjI1MiwzMCBAQCBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9xdWFudF9yZWx1Y3Rh bnRfdic6OnJlZ2NsYXNzKTsKICAgIGIgQVMgKHZhbCA+IDApICk7CiAoMSByb3cpCiAKKy0tIFF1 b3RlZCBpZGVudGlmaWVyIHJvdW5kLXRyaXA6IG1peGVkIGNhc2UgYW5kIHJlc2VydmVkIHdvcmRz IG5lZWQgcXVvdGluZworQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9xdW90ZWQgQVMKK1NFTEVDVCBp ZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9S REVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoIlN0YXJ0IiAiVXAiKykKKyAg ICAgICAgICAgICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVFLCAiVXAiIEFTIHZhbCA+IFBSRVYodmFs KSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfcXVvdGVkJzo6cmVnY2xhc3Mp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNU IGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIg dyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoIlN0YXJ0 IiAiVXAiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICJTdGFydCIgQVMgdHJ1ZSwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIlVw IiBBUyAodmFsID4gcHJldih2YWwpKSApOworKDEgcm93KQorCiAtLSBNYXRlcmlhbGl6ZWQgdmll dyAoaWYgc3VwcG9ydGVkKQogQ1JFQVRFIFRBQkxFIHJwcl9tdmlldyAoaWQgSU5ULCB2YWwgSU5U KTsKIElOU0VSVCBJTlRPIHJwcl9tdmlldyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMw KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKaW5kZXggZjY2Y2Fm ODkwOGUuLmE2OGVjNjFlMTBmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9leHBsYWluLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBs YWluLm91dApAQCAtMzAxLDYgKzMwMSwyNSBAQCBXSU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkK ICg4IHJvd3MpCiAKKy0tIFJlZ3Jlc3Npb24gdGVzdDogUXVvdGVkIGlkZW50aWZpZXJzIGluIEVY UExBSU4gcGF0dGVybiBkZXBhcnNlCistLSBNaXhlZCBjYXNlIG5hbWVzIG11c3QgYmUgcXVvdGVk IHRvIHByZXNlcnZlIHJvdW5kLXRyaXAgc2FmZXR5CitTRUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVy KCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoIlN0 YXJ0IiAiVXAiKykKKyAgICBERUZJTkUgIlN0YXJ0IiBBUyBUUlVFLCAiVXAiIEFTIHYgPiBQUkVW KHYpCispOycpOworICAgICAgICAgICAgICAgICAgICAgICAgcnByX2V4cGxhaW5fZmlsdGVyICAg ICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiAiU3RhcnQiICJVcCIrCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcworKDQgcm93cykKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBTdGF0ZSBTdGF0aXN0aWNzIFRl c3RzIChwZWFrLCB0b3RhbCwgbWVyZ2VkKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5z cWwKaW5kZXggOGMyM2M3NTk4YTMuLjNhY2NlY2I3M2JhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2Jh c2Uuc3FsCkBAIC0xNTU5LDYgKzE1NTksMTYgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCiAg ICAgICAgICAgICAgREVGSU5FIEEgQVMgdmFsID4gMCwgQiBBUyB2YWwgPiAwKTsKIFNFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3F1YW50X3JlbHVjdGFudF92Jzo6cmVnY2xhc3MpOwogCistLSBR dW90ZWQgaWRlbnRpZmllciByb3VuZC10cmlwOiBtaXhlZCBjYXNlIGFuZCByZXNlcnZlZCB3b3Jk cyBuZWVkIHF1b3RpbmcKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfcXVvdGVkIEFTCitTRUxFQ1Qg aWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChP UkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKCJTdGFydCIgIlVwIispCisg ICAgICAgICAgICAgREVGSU5FICJTdGFydCIgQVMgVFJVRSwgIlVwIiBBUyB2YWwgPiBQUkVWKHZh bCkpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX3F1b3RlZCc6OnJlZ2NsYXNz KTsKKwogLS0gTWF0ZXJpYWxpemVkIHZpZXcgKGlmIHN1cHBvcnRlZCkKIAogQ1JFQVRFIFRBQkxF IHJwcl9tdmlldyAoaWQgSU5ULCB2YWwgSU5UKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWlu LnNxbAppbmRleCA2NWE3NzVmZGFkOS4uNzAzZWNkM2IyM2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHJfZXhwbGFpbi5zcWwKQEAgLTIyNiw2ICsyMjYsMTggQEAgV0lORE9XIHcgQVMgKAogICAgIERF RklORSBBIEFTIHYgJSA1ID0gMSwgQiBBUyB2ICUgNSA9IDIsIEMgQVMgdiAlIDUgPSAzLCBEIEFT IHYgJSA1ID0gNCwgRSBBUyB2ICUgNSA9IDAKICk7Jyk7CiAKKy0tIFJlZ3Jlc3Npb24gdGVzdDog UXVvdGVkIGlkZW50aWZpZXJzIGluIEVYUExBSU4gcGF0dGVybiBkZXBhcnNlCistLSBNaXhlZCBj YXNlIG5hbWVzIG11c3QgYmUgcXVvdGVkIHRvIHByZXNlcnZlIHJvdW5kLXRyaXAgc2FmZXR5CitT RUxFQ1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKENPU1RTIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoIlN0YXJ0IiAiVXAiKykKKyAgICBERUZJTkUgIlN0YXJ0IiBB UyBUUlVFLCAiVXAiIEFTIHYgPiBQUkVWKHYpCispOycpOworCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFN0YXRlIFN0 YXRpc3RpY3MgVGVzdHMgKHBlYWssIHRvdGFsLCBtZXJnZWQpCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0gCjIuNTAuMSAo QXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0012-Fix-execRPR-Makefile-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqdw711 RnJvbSBiNDllNjRhZGRlOTkxZDIzNzk5ZmRmZDMwOWU2ZDk5NmM4ZDJlNWM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6MTQ6NTkgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggZXhl Y1JQUi5vIG9yZGVyaW5nIGluIGV4ZWN1dG9yIE1ha2VmaWxlIHRvIG1hdGNoCiBtZXNvbi5idWls ZAoKLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5k ZXggZWVlZDlhOTA0ZTUuLjJiMjU3NDI3Nzk1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtMjUs OCArMjUsOCBAQCBPQkpTID0gXAogCWV4ZWNQYXJhbGxlbC5vIFwKIAlleGVjUGFydGl0aW9uLm8g XAogCWV4ZWNQcm9jbm9kZS5vIFwKLQlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1JQUi5vIFwK KwlleGVjUmVwbGljYXRpb24ubyBcCiAJZXhlY1NSRi5vIFwKIAlleGVjU2Nhbi5vIFwKIAlleGVj VHVwbGVzLm8gXAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0013-Remove-unused-force_colno.txt" Content-Disposition: attachment; filename="nocfbot-0013-Remove-unused-force_colno.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqi1212 RnJvbSA4MDcyNmQ2MTUxYWEwMGFlNmVkZjczZmM0OTQ5OGFhYzc1ZjlmYjI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDA6NTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW1vdmUg dW51c2VkIGZvcmNlX2NvbG5vIHBhcmFtZXRlciBmcm9tIFJQUiBkZXBhcnNlCiBmdW5jdGlvbnMK Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIHwgMTUgKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBjNzU1YTQyZWZkNi4uZTkzYzAzYTM1MWMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTQ0OSwxMCArNDQ5LDggQEAgc3RhdGljIHZv aWQgZ2V0X3J1bGVfb3JkZXJieShMaXN0ICpvcmRlckxpc3QsIExpc3QgKnRhcmdldExpc3QsCiAJ CQkJCQkJIGJvb2wgZm9yY2VfY29sbm8sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CiBzdGF0 aWMgdm9pZCBhcHBlbmRfcGF0dGVybl9xdWFudGlmaWVyKFN0cmluZ0luZm8gYnVmLCBSUFJQYXR0 ZXJuTm9kZSAqbm9kZSk7CiBzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJuX25vZGUoUlBSUGF0 dGVybk5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMgdm9pZCBn ZXRfcnVsZV9wYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGJvb2wgZm9yY2VfY29s bm8sCi0JCQkJCQkJIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Ci1zdGF0aWMgdm9pZCBnZXRf cnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLAotCQkJCQkJ CWRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7CitzdGF0aWMgdm9pZCBnZXRfcnVsZV9wYXR0ZXJu KFJQUlBhdHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCk7Citz dGF0aWMgdm9pZCBnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBkZXBhcnNlX2Nv bnRleHQgKmNvbnRleHQpOwogc3RhdGljIHZvaWQgZ2V0X3J1bGVfd2luZG93Y2xhdXNlKFF1ZXJ5 ICpxdWVyeSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKIHN0YXRpYyB2b2lkIGdldF9ydWxl X3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0TGlzdCwKIAkJCQkJCQkJ ZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KTsKQEAgLTcyMDMsOCArNzIwMSw3IEBAIGdldF9ydWxl X3BhdHRlcm5fbm9kZShSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250ZXh0ICpjb250 ZXh0KQogICogRGlzcGxheSBhIFBBVFRFUk4gY2xhdXNlLgogICovCiBzdGF0aWMgdm9pZAotZ2V0 X3J1bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNlX2NvbG5v LAotCQkJCSBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCitnZXRfcnVsZV9wYXR0ZXJuKFJQUlBh dHRlcm5Ob2RlICpycFBhdHRlcm4sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIHsKIAlTdHJp bmdJbmZvCWJ1ZiA9IGNvbnRleHQtPmJ1ZjsKIApAQCAtNzIxNyw3ICs3MjE0LDcgQEAgZ2V0X3J1 bGVfcGF0dGVybihSUFJQYXR0ZXJuTm9kZSAqcnBQYXR0ZXJuLCBib29sIGZvcmNlX2NvbG5vLAog ICogRGlzcGxheSBhIERFRklORSBjbGF1c2UuCiAgKi8KIHN0YXRpYyB2b2lkCi1nZXRfcnVsZV9k ZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBib29sIGZvcmNlX2NvbG5vLCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQpCitnZXRfcnVsZV9kZWZpbmUoTGlzdCAqZGVmaW5lQ2xhdXNlLCBkZXBhcnNl X2NvbnRleHQgKmNvbnRleHQpCiB7CiAJU3RyaW5nSW5mbwlidWYgPSBjb250ZXh0LT5idWY7CiAJ Y29uc3QgY2hhciAqc2VwOwpAQCAtNzM1Niw3ICs3MzUzLDcgQEAgZ2V0X3J1bGVfd2luZG93c3Bl YyhXaW5kb3dDbGF1c2UgKndjLCBMaXN0ICp0YXJnZXRMaXN0LAogCQlpZiAobmVlZHNwYWNlKQog CQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoYnVmLCAnICcpOwogCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgIlxuICBQQVRURVJOICIpOwotCQlnZXRfcnVsZV9wYXR0ZXJuKHdjLT5ycFBhdHRl cm4sIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1bGVfcGF0dGVybih3Yy0+cnBQYXR0ZXJuLCBj b250ZXh0KTsKIAkJbmVlZHNwYWNlID0gdHJ1ZTsKIAl9CiAKQEAgLTczNjUsNyArNzM2Miw3IEBA IGdldF9ydWxlX3dpbmRvd3NwZWMoV2luZG93Q2xhdXNlICp3YywgTGlzdCAqdGFyZ2V0TGlzdCwK IAkJaWYgKG5lZWRzcGFjZSkKIAkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyAnKTsKIAkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJcbiAgREVGSU5FXG4iKTsKLQkJZ2V0X3J1bGVf ZGVmaW5lKHdjLT5kZWZpbmVDbGF1c2UsIGZhbHNlLCBjb250ZXh0KTsKKwkJZ2V0X3J1bGVfZGVm aW5lKHdjLT5kZWZpbmVDbGF1c2UsIGNvbnRleHQpOwogCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihi dWYsICcgJyk7CiAJfQogCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Disposition: attachment; filename="nocfbot-0014-CHECK_FOR_INTERRUPTS-cleanup-finalize.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqk4t13 RnJvbSA1ZTRhMWQwMzk1MDhjNzg3MmFkYzI1MDY3MDZhNzQ4MWIzZDM3NTViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDM6MDcgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgQ0hF Q0tfRk9SX0lOVEVSUlVQVFMgdG8gUlBSIGNvbnRleHQgY2xlYW51cCBhbmQgZmluYWxpemUKIGxv b3BzCgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyB8IDQgKysrKwogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYwppbmRleCBhZWMx MDU3ZTFiMi4uNGM0Mjk1MjhiMDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKQEAgLTMwNjgsNiAr MzA2OCw4IEBAIEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqZXhjbHVkZUN0eCkKIAogCWZvciAoY3R4ID0gd2luc3RhdGUt Pm5mYUNvbnRleHQ7IGN0eCAhPSBOVUxMOyBjdHggPSBuZXh0KQogCXsKKwkJQ0hFQ0tfRk9SX0lO VEVSUlVQVFMoKTsKKwogCQluZXh0ID0gY3R4LT5uZXh0OwogCiAJCS8qIFNraXAgdGhlIHRhcmdl dCBjb250ZXh0IGFuZCBjb250ZXh0cyBzdGlsbCBwcm9jZXNzaW5nICovCkBAIC0zMTA4LDYgKzMx MTAsOCBAQCBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3Rh dGUsIGludDY0IGxhc3RQb3MpCiAKIAlmb3IgKGN0eCA9IHdpbnN0YXRlLT5uZmFDb250ZXh0OyBj dHggIT0gTlVMTDsgY3R4ID0gY3R4LT5uZXh0KQogCXsKKwkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMo KTsKKwogCQlpZiAoY3R4LT5zdGF0ZXMgIT0gTlVMTCkKIAkJewogCQkJbmZhX21hdGNoKHdpbnN0 YXRlLCBjdHgsIE5VTEwpOwotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Disposition: attachment; filename="nocfbot-0015-Narrow-variable-scope-DEFINE-loop.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqmzf14 RnJvbSBlNTRkZDM0MWFlZjIxOGJlM2RjY2UwODhlZTQ2YzRkMzVmMjRkNDgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMDk6NDg6NTUgKzA5MDAKU3ViamVjdDogW1BBVENIXSBOYXJyb3cg dmFyaWFibGUgc2NvcGUgaW4gRXhlY0luaXRXaW5kb3dBZ2cgREVGSU5FIGNsYXVzZSBsb29wCgot LS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyB8IDExICsrKy0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCBkY2EyZGU1NzBlOC4uMDIwMmM1MDgzMjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTI2MjgsOSArMjYyOCw2IEBA IEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBl ZmxhZ3MpCiAJVHVwbGVEZXNjCXNjYW5EZXNjOwogCUxpc3RDZWxsICAgKmw7CiAKLQlUYXJnZXRF bnRyeSAqdGU7Ci0JRXhwcgkgICAqZXhwcjsKLQogCS8qIGNoZWNrIGZvciB1bnN1cHBvcnRlZCBm bGFncyAqLwogCUFzc2VydCghKGVmbGFncyAmIChFWEVDX0ZMQUdfQkFDS1dBUkQgfCBFWEVDX0ZM QUdfTUFSSykpKTsKIApAQCAtMjk1MSwxMyArMjk0OCwxMSBAQCBFeGVjSW5pdFdpbmRvd0FnZyhX aW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkgKi8KIAkJZm9y ZWFjaChsLCBub2RlLT5kZWZpbmVDbGF1c2UpCiAJCXsKLQkJCWNoYXIJICAgKm5hbWU7CisJCQlU YXJnZXRFbnRyeSAqdGUgPSBsZmlyc3QobCk7CisJCQljaGFyCSAgICpuYW1lID0gdGUtPnJlc25h bWU7CisJCQlFeHByCSAgICpleHByID0gdGUtPmV4cHI7CiAJCQlFeHByU3RhdGUgICpleHBzOwog Ci0JCQl0ZSA9IGxmaXJzdChsKTsKLQkJCW5hbWUgPSB0ZS0+cmVzbmFtZTsKLQkJCWV4cHIgPSB0 ZS0+ZXhwcjsKLQogCQkJd2luc3RhdGUtPmRlZmluZVZhcmlhYmxlTGlzdCA9CiAJCQkJbGFwcGVu ZCh3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFibGVMaXN0LAogCQkJCQkJbWFrZVN0cmluZyhwc3RyZHVw KG5hbWUpKSk7Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Disposition: attachment; filename="nocfbot-0016-Normalize-flag-macros-to-bool.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqpw515 RnJvbSA3NDdiODU1YjBiYjU4NmUwZDBiNjE2NDA2NTM3NjA3OWRjNTQ3M2M1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MzI6NTYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBOb3JtYWxp emUgUlBSIGVsZW1lbnQgZmxhZyBtYWNyb3MgdG8gcmV0dXJuIGJvb2wKCi0tLQogc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6 ZXIvcnByLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggZTc4MDkyNjc4YmIu LjM2MGUxYmI3NzdmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKKysr IGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC00NCwxMCArNDQsMTAgQEAKICNkZWZp bmUgUlBSX0VMRU1fQUJTT1JCQUJMRQkJCTB4MDgJLyogYWJzb3JwdGlvbiBqdWRnbWVudCBwb2lu dCAqLwogCiAvKiBBY2Nlc3NvciBtYWNyb3MgZm9yIFJQUlBhdHRlcm5FbGVtZW50ICovCi0jZGVm aW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoZSktPmZsYWdzICYgUlBSX0VMRU1fUkVMVUNU QU5UKQotI2RlZmluZSBSUFJFbGVtQ2FuRW1wdHlMb29wKGUpCQkJKChlKS0+ZmxhZ3MgJiBSUFJf RUxFTV9FTVBUWV9MT09QKQotI2RlZmluZSBSUFJFbGVtSXNBYnNvcmJhYmxlQnJhbmNoKGUpCSgo ZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gpCi0jZGVmaW5lIFJQUkVsZW1J c0Fic29yYmFibGUoZSkJCQkoKGUpLT5mbGFncyAmIFJQUl9FTEVNX0FCU09SQkFCTEUpCisjZGVm aW5lIFJQUkVsZW1Jc1JlbHVjdGFudChlKQkJCSgoKGUpLT5mbGFncyAmIFJQUl9FTEVNX1JFTFVD VEFOVCkgIT0gMCkKKyNkZWZpbmUgUlBSRWxlbUNhbkVtcHR5TG9vcChlKQkJCSgoKGUpLT5mbGFn cyAmIFJQUl9FTEVNX0VNUFRZX0xPT1ApICE9IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFi bGVCcmFuY2goZSkJKCgoZSktPmZsYWdzICYgUlBSX0VMRU1fQUJTT1JCQUJMRV9CUkFOQ0gpICE9 IDApCisjZGVmaW5lIFJQUkVsZW1Jc0Fic29yYmFibGUoZSkJCQkoKChlKS0+ZmxhZ3MgJiBSUFJf RUxFTV9BQlNPUkJBQkxFKSAhPSAwKQogI2RlZmluZSBSUFJFbGVtSXNWYXIoZSkJCQkoKGUpLT52 YXJJZCA8PSBSUFJfVkFSSURfTUFYKQogI2RlZmluZSBSUFJFbGVtSXNCZWdpbihlKQkJKChlKS0+ dmFySWQgPT0gUlBSX1ZBUklEX0JFR0lOKQogI2RlZmluZSBSUFJFbGVtSXNFbmQoZSkJCQkoKGUp LT52YXJJZCA9PSBSUFJfVkFSSURfRU5EKQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0017-Implement-1-slot-PREV-NEXT-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqsdk16 RnJvbSA3OTg1NWMxZWRjZjdjNDExYzYzZGRlYWIwOWFjMjM4ZjJiN2Q5OTg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBGcmksIDIwIE1hciAyMDI2IDIzOjUyOjQyICswOTAwClN1YmplY3Q6IFtQQVRDSF0gSW1wbGVt ZW50IDEtc2xvdCBQUkVWL05FWFQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgUFJFVih2YWx1ZSBb LCBvZmZzZXRdKSBhbmQgTkVYVCh2YWx1ZSBbLCBvZmZzZXRdKSBuYXZpZ2F0aW9uCmZ1bmN0aW9u cyBmb3IgdXNlIGluIHRoZSBERUZJTkUgY2xhdXNlIG9mIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9u LgoKVGhlc2UgZnVuY3Rpb25zIHJldHVybiB0aGUgY29sdW1uIHZhbHVlIGF0IGEgcm93IG9mZnNl dCByb3dzCmJlZm9yZS9hZnRlciB0aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSBwYXJ0aXRpb24s IHJldHVybmluZyBOVUxMCmlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlv bi4gVGhlIG9mZnNldCBkZWZhdWx0cwp0byAxIGlmIG9taXR0ZWQ7IG9mZnNldD0wIHJlZmVycyB0 byB0aGUgY3VycmVudCByb3cgaXRzZWxmOwpOVUxMIG9yIG5lZ2F0aXZlIG9mZnNldCByYWlzZXMg YW4gZXJyb3IuCgpLZXkgZGVzaWduOiBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cyAzLXNsb3QgbW9k ZWwgKG91dGVyL3NjYW4vaW5uZXIpLAphIHNpbmdsZS1zbG90IHN3YXAgbW9kZWwgaXMgdXNlZC4g RUVPUF9SUFJfTkFWX1NFVCB0ZW1wb3JhcmlseQpyZXBsYWNlcyBlY3h0X291dGVydHVwbGUgd2l0 aCB0aGUgdGFyZ2V0IHJvdywgdGhlIGFyZ3VtZW50CmV4cHJlc3Npb24gZXZhbHVhdGVzIGFnYWlu c3QgaXQsIGFuZCBFRU9QX1JQUl9OQVZfUkVTVE9SRSByZXN0b3Jlcwp0aGUgb3JpZ2luYWwgc2xv dC4gVGhpcyBlbGltaW5hdGVzIHZhcm5vIHJld3JpdGluZyBhbmQgbmF0dXJhbGx5CnN1cHBvcnRz IGFyYml0cmFyeSBvZmZzZXRzLgoKQSBkZWRpY2F0ZWQgbmF2X3dpbm9iaiB3aXRoIGl0cyBvd24g dHVwbGVzdG9yZSByZWFkIHBvaW50ZXIgYXZvaWRzCmludGVyZmVyZW5jZSB3aXRoIGFnZ3JlZ2F0 ZSBwcm9jZXNzaW5nLiBBIG1hcmsgcG9pbnRlciBwaW5uZWQgYXQKcG9zaXRpb24gMCBwcmV2ZW50 cyB0dXBsZXN0b3JlIHRydW5jYXRpb24gc28gdGhhdCBQUkVWKGV4cHIsIE4pCmNhbiByZWFjaCBh bnkgcHJpb3Igcm93LgoKUlBSTmF2RXhwciBpcyBhIG5ldyBleHByZXNzaW9uIG5vZGUgdGhhdCBy ZXBsYWNlcyB0aGUgcHJldmlvdXMKYXBwcm9hY2ggb2YgaWRlbnRpZnlpbmcgUFJFVi9ORVhUIGJ5 IGZ1bmNpZC4gVGhlIHBhcnNlciB0cmFuc2Zvcm1zClBSRVYvTkVYVCBmdW5jdGlvbiBjYWxscyBp bnRvIFJQUk5hdkV4cHIgbm9kZXMgaW4gUGFyc2VGdW5jT3JDb2x1bW4oKS4KVmFsaWRhdGlvbiBp biBwYXJzZV9ycHIuYyByZWplY3RzIG5lc3RlZCBQUkVWL05FWFQsIHJlcXVpcmVzIGF0CmxlYXN0 IG9uZSBjb2x1bW4gcmVmZXJlbmNlIGluIHRoZSBmaXJzdCBhcmd1bWVudCwgYW5kIGVuc3VyZXMK dGhlIG9mZnNldCBpcyBhIHJ1bi10aW1lIGNvbnN0YW50LgoKUlBSTmF2S2luZCB1c2VzIHBsYWlu IGVudW0gdmFsdWVzIChub3QgLTEvKzEpIHNvIHRoYXQgRklSU1QvTEFTVApjYW4gYmUgYWRkZWQg bGF0ZXIgd2l0aG91dCBhcml0aG1ldGljIHRyaWNrcy4KCkxMVk0gSklUIGZhbGxzIGJhY2sgdG8g dGhlIGludGVycHJldGVyIGZvciBleHByZXNzaW9ucyBjb250YWluaW5nClJQUiBuYXZpZ2F0aW9u IG9wY29kZXMsIGJlY2F1c2UgSklUIGNvZGUgY2FjaGVzIHRoZSBvdXRlcnR1cGxlJ3MKdHRzX3Zh bHVlcy90dHNfaXNudWxsIHBvaW50ZXJzIGluIHRoZSBlbnRyeSBibG9jayBhbmQgdGhlCm1pZC1l eHByZXNzaW9uIHNsb3Qgc3dhcCBsZWF2ZXMgdGhlbSBzdGFsZS4gT25seSBERUZJTkUgY2xhdXNl CmV4cHJlc3Npb25zIHdpdGggUFJFVi9ORVhUIGFyZSBhZmZlY3RlZDsgb3RoZXIgZXhwcmVzc2lv bnMgaW4KdGhlIHNhbWUgcXVlcnkgYXJlIHN0aWxsIEpJVC1jb21waWxlZCBub3JtYWxseS4KLS0t CiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sICAgICAgICAgICAgfCAgMjIgKy0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA1NiArKwog c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgMTEwICsrKysK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICAgICAgICB8IDI0MyArKysr LS0tLQogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDQw ICsrCiBzcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgICAgICAgICAgfCAgIDIg Kwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDMzICsr CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgMzAgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAgICAgICB8ICA4NiArKysK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAxNiArCiBz cmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyAgICAgICAgICAgfCAgNTIgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMv aW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oICAgICAgICAgICAgICAgfCAgMTggKwogc3JjL2lu Y2x1ZGUvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5oICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAxMCArLQogc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgICAgICAgICB8IDU1MSArKysrKysrKysrKysrKysr Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0ICAgICAgICB8ICAgMiAr LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQgICAgIHwgIDgwICsr Kwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IHwgIDU3ICst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgICAgICAgICAgfCAzMjIgKysr KysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsICAgICAgICAgIHwg IDU2ICsrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAg IDMgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDE2NTUgaW5zZXJ0aW9ucygrKSwgMTc0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGFlMzZlMGYzMTM1Li4xYjli OTkzYTgxNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0zMDQsMTIgKzMwNCwx NyBAQAogICAgICAgICA8aW5kZXh0ZXJtPgogICAgICAgICAgPHByaW1hcnk+cHJldjwvcHJpbWFy eT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlvbj5wcmV2PC9mdW5jdGlv bj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ ICkKKyAgICAgICAgPGZ1bmN0aW9uPnByZXY8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8 L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZzZXQ8 L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKICAgICAgICAgPHJldHVybnZhbHVl PmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4K LSAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSBwcmV2aW91cyByb3c7Ci0g ICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBwcmV2aW91cyByb3cgaW4gdGhlIHdp bmRvdyBmcmFtZS4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cg PHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBiZWZvcmUgdGhlIGN1 cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOworICAgICAgICByZXR1cm5zIE5VTEwg aWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAgICAgICA8 cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAxIGlmIG9taXR0ZWQuCisg ICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3QgYmUgYSBub24tbmVnYXRp dmUgaW50ZWdlcjsKKyAgICAgICAgYW4gb2Zmc2V0IG9mIDAgcmVmZXJzIHRvIHRoZSBjdXJyZW50 IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qg bm90IGJlIE5VTEwuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIApAQCAt MzE4LDEyICszMjMsMTcgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5 Pm5leHQ8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJtPgotICAgICAgICA8ZnVuY3Rpb24+ bmV4dDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnll bGVtZW50PC90eXBlPiApCisgICAgICAgIDxmdW5jdGlvbj5uZXh0PC9mdW5jdGlvbj4gKCA8cGFy YW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+IFssIDxwYXJh bWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IDx0eXBlPmJpZ2ludDwvdHlwZT4gXSApCiAgICAgICAg IDxyZXR1cm52YWx1ZT5hbnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAg ICAgICAgPHBhcmE+Ci0gICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0aGUgbmV4 dCByb3c7Ci0gICAgICAgIHJldHVybnMgTlVMTCBpZiB0aGVyZSBpcyBubyBuZXh0IHJvdyBpbiB0 aGUgd2luZG93IGZyYW1lLgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhl IHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGFmdGVyIHRo ZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHdpbmRvdyBmcmFtZTsKKyAgICAgICAgcmV0dXJucyBO VUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHdpbmRvdyBmcmFtZS4KKyAgICAg ICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBpZiBvbWl0dGVk LgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5l Z2F0aXZlIGludGVnZXI7CisgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0byB0aGUgY3Vy cmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBt dXN0IG5vdCBiZSBOVUxMLgogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDc3MjI5MTQxYjM4Li5kYmVkNGY0OGEwZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMjIyLDYgKzEyMjIsNjIgQEAgRXhlY0luaXRFeHBy UmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJ Y2FzZSBUX1JQUk5hdkV4cHI6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBSUFIgbmF2aWdhdGlvbiBm dW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVkIGludG8KKwkJCQkgKiBFRU9QX1JQUl9O QVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFkIG9mCisJCQkJICog YSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlIHN3YXBzCisJCQkJICogZWN4 dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQgZXhwcmVzc2lvbgor CQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVkIHNsb3Qp LCBhbmQgdGhlCisJCQkJICogUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNs b3QuCisJCQkJICovCisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9kZTsK KwkJCQlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisKKwkJCQlBc3NlcnQoc3RhdGUtPnBhcmVu dCAmJiBJc0Eoc3RhdGUtPnBhcmVudCwgV2luZG93QWdnU3RhdGUpKTsKKwkJCQl3aW5zdGF0ZSA9 IChXaW5kb3dBZ2dTdGF0ZSAqKSBzdGF0ZS0+cGFyZW50OworCisJCQkJLyogRW1pdCBTRVQgb3Bj b2RlOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdyAqLworCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVP UF9SUFJfTkFWX1NFVDsKKwkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRl OworCQkJCXNjcmF0Y2guZC5ycHJfbmF2LmtpbmQgPSBuYXYtPmtpbmQ7CisKKwkJCQlpZiAobmF2 LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBBbGxvY2F0ZSBz dG9yYWdlIGZvciB0aGUgcnVudGltZSBvZmZzZXQgdmFsdWUuICBUaGUKKwkJCQkJICogb2Zmc2V0 IGV4cHJlc3Npb24gaXMgY29tcGlsZWQgYmVsb3cgc28gaXQgcnVucyBiZWZvcmUKKwkJCQkJICog RUVPUF9SUFJfTkFWX1NFVC4KKwkJCQkJICovCisJCQkJCURhdHVtCSAgICpvZmZzZXRfdmFsdWUg PSBwYWxsb2Nfb2JqZWN0KERhdHVtKTsKKwkJCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbCA9IHBh bGxvY19vYmplY3QoYm9vbCk7CisKKwkJCQkJLyogQ29tcGlsZSB0aGUgb2Zmc2V0IGV4cHJlc3Np b24gaW50byB0aGUgdGVtcCBzdG9yYWdlICovCisJCQkJCUV4ZWNJbml0RXhwclJlYyhuYXYtPm9m ZnNldF9hcmcsIHN0YXRlLAorCQkJCQkJCQkJb2Zmc2V0X3ZhbHVlLCBvZmZzZXRfaXNudWxsKTsK KworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWU7CisJ CQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF9pc251bGwgPSBvZmZzZXRfaXNudWxsOworCQkJ CX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUg PSBOVUxMOworCQkJCQlzY3JhdGNoLmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gTlVMTDsKKwkJ CQl9CisKKwkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwkJCQkvKiBD b21waWxlIHRoZSBhcmd1bWVudCBleHByZXNzaW9uIG5vcm1hbGx5ICovCisJCQkJRXhlY0luaXRF eHByUmVjKG5hdi0+YXJnLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJCQkvKiBFbWl0IFJF U1RPUkUgb3Bjb2RlOiByZXN0b3JlIG9yaWdpbmFsIHNsb3QgKi8KKwkJCQlzY3JhdGNoLm9wY29k ZSA9IEVFT1BfUlBSX05BVl9SRVNUT1JFOworCQkJCXNjcmF0Y2guZC5ycHJfbmF2LndpbnN0YXRl ID0gd2luc3RhdGU7CisJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJ CWJyZWFrOworCQkJfQorCiAJCWNhc2UgVF9GdW5jRXhwcjoKIAkJCXsKIAkJCQlGdW5jRXhwciAg ICpmdW5jID0gKEZ1bmNFeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRl cnAuYwppbmRleCAzYzQ4NDNjZGU4Ni4uZTQxZmFhOTViZTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTYsMTIgKzU2LDE0IEBACiAgKi8KICNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgogCisjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9oZWFw dG9hc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi ZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgor I2luY2x1ZGUgImV4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgi CiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWlzY25vZGVzLmgiCkBA IC01NzgsNiArNTgwLDggQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNv bnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1dJTkRPV19GVU5D LAogCQkmJkNBU0VfRUVPUF9NRVJHRV9TVVBQT1JUX0ZVTkMsCiAJCSYmQ0FTRV9FRU9QX1NVQlBM QU4sCisJCSYmQ0FTRV9FRU9QX1JQUl9OQVZfU0VULAorCQkmJkNBU0VfRUVPUF9SUFJfTkFWX1JF U1RPUkUsCiAJCSYmQ0FTRV9FRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJCSYmQ0FTRV9F RU9QX0FHR19ERVNFUklBTElaRSwKIAkJJiZDQVNFX0VFT1BfQUdHX1NUUklDVF9JTlBVVF9DSEVD S19BUkdTLApAQCAtMjAwNSw2ICsyMDA5LDI0IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAq c3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQo KTsKIAkJfQogCisJCS8qIFJQUiBuYXZpZ2F0aW9uOiBzd2FwIHNsb3QgdG8gdGFyZ2V0IHJvdyAq LworCQlFRU9fQ0FTRShFRU9QX1JQUl9OQVZfU0VUKQorCQl7CisJCQlFeGVjRXZhbFJQUk5hdlNl dChzdGF0ZSwgb3AsIGVjb250ZXh0KTsKKwkJCW91dGVyc2xvdCA9IGVjb250ZXh0LT5lY3h0X291 dGVydHVwbGU7CisKKwkJCUVFT19ORVhUKCk7CisJCX0KKworCQkvKiBSUFIgbmF2aWdhdGlvbjog cmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJvdyAqLworCQlFRU9fQ0FTRShFRU9QX1JQUl9OQVZf UkVTVE9SRSkKKwkJeworCQkJRXhlY0V2YWxSUFJOYXZSZXN0b3JlKHN0YXRlLCBvcCwgZWNvbnRl eHQpOworCQkJb3V0ZXJzbG90ID0gZWNvbnRleHQtPmVjeHRfb3V0ZXJ0dXBsZTsKKworCQkJRUVP X05FWFQoKTsKKwkJfQorCiAJCS8qIGV2YWx1YXRlIGEgc3RyaWN0IGFnZ3JlZ2F0ZSBkZXNlcmlh bGl6YXRpb24gZnVuY3Rpb24gKi8KIAkJRUVPX0NBU0UoRUVPUF9BR0dfU1RSSUNUX0RFU0VSSUFM SVpFKQogCQl7CkBAIC01OTE4LDMgKzU5NDAsOTEgQEAgRXhlY0FnZ1BsYWluVHJhbnNCeVJlZihB Z2dTdGF0ZSAqYWdnc3RhdGUsIEFnZ1N0YXRlUGVyVHJhbnMgcGVydHJhbnMsCiAKIAlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkQ29udGV4dCk7CiB9CisKKy8qCisgKiBFdmFsdWF0ZSBSUFIgUFJF Vi9ORVhUIG5hdmlnYXRpb246IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgorICoKKyAqIFNhdmVz IHRoZSBjdXJyZW50IG91dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVzdG9yZSwg Y29tcHV0ZXMKKyAqIHRoZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBjb3JyZXNw b25kaW5nIHNsb3QgZnJvbSB0aGUKKyAqIHR1cGxlc3RvcmUsIGFuZCByZXBsYWNlcyBlY29udGV4 dC0+ZWN4dF9vdXRlcnR1cGxlIHdpdGggaXQuCisgKgorICogVGhpcyBpcyBjYWxsZWQgYm90aCBm cm9tIHRoZSBpbnRlcnByZXRlciBpbmxpbmUgaGFuZGxlciBhbmQgZnJvbQorICogSklULWNvbXBp bGVkIGV4cHJlc3Npb25zIHZpYSBidWlsZF9FdmFsWEZ1bmMuCisgKi8KK3ZvaWQKK0V4ZWNFdmFs UlBSTmF2U2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0 ICplY29udGV4dCkKK3sKKwlXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUgPSBvcC0+ZC5ycHJfbmF2 LndpbnN0YXRlOworCWludDY0CQlvZmZzZXQ7CisJaW50NjQJCXRhcmdldF9wb3M7CisJVHVwbGVU YWJsZVNsb3QgKnRhcmdldF9zbG90OworCisJLyogU2F2ZSBjdXJyZW50IHNsb3QgZm9yIGxhdGVy IHJlc3RvcmUgKi8KKwl3aW5zdGF0ZS0+bmF2X3NhdmVkX291dGVydHVwbGUgPSBlY29udGV4dC0+ ZWN4dF9vdXRlcnR1cGxlOworCisJLyoKKwkgKiBEZXRlcm1pbmUgdGhlIHVuc2lnbmVkIG9mZnNl dC4gIEZvciAyLWFyZyBQUkVWL05FWFQgdGhlIG9mZnNldAorCSAqIGV4cHJlc3Npb24gaGFzIGFs cmVhZHkgYmVlbiBldmFsdWF0ZWQgaW50byBvZmZzZXRfdmFsdWUuICBOVUxMIG9yCisJICogbmVn YXRpdmUgb2Zmc2V0cyBhcmUgZXJyb3JzIHBlciB0aGUgU1FMIHN0YW5kYXJkIChJU08vSUVDIDkw NzUtMiwKKwkgKiBTdWJjbGF1c2UgNS42LjIpLgorCSAqLworCWlmIChvcC0+ZC5ycHJfbmF2Lm9m ZnNldF92YWx1ZSAhPSBOVUxMKQorCXsKKwkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251 bGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVf Tk9UX0FMTE9XRUQpLAorCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJl IG51bGwiKSkpOworCisJCW9mZnNldCA9IERhdHVtR2V0SW50NjQoKm9wLT5kLnJwcl9uYXYub2Zm c2V0X3ZhbHVlKTsKKworCQlpZiAob2Zmc2V0IDwgMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJybXNn KCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsKKwl9CisJZWxzZQor CQlvZmZzZXQgPSAxOworCisJLyoKKwkgKiBDYWxjdWxhdGUgdGFyZ2V0IHBvc2l0aW9uIGJhc2Vk IG9uIG5hdmlnYXRpb24gZGlyZWN0aW9uLiAgT24gb3ZlcmZsb3csCisJICogdXNlIC0xIHNvIHRo YXQgRXhlY1JQUk5hdkdldFNsb3QgdHJlYXRzIGl0IGFzIG91dCBvZiByYW5nZS4KKwkgKi8KKwlz d2l0Y2ggKG9wLT5kLnJwcl9uYXYua2luZCkKKwl7CisJCWNhc2UgUlBSX05BVl9QUkVWOgorCQkJ aWYgKHBnX3N1Yl9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9mZnNldCwgJnRh cmdldF9wb3MpKQorCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCWJyZWFrOworCQljYXNlIFJQUl9O QVZfTkVYVDoKKwkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9z LCBvZmZzZXQsICZ0YXJnZXRfcG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQlicmVhazsK Kwl9CisKKwkvKiBGZXRjaCB0YXJnZXQgcm93IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBp ZiBvdXQgb2YgcmFuZ2UpICovCisJdGFyZ2V0X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5z dGF0ZSwgdGFyZ2V0X3Bvcyk7CisKKwkvKgorCSAqIFVwZGF0ZSBlY29udGV4dCB0byBwb2ludCB0 byB0aGUgdGFyZ2V0IHNsb3QuICBBbHNvIGRlY29tcHJlc3MgdGhlIG5ldworCSAqIHNsb3QncyBh dHRyaWJ1dGVzIHNpbmNlIEZFVENIU09NRSBhbHJlYWR5IHJhbiBmb3IgdGhlIG9yaWdpbmFsIHNs b3QuCisJICogVGhlIGNhbGxlciAoaW50ZXJwcmV0ZXIgb3IgSklUKSBpcyByZXNwb25zaWJsZSBm b3IgdXBkYXRpbmcgYW55IGxvY2FsCisJICogc2xvdCBjYWNoZSAoZS5nLiBvdXRlcnNsb3QpIGZy b20gZWNvbnRleHQgYWZ0ZXIgd2UgcmV0dXJuLgorCSAqLworCXNsb3RfZ2V0YWxsYXR0cnModGFy Z2V0X3Nsb3QpOworCWVjb250ZXh0LT5lY3h0X291dGVydHVwbGUgPSB0YXJnZXRfc2xvdDsKK30K KworLyoKKyAqIEV2YWx1YXRlIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90 IHRvIG9yaWdpbmFsIHJvdy4KKyAqCisgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlIGZyb20gdGhlIHNhdmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBUaGUgY2FsbGVyIGlzIHJl c3BvbnNpYmxlIGZvciB1cGRhdGluZyBhbnkgbG9jYWwgc2xvdCBjYWNoZS4KKyAqLwordm9pZAor RXhlY0V2YWxSUFJOYXZSZXN0b3JlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3As CisJCQkJCSAgRXhwckNvbnRleHQgKmVjb250ZXh0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSA9IG9wLT5kLnJwcl9uYXYud2luc3RhdGU7CisKKwllY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlID0gd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVdpbmRvd0FnZy5jCmluZGV4IDAyMDJjNTA4MzIzLi40ZTY0M2RmOTRjZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgInV0 aWxzL2FjbC5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMv ZGF0dW0uaCIKLSNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2V4 cGFuZGVkZGF0dW0uaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlscy5oIgpAQCAtMTc3LDE0ICsxNzYsNiBAQCB0eXBlZGVmIHN0cnVjdCBXaW5k b3dTdGF0ZVBlckFnZ0RhdGEKIAlib29sCQlyZXN0YXJ0OwkJLyogbmVlZCB0byByZXN0YXJ0IHRo aXMgYWdnIGluIHRoaXMgY3ljbGU/ICovCiB9IFdpbmRvd1N0YXRlUGVyQWdnRGF0YTsKIAotLyoK LSAqIFN0cnVjdHVyZSB1c2VkIGJ5IGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKCkgYW5kIHJwcl9uYXZp Z2F0aW9uX3dhbGtlcigpLgotICovCi10eXBlZGVmIHN0cnVjdCBOYXZpZ2F0aW9uSW5mbwotewot CWJvb2wJCWlzX3ByZXY7CQkvKiB0cnVlIGlmIFBSRVYgKi8KLQlpbnQJCQludW1fdmFyczsJCS8q IG51bWJlciBvZiB2YXIgbm9kZXMgKi8KLX0gTmF2aWdhdGlvbkluZm87CiAKIHN0YXRpYyB2b2lk IGluaXRpYWxpemVfd2luZG93YWdncmVnYXRlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwKIAkJ CQkJCQkJCSAgIFdpbmRvd1N0YXRlUGVyRnVuYyBwZXJmdW5jc3RhdGUsCkBAIC0yNDMsOSArMjM0 LDYgQEAgc3RhdGljIHVpbnQ4IGdldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwK IAkJCQkJCQkgIGludDY0IHBvcywgaW50IGFyZ25vKTsKIHN0YXRpYyB2b2lkIHB1dF9ub3RudWxs X2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwKIAkJCQkJCQkgaW50NjQgcG9zLCBpbnQgYXJnbm8s IGJvb2wgaXNudWxsKTsKLXN0YXRpYyB2b2lkIGF0dG5vX21hcChOb2RlICpub2RlKTsKLXN0YXRp YyBib29sIGF0dG5vX21hcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7Ci0KIHN0 YXRpYyBib29sIHJwcl9pc19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSk7CiBzdGF0 aWMgaW50NjQgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50 NjQgcG9zKTsKIApAQCAtMjUzLDkgKzI0MSw2IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3JlZHVjZWRf ZnJhbWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyBpbnQJZ2V0X3JlZHVjZWRf ZnJhbWVfc3RhdHVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zKTsKIHN0YXRp YyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBv cyk7CiAKLXN0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZpZ2F0aW9uKE5vZGUgKm5vZGUsIGJvb2wg aXNfcHJldik7Ci1zdGF0aWMgYm9vbCBycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCk7Ci0KIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zIC0gTkZBIHJvdyBldmFs dWF0aW9uICovCiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5v YmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKQEAgLTEyODAsNiArMTI2NSwyNSBA QCBwcmVwYXJlX3R1cGxlc3RvcmUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl9CiAJfQog CisJLyogQ3JlYXRlIHJlYWQvbWFyayBwb2ludGVycyBmb3IgUlBSIG5hdmlnYXRpb24gaWYgbmVl ZGVkICovCisJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqKQorCXsKKwkJLyoKKwkJICogQWxsb2Nh dGUgYSBtYXJrIHBvaW50ZXIgcGlubmVkIGF0IHBvc2l0aW9uIDAgc28gdGhhdCB0aGUgdHVwbGVz dG9yZQorCQkgKiBuZXZlciB0cnVuY2F0ZXMgcm93cyB0aGF0IGEgUFJFVihleHByLCBOKSBtaWdo dCBuZWVkLgorCQkgKgorCQkgKiBYWFggVGhpcyByZXRhaW5zIHRoZSBlbnRpcmUgcGFydGl0aW9u IGluIHRoZSB0dXBsZXN0b3JlLiAgSWYgdGhlCisJCSAqIERFRklORSBjbGF1c2Ugb25seSB1c2Vz IFBSRVYvTkVYVCB3aXRoIHNtYWxsIGNvbnN0YW50IG9mZnNldHMsIHdlCisJCSAqIGNvdWxkIGFk dmFuY2UgdGhlIG1hcmsgdG8gKGN1cnJlbnRwb3MgLSBtYXhfb2Zmc2V0KSBpbnN0ZWFkLgorCQkg Ki8KKwkJd2luc3RhdGUtPm5hdl93aW5vYmotPm1hcmtwdHIgPQorCQkJdHVwbGVzdG9yZV9hbGxv Y19yZWFkX3BvaW50ZXIod2luc3RhdGUtPmJ1ZmZlciwgMCk7CisJCXdpbnN0YXRlLT5uYXZfd2lu b2JqLT5yZWFkcHRyID0KKwkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRl LT5idWZmZXIsCisJCQkJCQkJCQkJICBFWEVDX0ZMQUdfQkFDS1dBUkQpOworCQl3aW5zdGF0ZS0+ bmF2X3dpbm9iai0+bWFya3BvcyA9IDA7CisJfQorCiAJLyoKIAkgKiBJZiB3ZSBhcmUgaW4gUkFO R0Ugb3IgR1JPVVBTIG1vZGUsIHRoZW4gZGV0ZXJtaW5pbmcgZnJhbWUgYm91bmRhcmllcwogCSAq IHJlcXVpcmVzIHBoeXNpY2FsIGFjY2VzcyB0byB0aGUgZnJhbWUgZW5kcG9pbnQgcm93cywgZXhj ZXB0IGluIGNlcnRhaW4KQEAgLTEzOTEsNiArMTM5NSwxMyBAQCBiZWdpbl9wYXJ0aXRpb24oV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlKQogCQl3aW5zdGF0ZS0+YWdncmVnYXRlZHVwdG8gPSAwOwog CX0KIAorCS8qIHJlc2V0IG1hcmsgYW5kIHNlZWsgcG9zaXRpb25zIGZvciBSUFIgbmF2aWdhdGlv biAqLworCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaikKKwl7CisJCXdpbnN0YXRlLT5uYXZfd2lu b2JqLT5tYXJrcG9zID0gLTE7CisJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5zZWVrcG9zID0gLTE7 CisJfQorCiAJLyogcmVzZXQgbWFyayBhbmQgc2VlayBwb3NpdGlvbnMgZm9yIGVhY2ggcmVhbCB3 aW5kb3cgZnVuY3Rpb24gKi8KIAlmb3IgKGludCBpID0gMDsgaSA8IG51bWZ1bmNzOyBpKyspCiAJ ewpAQCAtMjcyNiwxNSArMjczNywxOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5v ZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT50ZW1wX3Nsb3RfMiA9 IEV4ZWNJbml0RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKIAkJCQkJCQkJCQkJCSAg ICZUVFNPcHNNaW5pbWFsVHVwbGUpOwogCi0Jd2luc3RhdGUtPnByZXZfc2xvdCA9IEV4ZWNJbml0 RXh0cmFUdXBsZVNsb3QoZXN0YXRlLCBzY2FuRGVzYywKLQkJCQkJCQkJCQkJCSAmVFRTT3BzTWlu aW1hbFR1cGxlKTsKKwlpZiAobm9kZS0+cnBQYXR0ZXJuICE9IE5VTEwpCisJeworCQl3aW5zdGF0 ZS0+bmF2X3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90KGVzdGF0ZSwgc2NhbkRlc2MsCisJ CQkJCQkJCQkJCQkJJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0YXRlLT5uYXZfc2xvdF9w b3MgPSAtMTsKIAotCXdpbnN0YXRlLT5uZXh0X3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVTbG90 KGVzdGF0ZSwgc2NhbkRlc2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJ CXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY0luaXRFeHRyYVR1cGxlU2xvdChlc3RhdGUs IHNjYW5EZXNjLAorCQkJCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7CisJCXdpbnN0 YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1cGxlKHdpbnN0YXRlLT5uYXZf bnVsbF9zbG90KTsKIAotCXdpbnN0YXRlLT5udWxsX3Nsb3QgPSBFeGVjSW5pdEV4dHJhVHVwbGVT bG90KGVzdGF0ZSwgc2NhbkRlc2MsCi0JCQkJCQkJCQkJCQkgJlRUU09wc01pbmltYWxUdXBsZSk7 Ci0Jd2luc3RhdGUtPm51bGxfc2xvdCA9IEV4ZWNTdG9yZUFsbE51bGxUdXBsZSh3aW5zdGF0ZS0+ bnVsbF9zbG90KTsKKwkJd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlID0gTlVMTDsKKwl9 CiAKIAkvKgogCSAqIGNyZWF0ZSBmcmFtZSBoZWFkIGFuZCB0YWlsIHNsb3RzIG9ubHkgaWYgbmVl ZGVkIChtdXN0IGNyZWF0ZSBzbG90cyBpbgpAQCAtMjkwNCw2ICsyOTE4LDIzIEBAIEV4ZWNJbml0 V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJ CXdpbnN0YXRlLT5hZ2dfd2lub2JqID0gYWdnX3dpbm9iajsKIAl9CiAKKwkvKgorCSAqIFNldCB1 cCBXaW5kb3dPYmplY3QgZm9yIFJQUiBuYXZpZ2F0aW9uIG9wY29kZXMuICBUaGlzIGlzIHNlcGFy YXRlIGZyb20KKwkgKiBhZ2dfd2lub2JqIGJlY2F1c2UgaXQgbmVlZHMgaXRzIG93biByZWFkIHBv aW50ZXIgdG8gYXZvaWQgaW50ZXJmZXJpbmcKKwkgKiB3aXRoIGFnZ3JlZ2F0ZSBwcm9jZXNzaW5n LgorCSAqLworCWlmIChub2RlLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7CisJCVdpbmRvd09iamVj dCBuYXZfd2lub2JqID0gbWFrZU5vZGUoV2luZG93T2JqZWN0RGF0YSk7CisKKwkJbmF2X3dpbm9i ai0+d2luc3RhdGUgPSB3aW5zdGF0ZTsKKwkJbmF2X3dpbm9iai0+YXJnc3RhdGVzID0gTklMOwor CQluYXZfd2lub2JqLT5sb2NhbG1lbSA9IE5VTEw7CisJCW5hdl93aW5vYmotPm1hcmtwdHIgPSAt MTsKKwkJbmF2X3dpbm9iai0+cmVhZHB0ciA9IC0xOworCQl3aW5zdGF0ZS0+bmF2X3dpbm9iaiA9 IG5hdl93aW5vYmo7CisJfQorCiAJLyogU2V0IHRoZSBzdGF0dXMgdG8gcnVubmluZyAqLwogCXdp bnN0YXRlLT5zdGF0dXMgPSBXSU5ET1dBR0dfUlVOOwogCkBAIC0yOTQ0LDcgKzI5NzUsOSBAQCBF eGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZs YWdzKQogCWlmIChub2RlLT5kZWZpbmVDbGF1c2UgIT0gTklMKQogCXsKIAkJLyoKLQkJICogVHdl YWsgYXJnIHZhciBvZiBQUkVWL05FWFQgc28gdGhhdCBpdCByZWZlcnMgdG8gc2Nhbi9pbm5lciBz bG90LgorCQkgKiBDb21waWxlIERFRklORSBjbGF1c2UgZXhwcmVzc2lvbnMuICBQUkVWL05FWFQg bmF2aWdhdGlvbiBpcyBoYW5kbGVkCisJCSAqIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBv cGNvZGVzIGVtaXR0ZWQgZHVyaW5nIEV4ZWNJbml0RXhwciwgc28KKwkJICogbm8gdmFybm8gcmV3 cml0aW5nIGlzIG5lZWRlZCBoZXJlLgogCQkgKi8KIAkJZm9yZWFjaChsLCBub2RlLT5kZWZpbmVD bGF1c2UpCiAJCXsKQEAgLTI5NTYsNyArMjk4OSw2IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRv d0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpCiAJCQl3aW5zdGF0ZS0+ZGVm aW5lVmFyaWFibGVMaXN0ID0KIAkJCQlsYXBwZW5kKHdpbnN0YXRlLT5kZWZpbmVWYXJpYWJsZUxp c3QsCiAJCQkJCQltYWtlU3RyaW5nKHBzdHJkdXAobmFtZSkpKTsKLQkJCWF0dG5vX21hcCgoTm9k ZSAqKSBleHByKTsKIAkJCWV4cHMgPSBFeGVjSW5pdEV4cHIoZXhwciwgKFBsYW5TdGF0ZSAqKSB3 aW5zdGF0ZSk7CiAJCQl3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCA9CiAJCQkJbGFwcGVuZCh3 aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCwgZXhwcyk7CkBAIC0yOTkxLDEwNyArMzAyMywzOCBA QCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQg ZWZsYWdzKQogfQogCiAvKgotICogUmV3cml0ZSB2YXJubyBvZiBWYXIgbm9kZXMgdGhhdCBhcmUg dGhlIGFyZ3VtZW50IG9mIFBSRVYvTkVUIHNvIHRoYXQgdGhleQotICogc2VlIHNjYW4gdHVwbGUg KFBSRVYpIG9yIGlubmVyIHR1cGxlIChORVhUKS4gIEFsc28gd2UgY2hlY2sgdGhlIGFyZ3VtZW50 cwotICogb2YgUFJFVi9ORVhUIGluY2x1ZGUgYXQgbGVhc3QgMSBjb2x1bW4gcmVmZXJlbmNlLiBU aGlzIGlzIHJlcXVpcmVkIGJ5IHRoZQotICogU1FMIHN0YW5kYXJkLgorICogRXhlY1JQUk5hdkdl dFNsb3QKKyAqCisgKiBGZXRjaCB0dXBsZSBhdCBnaXZlbiBwb3NpdGlvbiBmb3IgUlBSIG5hdmln YXRpb24gb3Bjb2Rlcy4KKyAqIFJldHVybnMgbmF2X3Nsb3Qgd2l0aCB0aGUgdHVwbGUgbG9hZGVk LCBvciBuYXZfbnVsbF9zbG90IGlmIG91dCBvZiByYW5nZS4KICAqLwotc3RhdGljIHZvaWQKLWF0 dG5vX21hcChOb2RlICpub2RlKQorVHVwbGVUYWJsZVNsb3QgKgorRXhlY1JQUk5hdkdldFNsb3Qo V2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MpCiB7Ci0JKHZvaWQpIGV4cHJlc3Np b25fdHJlZV93YWxrZXIobm9kZSwgYXR0bm9fbWFwX3dhbGtlciwgTlVMTCk7Ci19CisJV2luZG93 T2JqZWN0IHdpbm9iaiA9IHdpbnN0YXRlLT5uYXZfd2lub2JqOworCVR1cGxlVGFibGVTbG90ICpz bG90ID0gd2luc3RhdGUtPm5hdl9zbG90OwogCi1zdGF0aWMgYm9vbAotYXR0bm9fbWFwX3dhbGtl cihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQotewotCUZ1bmNFeHByICAgKmZ1bmM7Ci0JaW50 CQkJbmFyZ3M7Ci0JYm9vbAkJaXNfcHJldjsKKwlpZiAocG9zIDwgMCkKKwkJcmV0dXJuIHdpbnN0 YXRlLT5uYXZfbnVsbF9zbG90OwogCi0JaWYgKG5vZGUgPT0gTlVMTCkKLQkJcmV0dXJuIGZhbHNl OworCS8qCisJICogSWYgbmF2X3Nsb3QgYWxyZWFkeSBob2xkcyB0aGlzIHBvc2l0aW9uLCByZXR1 cm4gaXQgd2l0aG91dCByZS1mZXRjaGluZy4KKwkgKiBUaGlzIGlzIGNyaXRpY2FsIHdoZW4gbXVs dGlwbGUgUFJFVi9ORVhUIGNhbGxzIGluIHRoZSBzYW1lIGV4cHJlc3Npb24KKwkgKiBuYXZpZ2F0 ZSB0byB0aGUgc2FtZSByb3csIGJlY2F1c2UgcmUtZmV0Y2hpbmcgd291bGQgZnJlZSB0aGUgc2xv dCdzCisJICogdHVwbGUgbWVtb3J5IGFuZCBpbnZhbGlkYXRlIGFueSBwYXNzLWJ5LXJlZiBEYXR1 bSBwb2ludGVycyBmcm9tIGVhcmxpZXIKKwkgKiBuYXZpZ2F0aW9uIHJlc3VsdHMuCisJICovCisJ aWYgKHdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPT0gcG9zKQorCQlyZXR1cm4gc2xvdDsKIAotCWlm IChJc0Eobm9kZSwgRnVuY0V4cHIpKQorCWlmICghd2luZG93X2dldHR1cGxlc2xvdCh3aW5vYmos IHBvcywgc2xvdCkpCiAJewotCQlmdW5jID0gKEZ1bmNFeHByICopIG5vZGU7Ci0KLQkJaWYgKGZ1 bmMtPmZ1bmNpZCA9PSBGX1BSRVYgfHwgZnVuYy0+ZnVuY2lkID09IEZfTkVYVCkKLQkJewotCQkJ LyoKLQkJCSAqIFRoZSBTUUwgc3RhbmRhcmQgYWxsb3dzIHRvIGhhdmUgdHdvIG1vcmUgYXJndW1l bnRzIGZvcm0gb2YKLQkJCSAqIFBSRVYvTkVYVC4gIEJ1dCBjdXJyZW50bHkgd2UgYWxsb3cgb25s eSAxIGFyZ3VtZW50IGZvcm0uCi0JCQkgKi8KLQkJCW5hcmdzID0gbGlzdF9sZW5ndGgoZnVuYy0+ YXJncyk7Ci0JCQlpZiAobGlzdF9sZW5ndGgoZnVuYy0+YXJncykgIT0gMSkKLQkJCQllbG9nKEVS Uk9SLCAiUFJFVi9ORVhUIG11c3QgaGF2ZSAxIGFyZ3VtZW50IGJ1dCBmdW5jdGlvbiAlZCBoYXMg JWQgYXJncyIsCi0JCQkJCSBmdW5jLT5mdW5jaWQsIG5hcmdzKTsKLQotCQkJLyoKLQkJCSAqIENo ZWNrIGV4cHIgb2YgUFJFVi9ORVhUIGFydWd1bWVudHMgYW5kIHJlcGxhY2UgdmFybm8uCi0JCQkg Ki8KLQkJCWlzX3ByZXYgPSAoZnVuYy0+ZnVuY2lkID09IEZfUFJFVikgPyB0cnVlIDogZmFsc2U7 Ci0JCQljaGVja19ycHJfbmF2aWdhdGlvbihub2RlLCBpc19wcmV2KTsKLQkJfQorCQl3aW5zdGF0 ZS0+bmF2X3Nsb3RfcG9zID0gLTE7CisJCXJldHVybiB3aW5zdGF0ZS0+bmF2X251bGxfc2xvdDsK IAl9Ci0JcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgYXR0bm9fbWFwX3dhbGtl ciwgTlVMTCk7Ci19CiAKLS8qCi0gKiBSZXdyaXRlIHZhcm5vIG9mIFZhciBvZiBSUFIgbmF2aWdh dGlvbiBvcGVyYXRpb25zIChQUkVWL05FWFQpLgotICogSWYgaXNfcHJldiBpcyB0cnVlLCB3ZSB0 YWtlIGNhcmUgUFJFViwgb3RoZXJ3aXNlIE5FWFQuCi0gKi8KLXN0YXRpYyB2b2lkCi1jaGVja19y cHJfbmF2aWdhdGlvbihOb2RlICpub2RlLCBib29sIGlzX3ByZXYpCi17Ci0JTmF2aWdhdGlvbklu Zm8gY29udGV4dDsKLQotCWNvbnRleHQuaXNfcHJldiA9IGlzX3ByZXY7Ci0JY29udGV4dC5udW1f dmFycyA9IDA7Ci0JKHZvaWQpIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcnByX25hdmln YXRpb25fd2Fsa2VyLCAmY29udGV4dCk7Ci0JaWYgKGNvbnRleHQubnVtX3ZhcnMgPCAxKQotCQll cmVwb3J0KEVSUk9SLAotCQkJCWVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRp b24ncyBhcmd1bWVudCBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZlcmVuY2Ui KSk7Ci19Ci0KLXN0YXRpYyBib29sCi1ycHJfbmF2aWdhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwg dm9pZCAqY29udGV4dCkKLXsKLQlOYXZpZ2F0aW9uSW5mbyAqbmF2ID0gKE5hdmlnYXRpb25JbmZv ICopIGNvbnRleHQ7Ci0KLQlpZiAobm9kZSA9PSBOVUxMKQotCQlyZXR1cm4gZmFsc2U7Ci0KLQlz d2l0Y2ggKG5vZGVUYWcobm9kZSkpCi0JewotCQljYXNlIFRfVmFyOgotCQkJewotCQkJCVZhcgkJ ICAgKnZhciA9IChWYXIgKikgbm9kZTsKLQotCQkJCW5hdi0+bnVtX3ZhcnMrKzsKLQotCQkJCWlm IChuYXYtPmlzX3ByZXYpCi0JCQkJewotCQkJCQkvKgotCQkJCQkgKiBSZXdyaXRlIHZhcm5vIGZy b20gT1VURVJfVkFSIHRvIHJlZ3VsYXIgdmFyIG5vIHNvIHRoYXQKLQkJCQkJICogdGhlIHZhciBy ZWZlcmVuY2VzIHNjYW4gdHVwbGUuCi0JCQkJCSAqLwotCQkJCQl2YXItPnZhcm5vID0gdmFyLT52 YXJub3N5bjsKLQkJCQl9Ci0JCQkJZWxzZQotCQkJCQl2YXItPnZhcm5vID0gSU5ORVJfVkFSOwot CQkJfQotCQkJYnJlYWs7Ci0JCWNhc2UgVF9Db25zdDoKLQkJY2FzZSBUX0Z1bmNFeHByOgotCQlj YXNlIFRfT3BFeHByOgotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCWVyZXBvcnQoRVJST1Is Ci0JCQkJCWVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24ncyBhcmd1bWVu dCBpbmNsdWRlcyB1bnN1cHBvcnRlZCBleHByZXNzaW9uIikpOwotCX0KLQlyZXR1cm4gZXhwcmVz c2lvbl90cmVlX3dhbGtlcihub2RlLCBycHJfbmF2aWdhdGlvbl93YWxrZXIsIGNvbnRleHQpOwor CXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSBwb3M7CisJcmV0dXJuIHNsb3Q7CiB9CiAKIApAQCAt MzE1Miw4ICszMTE1LDggQEAgRXhlY1JlU2NhbldpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9k ZSkKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT5hZ2dfcm93X3Nsb3QpOwogCUV4ZWNDbGVhclR1cGxl KG5vZGUtPnRlbXBfc2xvdF8xKTsKIAlFeGVjQ2xlYXJUdXBsZShub2RlLT50ZW1wX3Nsb3RfMik7 Ci0JRXhlY0NsZWFyVHVwbGUobm9kZS0+cHJldl9zbG90KTsKLQlFeGVjQ2xlYXJUdXBsZShub2Rl LT5uZXh0X3Nsb3QpOworCWlmIChub2RlLT5uYXZfc2xvdCkKKwkJRXhlY0NsZWFyVHVwbGUobm9k ZS0+bmF2X3Nsb3QpOwogCWlmIChub2RlLT5mcmFtZWhlYWRfc2xvdCkKIAkJRXhlY0NsZWFyVHVw bGUobm9kZS0+ZnJhbWVoZWFkX3Nsb3QpOwogCWlmIChub2RlLT5mcmFtZXRhaWxfc2xvdCkKQEAg LTQyMTgsNiArNDE4MSwxMCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiBSZXR1cm5zIHRydWUgaWYg dGhlIHJvdyBleGlzdHMsIGZhbHNlIGlmIG91dCBvZiBwYXJ0aXRpb24uCiAgKiBJZiByb3cgZXhp c3RzLCBmaWxscyB2YXJNYXRjaGVkIGFycmF5LgogICogdmFyTWF0Y2hlZFtpXSA9IHRydWUgaWYg dmFyaWFibGUgaSBtYXRjaGVkIGF0IGN1cnJlbnQgcm93LgorICoKKyAqIFVzZXMgMS1zbG90IG1v ZGVsOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhlIGN1cnJlbnQgcm93LgorICog UFJFVi9ORVhUIG5hdmlnYXRpb24gaXMgaGFuZGxlZCBieSBFRU9QX1JQUl9OQVZfU0VUL1JFU1RP UkUgb3Bjb2RlcworICogZHVyaW5nIGV4cHJlc3Npb24gZXZhbHVhdGlvbiwgd2hpY2ggdGVtcG9y YXJpbHkgc3dhcCB0aGUgc2xvdC4KICAqLwogc3RhdGljIGJvb2wKIG5mYV9ldmFsdWF0ZV9yb3co V2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sICp2YXJNYXRjaGVkKQpAQCAtNDIy OCwzNyArNDE5NSwyNSBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmosIGlu dDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJCQl2YXJJ ZHggPSAwOwogCVR1cGxlVGFibGVTbG90ICpzbG90OworCWludDY0CQlzYXZlZF9wb3M7CiAKLQkv KgotCSAqIFNldCB1cCBzbG90cyBmb3IgY3VycmVudCwgcHJldmlvdXMsIGFuZCBuZXh0IHJvd3Mu IFdlIGRvbid0IGNhbGwKLQkgKiBnZXRfc2xvdHMoKSBoZXJlIHRvIGF2b2lkIHJlY3Vyc2lvbiB0 aHJvdWdoIHJvd19pc19pbl9mcmFtZSAtPgotCSAqIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lIC0+IEV4 ZWNSUFJQcm9jZXNzUm93LgotCSAqLwotCi0JLyogQ3VycmVudCByb3cgLT4gZWN4dF9vdXRlcnR1 cGxlICovCisJLyogRmV0Y2ggY3VycmVudCByb3cgaW50byB0ZW1wX3Nsb3RfMSAqLwogCXNsb3Qg PSB3aW5zdGF0ZS0+dGVtcF9zbG90XzE7CiAJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9i aiwgcG9zLCBzbG90KSkKIAkJcmV0dXJuIGZhbHNlOwkJCS8qIE5vIHJvdyBleGlzdHMgKi8KKwor CS8qIFNldCB1cCAxLXNsb3QgY29udGV4dDogb25seSBlY3h0X291dGVydHVwbGUgKi8KIAllY29u dGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKIAotCS8qIFByZXZpb3VzIHJvdyAtPiBlY3h0 X3NjYW50dXBsZSAoZm9yIFBSRVYpICovCi0JaWYgKHBvcyA+IDApCi0JewotCQlzbG90ID0gd2lu c3RhdGUtPnByZXZfc2xvdDsKLQkJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9z IC0gMSwgc2xvdCkpCi0JCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSB3aW5zdGF0ZS0+bnVs bF9zbG90OwotCQllbHNlCi0JCQllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzbG90OwotCX0K LQllbHNlCi0JCWVjb250ZXh0LT5lY3h0X3NjYW50dXBsZSA9IHdpbnN0YXRlLT5udWxsX3Nsb3Q7 CisJLyoKKwkgKiBTYXZlIGFuZCBzZXQgY3VycmVudHBvcyBzbyB0aGF0IEVFT1BfUlBSX05BVl9T RVQgb3Bjb2RlcyBjYW4gY2FsY3VsYXRlCisJICogdGFyZ2V0IHBvc2l0aW9ucyAoY3VycmVudHBv cyArLy0gb2Zmc2V0KS4KKwkgKi8KKwlzYXZlZF9wb3MgPSB3aW5zdGF0ZS0+Y3VycmVudHBvczsK Kwl3aW5zdGF0ZS0+Y3VycmVudHBvcyA9IHBvczsKIAotCS8qIE5leHQgcm93IC0+IGVjeHRfaW5u ZXJ0dXBsZSAoZm9yIE5FWFQpICovCi0Jc2xvdCA9IHdpbnN0YXRlLT5uZXh0X3Nsb3Q7Ci0JaWYg KCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgcG9zICsgMSwgc2xvdCkpCi0JCWVjb250ZXh0 LT5lY3h0X2lubmVydHVwbGUgPSB3aW5zdGF0ZS0+bnVsbF9zbG90OwotCWVsc2UKLQkJZWNvbnRl eHQtPmVjeHRfaW5uZXJ0dXBsZSA9IHNsb3Q7CisJLyogSW52YWxpZGF0ZSBuYXZfc2xvdCBjYWNo ZSBzbyBQUkVWL05FWFQgcmUtZmV0Y2ggZm9yIG5ldyByb3cgKi8KKwl3aW5zdGF0ZS0+bmF2X3Ns b3RfcG9zID0gLTE7CiAKIAlmb3JlYWNoKGxjLCB3aW5zdGF0ZS0+ZGVmaW5lQ2xhdXNlTGlzdCkK IAl7CkBAIC00Mjc2LDYgKzQyMzEsOCBAQCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3 aW5vYmosIGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCkKIAkJCWJyZWFrOwogCX0KIAorCXdp bnN0YXRlLT5jdXJyZW50cG9zID0gc2F2ZWRfcG9zOworCiAJcmV0dXJuIHRydWU7CQkJCS8qIFJv dyBleGlzdHMgKi8KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRleCA2NTBm MWQ0MmE5My4uZDE1OGUzN2U3YjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCkBA IC0yOTYsNiArMjk2LDQwIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJ CQkJCQkJCSAgIEZJRUxETk9fRVhQUkNPTlRFWFRfQUdHTlVMTFMsCiAJCQkJCQkJCSAgICJ2LmVj b250ZXh0LmFnZ251bGxzIik7CiAKKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9uIG9wY29kZXMgKFBS RVYvTkVYVCkgc3dhcCBlY3h0X291dGVydHVwbGUgdG8gYSBkaWZmZXJlbnQKKwkgKiByb3cgbWlk LWV4cHJlc3Npb24uICBUaGUgSklUIGNvZGUgbG9hZHMgdl9vdXRlcnZhbHVlcyBhbmQgdl9vdXRl cm51bGxzCisJICogb25jZSBpbiB0aGUgZW50cnkgYmxvY2sgYW5kIHJldXNlcyB0aGVtIGZvciBh bGwgRUVPUF9PVVRFUl9WQVIgc3RlcHMuCisJICogQWZ0ZXIgYSBzbG90IHN3YXAsIHRoZXNlIHBv aW50ZXJzIGJlY29tZSBzdGFsZSBiZWNhdXNlIHRoZSBuZXcgc2xvdCBoYXMKKwkgKiBpdHMgb3du IHR0c192YWx1ZXMvdHRzX2lzbnVsbCBhcnJheXMuICBGYWxsIGJhY2sgdG8gdGhlIGludGVycHJl dGVyIGZvcgorCSAqIHRoZXNlIGV4cHJlc3Npb25zLgorCSAqCisJICogWFhYIFRvIEpJVC1jb21w aWxlIHRoZXNlIGV4cHJlc3Npb25zIHByb3Blcmx5LCB0aGUgTkFWX1NFVCBhbmQKKwkgKiBOQVZf UkVTVE9SRSBoYW5kbGVycyB3b3VsZCBuZWVkIHRvIHJlbG9hZCB0aGUgdHRzX3ZhbHVlcyBhbmQg dHRzX2lzbnVsbAorCSAqIHBvaW50ZXJzIGZyb20gdGhlIG5ldyBzbG90LiAgSG93ZXZlciwgTExW TSB1c2VzIFNTQSAoU3RhdGljIFNpbmdsZQorCSAqIEFzc2lnbm1lbnQpIGZvcm0gd2hlcmUgZWFj aCB2YWx1ZSBpcyBkZWZpbmVkIGV4YWN0bHkgb25jZS4gIFdoZW4KKwkgKiBkaWZmZXJlbnQgYmFz aWMgYmxvY2tzIHByb2R1Y2UgZGlmZmVyZW50IHZhbHVlcyBmb3IgdGhlIHNhbWUgcG9pbnRlciwK KwkgKiBMTFZNIHJlcXVpcmVzIFBISSBub2RlcyBhdCB0aGUgbWVyZ2UgcG9pbnQgdG8gc2VsZWN0 IHRoZSBjb3JyZWN0IG9uZS4KKwkgKiBXaXRob3V0IHRoYXQgcGx1bWJpbmcsIE9VVEVSX1ZBUiBz dGVwcyBhZnRlciBhIHNsb3Qgc3dhcCB3b3VsZCByZWFkCisJICogZnJvbSB0aGUgd3JvbmcgcG9p bnRlci4KKwkgKi8KKwlpZiAocGFyZW50ICYmIElzQShwYXJlbnQsIFdpbmRvd0FnZ1N0YXRlKSAm JgorCQkoKFdpbmRvd0FnZyAqKSBwYXJlbnQtPnBsYW4pLT5ycFBhdHRlcm4gIT0gTlVMTCkKKwl7 CisJCWZvciAoaW50IG9wbm8gPSAwOyBvcG5vIDwgc3RhdGUtPnN0ZXBzX2xlbjsgb3BubysrKQor CQl7CisJCQlFeHByRXZhbE9wCW9wY29kZSA9IEV4ZWNFdmFsU3RlcE9wKHN0YXRlLCAmc3RhdGUt PnN0ZXBzW29wbm9dKTsKKworCQkJaWYgKG9wY29kZSA9PSBFRU9QX1JQUl9OQVZfU0VUIHx8CisJ CQkJb3Bjb2RlID09IEVFT1BfUlBSX05BVl9SRVNUT1JFKQorCQkJeworCQkJCUxMVk1EZWxldGVG dW5jdGlvbihldmFsX2ZuKTsKKwkJCQlMTFZNRGlzcG9zZUJ1aWxkZXIoYik7CisJCQkJcmV0dXJu IGZhbHNlOworCQkJfQorCQl9CisJfQorCiAJLyogYWxsb2NhdGUgYmxvY2tzIGZvciBlYWNoIG9w IHVwZnJvbnQsIHNvIHdlIGNhbiBkbyBqdW1wcyBlYXNpbHkgKi8KIAlvcGJsb2NrcyA9IHBhbGxv Y19hcnJheShMTFZNQmFzaWNCbG9ja1JlZiwgc3RhdGUtPnN0ZXBzX2xlbik7CiAJZm9yIChpbnQg b3BubyA9IDA7IG9wbm8gPCBzdGF0ZS0+c3RlcHNfbGVuOyBvcG5vKyspCkBAIC0yNDMyLDYgKzI0 NjYsMTIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkJCQlMTFZNQnVp bGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJyZWFrOwogCisJCQljYXNlIEVFT1Bf UlBSX05BVl9TRVQ6CisJCQljYXNlIEVFT1BfUlBSX05BVl9SRVNUT1JFOgorCQkJCS8qIHVucmVh Y2hhYmxlOiBmaWx0ZXJlZCBvdXQgYnkgdGhlIHByZS1zY2FuIGFib3ZlICovCisJCQkJQXNzZXJ0 KGZhbHNlKTsKKwkJCQlyZXR1cm4gZmFsc2U7CisKIAkJCWNhc2UgRUVPUF9BR0dfU1RSSUNUX0RF U0VSSUFMSVpFOgogCQkJY2FzZSBFRU9QX0FHR19ERVNFUklBTElaRToKIAkJCQl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMgYi9zcmMvYmFja2VuZC9q aXQvbGx2bS9sbHZtaml0X3R5cGVzLmMKaW5kZXggYzhhMWY4NDEyOTMuLmU3OGIzMWQ3NzVmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X3R5cGVzLmMKKysrIGIvc3Jj L2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF90eXBlcy5jCkBAIC0xNjgsNiArMTY4LDggQEAgdm9p ZAkgICAqcmVmZXJlbmNlZF9mdW5jdGlvbnNbXSA9CiAJRXhlY0V2YWxTY2FsYXJBcnJheU9wLAog CUV4ZWNFdmFsSGFzaGVkU2NhbGFyQXJyYXlPcCwKIAlFeGVjRXZhbFN1YlBsYW4sCisJRXhlY0V2 YWxSUFJOYXZTZXQsCisJRXhlY0V2YWxSUFJOYXZSZXN0b3JlLAogCUV4ZWNFdmFsU3lzVmFyLAog CUV4ZWNFdmFsV2hvbGVSb3dWYXIsCiAJRXhlY0V2YWxYbWxFeHByLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YwppbmRleCAxYWRkYTdjNWQ4NC4uZDJmMTk1ODQwNzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBA IC02OSw2ICs2OSw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJn ZVN1cHBvcnRGdW5jOgogCQkJdHlwZSA9ICgoY29uc3QgTWVyZ2VTdXBwb3J0RnVuYyAqKSBleHBy KS0+bXNmdHlwZTsKIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2RXhwcjoKKwkJCXR5cGUgPSAo KGNvbnN0IFJQUk5hdkV4cHIgKikgZXhwciktPnJlc3VsdHR5cGU7CisJCQlicmVhazsKIAkJY2Fz ZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCXR5cGUgPSAoKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAq KSBleHByKS0+cmVmcmVzdHlwZTsKIAkJCWJyZWFrOwpAQCAtODUzLDYgKzg1Niw5IEBAIGV4cHJD b2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX01lcmdlU3VwcG9ydEZ1bmM6CiAJ CQljb2xsID0gKChjb25zdCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xsaWQ7CiAJ CQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQljb2xsID0gKChjb25zdCBSUFJOYXZF eHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQ7CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlw dGluZ1JlZjoKIAkJCWNvbGwgPSAoKGNvbnN0IFN1YnNjcmlwdGluZ1JlZiAqKSBleHByKS0+cmVm Y29sbGlkOwogCQkJYnJlYWs7CkBAIC0xMTU0LDYgKzExNjAsOSBAQCBleHByU2V0Q29sbGF0aW9u KE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgog CQkJKChNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5tc2Zjb2xsaWQgPSBjb2xsYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1JQUk5hdkV4cHI6CisJCQkoKFJQUk5hdkV4cHIgKikgZXhwcikt PnJlc3VsdGNvbGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2NyaXB0 aW5nUmVmOgogCQkJKChTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmNvbGxpZCA9IGNvbGxh dGlvbjsKIAkJCWJyZWFrOwpAQCAtMTQyNiw2ICsxNDM1LDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0 IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9NZXJnZVN1cHBvcnRGdW5jOgogCQkJbG9jID0gKChjb25z dCBNZXJnZVN1cHBvcnRGdW5jICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOworCQljYXNl IFRfUlBSTmF2RXhwcjoKKwkJCWxvYyA9ICgoY29uc3QgUlBSTmF2RXhwciAqKSBleHByKS0+bG9j YXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX1N1YnNjcmlwdGluZ1JlZjoKIAkJCS8qIGp1c3Qg dXNlIGNvbnRhaW5lciBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRp b24oKE5vZGUgKikgKChjb25zdCBTdWJzY3JpcHRpbmdSZWYgKikgZXhwciktPnJlZmV4cHIpOwpA QCAtMjE4Nyw2ICsyMTk5LDE2IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfUlBSTmF2 RXhwcjoKKwkJCXsKKwkJCQlSUFJOYXZFeHByICpleHByID0gKFJQUk5hdkV4cHIgKikgbm9kZTsK KworCQkJCWlmIChXQUxLKGV4cHItPmFyZykpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChl eHByLT5vZmZzZXRfYXJnICYmIFdBTEsoZXhwci0+b2Zmc2V0X2FyZykpCisJCQkJCXJldHVybiB0 cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9TdWJzY3JpcHRpbmdSZWY6CiAJCQl7CiAJ CQkJU3Vic2NyaXB0aW5nUmVmICpzYnNyZWYgPSAoU3Vic2NyaXB0aW5nUmVmICopIG5vZGU7CkBA IC0zMTE2LDYgKzMxMzgsMTcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpu b2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7CisJCWNh c2UgVF9SUFJOYXZFeHByOgorCQkJeworCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHBy ICopIG5vZGU7CisJCQkJUlBSTmF2RXhwciAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25v ZGUsIG5hdiwgUlBSTmF2RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2LT5hcmcs IEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zmc2V0X2Fy ZywgRXhwciAqKTsKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFr OwogCQljYXNlIFRfU3Vic2NyaXB0aW5nUmVmOgogCQkJewogCQkJCVN1YnNjcmlwdGluZ1JlZiAq c2JzcmVmID0gKFN1YnNjcmlwdGluZ1JlZiAqKSBub2RlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMK aW5kZXggMjNiMDJmYjNiYzAuLmUxNGZmNGRjNDk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMK QEAgLTc2MCw3ICs3NjAsOCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUs IExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkvKiBuZXh0KCkgYW5kIHByZXYoKSBhcmUg b25seSBhbGxvd2VkIGluIGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KIAlpZiAoZmRyZXN1bHQg PT0gRlVOQ0RFVEFJTF9OT1JNQUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBFWFBSX0tJ TkRfUlBSX0RFRklORSAmJgotCQkoZnVuY2lkID09IEZfUFJFViB8fCBmdW5jaWQgPT0gRl9ORVhU KSkKKwkJKGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FO WUVMRU1FTlQgfHwKKwkJIGZ1bmNpZCA9PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8IGZ1bmNp ZCA9PSBGX05FWFRfQU5ZRUxFTUVOVF9JTlQ4KSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJIGVycm1zZygiJXMgY2FuIG9ubHkgYmUg dXNlZCBpbiBhIERFRklORSBjbGF1c2UiLApAQCAtNzY4LDcgKzc2OSwzMiBAQCBQYXJzZUZ1bmNP ckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywK IAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAKIAkvKiBidWls ZCB0aGUgYXBwcm9wcmlhdGUgb3V0cHV0IHN0cnVjdHVyZSAqLwotCWlmIChmZHJlc3VsdCA9PSBG VU5DREVUQUlMX05PUk1BTCB8fCBmZHJlc3VsdCA9PSBGVU5DREVUQUlMX1BST0NFRFVSRSkKKwlp ZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JNQUwgJiYKKwkJKGZ1bmNpZCA9PSBGX1BSRVZf QU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1bmNpZCA9 PSBGX1BSRVZfQU5ZRUxFTUVOVF9JTlQ4IHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxFTUVOVF9J TlQ4KSkKKwl7CisJCS8qCisJCSAqIFBSRVYoKSBhbmQgTkVYVCgpIGFyZSBjb21waWxlZCBpbnRv IEVFT1BfUlBSX05BVl9TRVQgLworCQkgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNvZGVzIGlu c3RlYWQgb2YgYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4KKwkJICogUmVwcmVzZW50IHRoZW0gYXMg UlBSTmF2RXhwciBub2RlcyBzbyB0aGF0IGxhdGVyIHN0YWdlcyBjYW4KKwkJICogaWRlbnRpZnkg dGhlbSB3aXRob3V0IHJlbHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25zLgorCQkgKi8KKwkJYm9v bAkJaXNfbmV4dCA9IChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKKwkJCQkJCQkgICBm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7CisJCWJvb2wJCWhhc19vZmZzZXQgPSAo ZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJCQkJICBmdW5jaWQgPT0g Rl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7CisJCVJQUk5hdkV4cHIgKm5hdmV4cHIgPSBtYWtlTm9k ZShSUFJOYXZFeHByKTsKKworCQluYXZleHByLT5raW5kID0gaXNfbmV4dCA/IFJQUl9OQVZfTkVY VCA6IFJQUl9OQVZfUFJFVjsKKwkJbmF2ZXhwci0+YXJnID0gKEV4cHIgKikgbGluaXRpYWwoZmFy Z3MpOworCQluYXZleHByLT5vZmZzZXRfYXJnID0gaGFzX29mZnNldCA/IChFeHByICopIGxzZWNv bmQoZmFyZ3MpIDogTlVMTDsKKwkJbmF2ZXhwci0+cmVzdWx0dHlwZSA9IHJldHR5cGU7CisJCS8q IHJlc3VsdGNvbGxpZCB3aWxsIGJlIHNldCBieSBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJbmF2ZXhw ci0+bG9jYXRpb24gPSBsb2NhdGlvbjsKKworCQlyZXR2YWwgPSAoTm9kZSAqKSBuYXZleHByOwor CX0KKwllbHNlIGlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCB8fCBmZHJlc3VsdCA9 PSBGVU5DREVUQUlMX1BST0NFRFVSRSkKIAl7CiAJCUZ1bmNFeHByICAgKmZ1bmNleHByID0gbWFr ZU5vZGUoRnVuY0V4cHIpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf cnByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKaW5kZXggZGIxMzA5Y2EzMTEu LjNmYjVkOTRhYmU5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCkBAIC00Miw2ICs0Miw4IEBAIHN0 YXRpYyB2b2lkIHZhbGlkYXRlUlBSUGF0dGVyblZhckNvdW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UlBSUGF0dGVybk5vZGUgKm5vZGUsCiAJCQkJCQkJCQkgICBMaXN0ICpycERlZnMsIExpc3QgKip2 YXJOYW1lcyk7CiBzdGF0aWMgTGlzdCAqdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywKIAkJCQkJCQkJICAgV2luZG93RGVmICp3aW5kZWYs IExpc3QgKip0YXJnZXRsaXN0KTsKK3N0YXRpYyB2b2lkIGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJO YXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBzdGF0ZSk7CitzdGF0aWMgYm9vbCBjaGVja19ycHJf bmF2X25lc3Rpbmdfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAvKgogICog dHJhbnNmb3JtUlBSCkBAIC00MTAsNiArNDEyLDEwIEBAIHRyYW5zZm9ybURlZmluZUNsYXVzZShQ YXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAog CWZvcmVhY2hfcHRyKFRhcmdldEVudHJ5LCB0ZSwgZGVmaW5lQ2xhdXNlKQogCQl0ZS0+ZXhwciA9 IChFeHByICopIGNvZXJjZV90b19ib29sZWFuKHBzdGF0ZSwgKE5vZGUgKikgdGUtPmV4cHIsICJE RUZJTkUiKTsKIAorCS8qIGNoZWNrIGZvciBuZXN0ZWQgUFJFVi9ORVhUIGFuZCBtaXNzaW5nIGNv bHVtbiByZWZlcmVuY2VzICovCisJZm9yZWFjaF9wdHIoVGFyZ2V0RW50cnksIHRlLCBkZWZpbmVD bGF1c2UpCisJCSh2b2lkKSBjaGVja19ycHJfbmF2X25lc3Rpbmdfd2Fsa2VyKChOb2RlICopIHRl LT5leHByLCBwc3RhdGUpOworCiAJLyogbWFyayBjb2x1bW4gb3JpZ2lucyAqLwogCW1hcmtUYXJn ZXRMaXN0T3JpZ2lucyhwc3RhdGUsIGRlZmluZUNsYXVzZSk7CiAKQEAgLTQxOCwzICs0MjQsODMg QEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNl ICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAKIAlyZXR1cm4gZGVmaW5lQ2xhdXNlOwogfQorCisv KgorICogY2hlY2tfcnByX25hdl9leHByCisgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhw ciBub2RlIGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZworICoJCXN1YnRyZWVzIGlu IGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwgbWlzc2lu ZworICoJCWNvbHVtbiByZWZlcmVuY2VzLCBhbmQgbm9uLWNvbnN0YW50IG9mZnNldCBleHByZXNz aW9ucy4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlib29sCQloYXNfbmF2OwkJLyogUlBSTmF2 RXhwciBmb3VuZCAobmVzdGluZykgKi8KKwlib29sCQloYXNfY29sdW1uX3JlZjsgLyogVmFyIGZv dW5kICovCit9CQkJTmF2Q2hlY2tSZXN1bHQ7CisKK3N0YXRpYyBib29sCituYXZfY2hlY2tfd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJTmF2Q2hlY2tSZXN1bHQgKnJlc3Vs dCA9IChOYXZDaGVja1Jlc3VsdCAqKSBjb250ZXh0OworCisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJ cmV0dXJuIGZhbHNlOworCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikpCisJCXJlc3VsdC0+aGFz X25hdiA9IHRydWU7CisJaWYgKElzQShub2RlLCBWYXIpKQorCQlyZXN1bHQtPmhhc19jb2x1bW5f cmVmID0gdHJ1ZTsKKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9j aGVja193YWxrZXIsIGNvbnRleHQpOworfQorCitzdGF0aWMgdm9pZAorY2hlY2tfcnByX25hdl9l eHByKFJQUk5hdkV4cHIgKm5hdiwgUGFyc2VTdGF0ZSAqcHN0YXRlKQoreworCU5hdkNoZWNrUmVz dWx0IHJlc3VsdDsKKworCS8qIENoZWNrIGFyZyBzdWJ0cmVlOiBuZXN0aW5nICsgY29sdW1uIHJl ZmVyZW5jZSBpbiBvbmUgd2FsayAqLworCW1lbXNldCgmcmVzdWx0LCAwLCBzaXplb2YocmVzdWx0 KSk7CisJKHZvaWQpIG5hdl9jaGVja193YWxrZXIoKE5vZGUgKikgbmF2LT5hcmcsICZyZXN1bHQp OworCisJaWYgKHJlc3VsdC5oYXNfbmF2KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJQUkVWIGFuZCBO RVhUIGNhbm5vdCBiZSBuZXN0ZWQiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bmF2LT5sb2NhdGlvbikpKTsKKwlpZiAoIXJlc3VsdC5oYXNfY29sdW1uX3JlZikKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1z ZygiYXJndW1lbnQgb2Ygcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNs dWRlIGF0IGxlYXN0IG9uZSBjb2x1bW4gcmVmZXJlbmNlIiksCisJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisKKwkvKiBDaGVjayBvZmZzZXRfYXJnOiBj b2x1bW4gcmVmICsgdm9sYXRpbGUgaW4gb25lIHdhbGsgKi8KKwlpZiAobmF2LT5vZmZzZXRfYXJn ICE9IE5VTEwpCisJeworCQltZW1zZXQoJnJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOworCQko dm9pZCkgbmF2X2NoZWNrX3dhbGtlcigoTm9kZSAqKSBuYXYtPm9mZnNldF9hcmcsICZyZXN1bHQp OworCisJCWlmIChyZXN1bHQuaGFzX2NvbHVtbl9yZWYgfHwKKwkJCWNvbnRhaW5fdm9sYXRpbGVf ZnVuY3Rpb25zKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZykpCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJt c2coIlBSRVYvTkVYVCBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50IiksCisJCQkJ CSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCX0KK30KKwor LyoKKyAqIGNoZWNrX3Jwcl9uYXZfbmVzdGluZ193YWxrZXIKKyAqCQlXYWxrIHRoZSBERUZJTkUg Y2xhdXNlIGV4cHJlc3Npb24gdHJlZSBhbmQgdmFsaWRhdGUgZWFjaCBSUFJOYXZFeHByLgorICov CitzdGF0aWMgYm9vbAorY2hlY2tfcnByX25hdl9uZXN0aW5nX3dhbGtlcihOb2RlICpub2RlLCB2 b2lkICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlp ZiAoSXNBKG5vZGUsIFJQUk5hdkV4cHIpKQorCXsKKwkJY2hlY2tfcnByX25hdl9leHByKChSUFJO YXZFeHByICopIG5vZGUsIChQYXJzZVN0YXRlICopIGNvbnRleHQpOworCQkvKiBkb24ndCByZWN1 cnNlIGludG8gYXJnOyBuZXN0aW5nIGFscmVhZHkgY2hlY2tlZCBhYm92ZSAqLworCQlyZXR1cm4g ZmFsc2U7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIGNoZWNrX3Jw cl9uYXZfbmVzdGluZ193YWxrZXIsIGNvbnRleHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCmluZGV4IGU5M2MwM2EzNTFjLi5hNGZlNzI1NjQ2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwpAQCAtMTAxMDMsNiArMTAxMDMsMjIgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpub2Rl LCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCQlnZXRfZnVuY19leHByKChGdW5jRXhwciAq KSBub2RlLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1JQ Uk5hdkV4cHI6CisJCQl7CisJCQkJUlBSTmF2RXhwciAqbmF2ID0gKFJQUk5hdkV4cHIgKikgbm9k ZTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLAorCQkJCQkJCQkJICAgbmF2LT5r aW5kID09IFJQUl9OQVZfUFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKKwkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCWlmIChu YXYtPm9mZnNldF9hcmcgIT0gTlVMTCkKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoYnVmLCAiLCAiKTsKKwkJCQkJZ2V0X3J1bGVfZXhwcigoTm9kZSAqKSBuYXYtPm9mZnNldF9h cmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJfQorCQkJCWFwcGVuZFN0cmluZ0luZm9D aGFyKGJ1ZiwgJyknKTsKKwkJCX0KKwkJCWJyZWFrOworCiAJCWNhc2UgVF9OYW1lZEFyZ0V4cHI6 CiAJCQl7CiAJCQkJTmFtZWRBcmdFeHByICpuYSA9IChOYW1lZEFyZ0V4cHIgKikgbm9kZTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKaW5kZXggNzRlZjEwOWY3MmUuLjA5MTI2MGQyY2Nl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzI2LDIyICs3MjYsNjIgQEAg d2luZG93X250aF92YWx1ZShQR19GVU5DVElPTl9BUkdTKQogCiAvKgogICogcHJldgotICogRHVt bXkgZnVuY3Rpb24gdG8gaW52b2tlIFJQUidzIG5hdmlnYXRpb24gb3BlcmF0b3IgIlBSRVYiLgot ICogVGhpcyBpcyAqbm90KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENhdGFsb2cgcGxhY2Vob2xk ZXIgZm9yIFJQUidzIFBSRVYgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqCisgKiBUaGUgcGFyc2Vy IHRyYW5zZm9ybXMgcHJldigpIGNhbGxzIGluc2lkZSBERUZJTkUgaW50byBSUFJOYXZFeHByIG5v ZGVzLAorICogc28gdGhpcyBmdW5jdGlvbiBpcyBuZXZlciByZWFjaGVkIGR1cmluZyBub3JtYWwg UlBSIGV4ZWN1dGlvbi4gIEl0IGV4aXN0cworICogb25seSBzbyB0aGF0IHRoZSBwYXJzZXIgY2Fu IHJlc29sdmUgdGhlIGZ1bmN0aW9uIG5hbWUgZnJvbSBwZ19wcm9jLgorICogQ2FsbHMgb3V0c2lk ZSBERUZJTkUgYXJlIHJlamVjdGVkIGJ5IHBhcnNlX2Z1bmMuYyAoRVhQUl9LSU5EX1JQUl9ERUZJ TkUKKyAqIGNoZWNrKS4gIFRoZSBlcnJvciBiZWxvdyBpcyBhIGRlZmVuc2l2ZSBtZWFzdXJlIGlu IGNhc2UgdGhhdCBjaGVjayBpcworICogYnlwYXNzZWQgKGUuZy4sIGRpcmVjdCBDLWxldmVsIGZ1 bmN0aW9uIGludm9jYXRpb24pLgogICovCiBEYXR1bQogd2luZG93X3ByZXYoUEdfRlVOQ1RJT05f QVJHUykKIHsKLQlQR19SRVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDApKTsKKwllcmVwb3J0 KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ IGVycm1zZygicHJldigpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsK KwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKIC8qCiAgKiBuZXh0 Ci0gKiBEdW1teSBmdW5jdGlvbiB0byBpbnZva2UgUlBSJ3MgbmF2aWdhdGlvbiBvcGVyYXRpb24g Ik5FWFQiLgotICogVGhpcyBpcyAqbm90KiBhIHdpbmRvdyBmdW5jdGlvbi4KKyAqIENhdGFsb2cg cGxhY2Vob2xkZXIgZm9yIFJQUidzIE5FWFQgbmF2aWdhdGlvbiBvcGVyYXRvci4KKyAqIFNlZSB3 aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgogICovCiBEYXR1bQogd2luZG93X25leHQoUEdfRlVO Q1RJT05fQVJHUykKIHsKLQlQR19SRVRVUk5fREFUVU0oUEdfR0VUQVJHX0RBVFVNKDApKTsKKwll cmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJIGVycm1zZygibmV4dCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNl IikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisKKy8qCisg KiBwcmV2KHZhbHVlLCBvZmZzZXQpCisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBQ UkVWIG5hdmlnYXRpb24gb3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYo KSBmb3IgZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19wcmV2X29mZnNldChQR19GVU5DVElP Tl9BUkdTKQoreworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNlZCBpbiBh IERFRklORSBjbGF1c2UiKSkpOworCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyogbm90IHJlYWNoZWQg Ki8KK30KKworLyoKKyAqIG5leHQodmFsdWUsIG9mZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xk ZXIgZm9yIFJQUidzIE5FWFQgbmF2aWdhdGlvbiBvcGVyYXRvciB3aXRoIG9mZnNldC4KKyAqIFNl ZSB3aW5kb3dfcHJldigpIGZvciBkZXRhaWxzLgorICovCitEYXR1bQord2luZG93X25leHRfb2Zm c2V0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2RlKEVS UkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25s eSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkv KiBub3QgcmVhY2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w cm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggZGRmOTIyZDE2 ZDcuLjhlOTUxNjliN2IwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2Mu ZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTEwOTc1LDkgKzEw OTc1LDE1IEBACiB7IG9pZCA9PiAnODEyNicsIGRlc2NyID0+ICdwcmV2aW91cyB2YWx1ZScsCiAg IHByb25hbWUgPT4gJ3ByZXYnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Fu eWVsZW1lbnQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxlbWVudCcsIHByb3NyYyA9PiAnd2lu ZG93X3ByZXYnIH0sCit7IG9pZCA9PiAnODEyOCcsIGRlc2NyID0+ICdwcmV2aW91cyB2YWx1ZSBh dCBvZmZzZXQnLAorICBwcm9uYW1lID0+ICdwcmV2JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9p c3N0cmljdCA9PiAnZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBl cyA9PiAnYW55ZWxlbWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfcHJldl9vZmZzZXQnIH0s CiB7IG9pZCA9PiAnODEyNycsIGRlc2NyID0+ICduZXh0IHZhbHVlJywKICAgcHJvbmFtZSA9PiAn bmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCiAg IHByb2FyZ3R5cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfbmV4dCcgfSwK K3sgb2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKKyAgcHJv bmFtZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBw cm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQg aW50OCcsIHByb3NyYyA9PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAogCiAjIGZ1bmN0aW9ucyBm b3IgcmFuZ2UgdHlwZXMKIHsgb2lkID0+ICczODMyJywgZGVzY3IgPT4gJ0kvTycsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaAppbmRleCBhYTliMzYxZmEzMS4uZmFjMzdjOTY4OTYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaApAQCAtMjc0LDYgKzI3NCwxMCBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxP cAogCUVFT1BfTUVSR0VfU1VQUE9SVF9GVU5DLAogCUVFT1BfU1VCUExBTiwKIAorCS8qIHJvdyBw YXR0ZXJuIG5hdmlnYXRpb24gKFJQUiBQUkVWL05FWFQpICovCisJRUVPUF9SUFJfTkFWX1NFVCwK KwlFRU9QX1JQUl9OQVZfUkVTVE9SRSwKKwogCS8qIGFnZ3JlZ2F0aW9uIHJlbGF0ZWQgbm9kZXMg Ki8KIAlFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkUsCiAJRUVPUF9BR0dfREVTRVJJQUxJWkUs CkBAIC02OTEsNiArNjk1LDE2IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJU3Vi UGxhblN0YXRlICpzc3RhdGU7CiAJCX0JCQlzdWJwbGFuOwogCisJCS8qIGZvciBFRU9QX1JQUl9O QVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgKi8KKwkJc3RydWN0CisJCXsKKwkJCVdpbmRv d0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBvciBORVhU ICovCisJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBvZmZzZXQg dmFsdWUsIG9yCisJCQkJCQkJCQkJICogTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVs bDsJLyogMi1hcmc6IHJ1bnRpbWUgb2Zmc2V0IG51bGwgZmxhZyAqLworCQl9CQkJcnByX25hdjsK KwogCQkvKiBmb3IgRUVPUF9BR0dfKkRFU0VSSUFMSVpFICovCiAJCXN0cnVjdAogCQl7CkBAIC04 OTgsNiArOTEyLDEwIEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFsTWVyZ2VTdXBwb3J0RnVuYyhFeHBy U3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQkJIEV4cHJDb250ZXh0ICpl Y29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbFN1YlBsYW4oRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQlFeHByQ29udGV4dCAqZWNvbnRleHQpOworZXh0ZXJu IHZvaWQgRXhlY0V2YWxSUFJOYXZTZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpv cCwKKwkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVjRXZh bFJQUk5hdlJlc3RvcmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJ CQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxXaG9sZVJv d1ZhcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCQkJCQkJCQlFeHByQ29u dGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxTeXNWYXIoRXhwclN0YXRlICpz dGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L25vZGVXaW5kb3dBZ2cuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaApp bmRleCBhZGE0YTFjNDU4Yy4uZjZmNjY0NTEzMWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL25vZGVXaW5kb3dBZ2cuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlV2lu ZG93QWdnLmgKQEAgLTIwLDQgKzIwLDcgQEAgZXh0ZXJuIFdpbmRvd0FnZ1N0YXRlICpFeGVjSW5p dFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWYKIGV4dGVy biB2b2lkIEV4ZWNFbmRXaW5kb3dBZ2coV2luZG93QWdnU3RhdGUgKm5vZGUpOwogZXh0ZXJuIHZv aWQgRXhlY1JlU2NhbldpbmRvd0FnZyhXaW5kb3dBZ2dTdGF0ZSAqbm9kZSk7CiAKKy8qIFJQUiBu YXZpZ2F0aW9uIHN1cHBvcnQgZm9yIGV4cHJlc3Npb24gZXZhbHVhdGlvbiBvcGNvZGVzICovCitl eHRlcm4gVHVwbGVUYWJsZVNsb3QgKkV4ZWNSUFJOYXZHZXRTbG90KFdpbmRvd0FnZ1N0YXRlICp3 aW5zdGF0ZSwgaW50NjQgcG9zKTsKKwogI2VuZGlmCQkJCQkJCS8qIE5PREVXSU5ET1dBR0dfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBjNjcyZDI5ZjM1Yi4uNzRhNmI2ODIxMzIgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCkBAIC0yNjkxLDEwICsyNjkxLDEyIEBAIHR5cGVkZWYgc3RydWN0IFdp bmRvd0FnZ1N0YXRlCiAJVHVwbGVUYWJsZVNsb3QgKnRlbXBfc2xvdF8xOwogCVR1cGxlVGFibGVT bG90ICp0ZW1wX3Nsb3RfMjsKIAotCS8qIHRlbXBvcmFyeSBzbG90cyBmb3IgUlBSICovCi0JVHVw bGVUYWJsZVNsb3QgKnByZXZfc2xvdDsJLyogUFJFViByb3cgbmF2aWdhdGlvbiBvcGVyYXRvciAq LwotCVR1cGxlVGFibGVTbG90ICpuZXh0X3Nsb3Q7CS8qIE5FWFQgcm93IG5hdmlnYXRpb24gb3Bl cmF0b3IgKi8KLQlUdXBsZVRhYmxlU2xvdCAqbnVsbF9zbG90OwkvKiBhbGwgTlVMTCBzbG90ICov CisJLyogUlBSIG5hdmlnYXRpb24gKi8KKwlzdHJ1Y3QgV2luZG93T2JqZWN0RGF0YSAqbmF2X3dp bm9iajsJLyogd2lub2JqIGZvciBSUFIgbmF2IGZldGNoICovCisJaW50NjQJCW5hdl9zbG90X3Bv czsJLyogcG9zaXRpb24gY2FjaGVkIGluIG5hdl9zbG90LCBvciAtMSAqLworCVR1cGxlVGFibGVT bG90ICpuYXZfc2xvdDsJLyogc2xvdCBmb3IgUFJFVi9ORVhUIHRhcmdldCByb3cgKi8KKwlUdXBs ZVRhYmxlU2xvdCAqbmF2X3NhdmVkX291dGVydHVwbGU7CS8qIHNhdmVkIHNsb3QgZHVyaW5nIG5h diBzd2FwICovCisJVHVwbGVUYWJsZVNsb3QgKm5hdl9udWxsX3Nsb3Q7CS8qIGFsbCBOVUxMIHNs b3QgKi8KIAogCS8qIFJQUiBjdXJyZW50IG1hdGNoIHJlc3VsdCAqLwogCWJvb2wJCXJwcl9tYXRj aF92YWxpZDsJLyogdHJ1ZSBpZiBhIG1hdGNoIHJlc3VsdCBpcyBzZXQgKi8KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmgKaW5kZXggZjViNmI0NTY2NGEuLjk0NzIzYTNiOTA5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMu aApAQCAtNjQ4LDYgKzY0OCwzNyBAQCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dGdW5jUnVuQ29uZGl0 aW9uCiAJRXhwcgkgICAqYXJnOwogfSBXaW5kb3dGdW5jUnVuQ29uZGl0aW9uOwogCisvKgorICog UlBSTmF2RXhwcgorICoKKyAqIFJlcHJlc2VudHMgYSBQUkVWKCkgb3IgTkVYVCgpIG5hdmlnYXRp b24gY2FsbCBpbiBhbiBSUFIgREVGSU5FIGNsYXVzZS4KKyAqIEF0IGV4cHJlc3Npb24gY29tcGls ZSB0aW1lIHRoaXMgaXMgdHJhbnNsYXRlZCBpbnRvIEVFT1BfUlBSX05BVl9TRVQgLworICogRUVP UF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyByYXRoZXIgdGhhbiBhIG5vcm1hbCBmdW5jdGlvbiBj YWxsLgorICoKKyAqIGtpbmQ6ICAgICAgIFJQUl9OQVZfUFJFViBvciBSUFJfTkFWX05FWFQKKyAq IGFyZzogICAgICAgIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhlIHRhcmdl dCByb3cKKyAqIG9mZnNldF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHByZXNzaW9u ICgyLWFyZyBmb3JtKTsgTlVMTCBmb3IKKyAqICAgICAgICAgICAgIHRoZSAxLWFyZyBmb3JtIHdo aWNoIHVzZXMgYW4gaW1wbGljaXQgb2Zmc2V0IG9mIDEKKyAqLwordHlwZWRlZiBlbnVtIFJQUk5h dktpbmQKK3sKKwlSUFJfTkFWX1BSRVYsCisJUlBSX05BVl9ORVhULAorfSBSUFJOYXZLaW5kOwor Cit0eXBlZGVmIHN0cnVjdCBSUFJOYXZFeHByCit7CisJRXhwcgkJeHByOworCVJQUk5hdktpbmQJ a2luZDsJCQkvKiBQUkVWIG9yIE5FWFQgKi8KKwlFeHByCSAgICphcmc7CQkJLyogYXJndW1lbnQg ZXhwcmVzc2lvbiAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lv biwgb3IgTlVMTCBmb3IgMS1hcmcgZm9ybSAqLworCU9pZAkJCXJlc3VsdHR5cGU7CQkvKiByZXN1 bHQgdHlwZSAoc2FtZSBhcyBhcmcncyB0eXBlKSAqLworCS8qIE9JRCBvZiBjb2xsYXRpb24gb2Yg cmVzdWx0ICovCisJT2lkCQkJcmVzdWx0Y29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVf aWdub3JlKTsKKwkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLworCVBhcnNl TG9jCWxvY2F0aW9uOworfSBSUFJOYXZFeHByOworCiAvKgogICogTWVyZ2VTdXBwb3J0RnVuYwog ICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAppbmRleCBlNzIxNzEwNTBjNy4uZDU4NmUxN2Uw YTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKQEAgLTEwMTgsNiArMTAxOCw1NTUgQEAg V0lORE9XIHcgQVMgKAogICA1IHwgICAgIDAuMSB8ICAgICAwCiAoNSByb3dzKQogCistLQorLS0g RXJyb3IgY2FzZXM6IFBSRVYvTkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCistLSBQUkVWIG91 dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CitFUlJP UjogIHByZXYgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VM RUNUIHByZXYocHJpY2UpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBORVhUIG91 dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CitFUlJP UjogIG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VM RUNUIG5leHQocHJpY2UpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCistLSBOZXN0ZWQg UFJFVgorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFT IHByaWNlID4gUFJFVihQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fu bm90IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYo cHJpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBOZXN0ZWQgTkVY VAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g QlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHBy aWNlID4gTkVYVChORVhUKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90 IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKE5FWFQocHJp Y2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVWIG5lc3RlZCBp bnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQ QVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQorICAgIERFRklO RSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHByaWNlKSkKKyk7CitFUlJPUjogIFBSRVYgYW5kIE5F WFQgY2Fubm90IGJlIG5lc3RlZAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhU KFBSRVYocHJpY2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLSBQUkVW IG5lc3RlZCBpbnNpZGUgZXhwcmVzc2lvbiBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00g c3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwK KyAgICBQQVRURVJOIChBKQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSAqIFBS RVYocHJpY2UpKQorKTsKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitM SU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UgKiBQUkVWKHByaWNlKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gVHJpcGxlIG5lc3Rpbmc6IGVy cm9yIHJlcG9ydGVkIGF0IG91dGVybW9zdCBQUkVWCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYoUFJFVihwcmljZSkp KQorKTsKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitMSU5FIDc6ICAg ICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNlKSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4gUFJFVi9O RVhUIGFyZ3VtZW50CistLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4gcmVmZXJl bmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElP TiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMg UFJFVigxKSA+IDAKKyk7CitFUlJPUjogIGFyZ3VtZW50IG9mIHJvdyBwYXR0ZXJuIG5hdmlnYXRp b24gb3BlcmF0aW9uIG11c3QgaW5jbHVkZSBhdCBsZWFzdCBvbmUgY29sdW1uIHJlZmVyZW5jZQor TElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJFVigxKSA+IDAKKyAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIE5FWFQoMSArIDIpOiBjb25zdGFudCBleHByZXNzaW9uLCBubyBjb2x1bW4gcmVm ZXJlbmNlCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgTkVYVCgxICsgMikgPiAwCispOworRVJST1I6ICBhcmd1bWVudCBvZiByb3cgcGF0dGVybiBu YXZpZ2F0aW9uIG9wZXJhdGlvbiBtdXN0IGluY2x1ZGUgYXQgbGVhc3Qgb25lIGNvbHVtbiByZWZl cmVuY2UKK0xJTkUgNzogICAgIERFRklORSBBIEFTIE5FWFQoMSArIDIpID4gMAorICAgICAgICAg ICAgICAgICAgICAgICAgXgorLS0gMi1hcmcgZm9ybTogUFJFVigxLCAxKTogY29uc3RhbnQgZXhw cmVzc2lvbiBhcyBmaXJzdCBhcmcKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBB UyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkK KyAgICBERUZJTkUgQSBBUyBQUkVWKDEsIDEpID4gMAorKTsKK0VSUk9SOiAgYXJndW1lbnQgb2Yg cm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVzdCBpbmNsdWRlIGF0IGxlYXN0IG9u ZSBjb2x1bW4gcmVmZXJlbmNlCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKDEsIDEpID4g MAorICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNldDogY29s dW1uIHJlZmVyZW5jZSBhcyBvZmZzZXQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAo QSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBwcmljZSkgPiAwCispOworRVJST1I6ICBQ UkVWL05FWFQgb2Zmc2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3OiAgICAg REVGSU5FIEEgQVMgUFJFVihwcmljZSwgcHJpY2UpID4gMAorICAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0gTm9uLWNvbnN0YW50IG9mZnNldDogdm9sYXRpbGUgZnVuY3Rpb24gYXMgb2Zmc2V0 CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBC WSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJF VihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAwCispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0 IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudAorTElORSA3OiAgICAgREVGSU5FIEEgQVMgUFJF VihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBOb24tY29uc3RhbnQgb2Zmc2V0OiBzdWJxdWVyeSBhcyBvZmZzZXQKK1NFTEVDVCBwcmljZSBG Uk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklU SUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAoU0VMRUNU IDEpKSA+IDAKKyk7CitFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGSU5FIGV4cHJl c3Npb24KK0xJTkUgNzogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIChTRUxFQ1QgMSkpID4g MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRmlyc3QgYXJnOiBz dWJxdWVyeSAoY2F1Z2h0IGJ5IERFRklORS1sZXZlbCBzdWJxdWVyeSByZXN0cmljdGlvbikKK1NF TEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHBy aWNlICsgKFNFTEVDVCAxKSkgPiAwCispOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGlu IERFRklORSBleHByZXNzaW9uCitMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlICsg KFNFTEVDVCAxKSkgPiAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor LS0gRmlyc3QgYXJnOiB2b2xhdGlsZSBmdW5jdGlvbiBpcyBhbGxvd2VkIChldmFsdWF0ZWQgb24g dGFyZ2V0IHJvdykKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3Rf dmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBP VkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFu eSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJp Y2UgKyByYW5kb20oKSAqIDApID49IDAKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNvbXBh bnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAg IDEzMCB8ICAgICA5CisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAw Ny0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAgMTMw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIw MjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDEzMDAgfCAgICAgOQor IGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8ICAg IDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3 LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0KKy0tIDItYXJnIFBSRVYvTkVY VDogZnVuY3Rpb25hbCB0ZXN0cworLS0KKy0tIFBSRVYocHJpY2UsIDIpOiBtYXRjaCByb3dzIHdo ZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJvd3MgYmFjaworLS0gc3RvY2s6IDEwMCwgOTAs IDgwLCA5NSwgMTEwCistLSBQYXR0ZXJuIChBIEIrKTogQT1hbnksIEIgd2hlcmUgcHJpY2UgPiBQ UkVWKHByaWNlLCAyKQorLS0gQXQgcG9zIDIgKDgwKTogQSBtYXRjaGVzLiBwb3MgMyAoOTUpOiA5 NSA+IFBSRVYoOTUsMik9OTAgVFJVRS4KKy0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw b3MgNCAoMTEwKTogMTEwID4gUFJFVigxMTAsMik9ODAgVFJVRS4gTWF0Y2ghCitTRUxFQ1QgY29t cGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxh c3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMg cHJpY2UgPiBQUkVWKHByaWNlLCAyKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBwcmlj ZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tCisgY29tcGFu eTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAgICAyMDAgfCAgICAgICAg MTUwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0yMDIzIHwgICAxNDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8 ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3 LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAg ICAgMworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0xMC0yMDIzIHwgICAxMzAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAy MyB8ICAgIDUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgICAgMTUwMCB8ICAgICAyCisg Y29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNi0yMDIzIHwgICAg NjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDct MjAyMyB8ICAxMTAwIHwgICAgICAgIDExMDAgfCAgICAgICAxMjAwIHwgICAgIDMKKyBjb21wYW55 MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBORVhUKHByaWNlLCAyKTogbWF0 Y2ggcm93cyB3aGVyZSBjdXJyZW50IHByaWNlID4gcHJpY2UgMiByb3dzIGFoZWFkCistLSBwb3Mg MCAoMTAwKTogTkVYVCgxMDAsMik9ODAsIDEwMD44MCBUUlVFLiBwb3MgMSAoOTApOiBORVhUKDkw LDIpPTk1LCA5MD45NSBGQUxTRS4gTWF0Y2ggZW5kcy4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwg cHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSwgMikKKyk7CisgY29tcGFueSAgfCAgIHRk YXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLQorIGNvbXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAg MjAwIHwgICAgICAgIDIwMCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAy MyB8ICAgMTQwIHwgICAgICAgICAxNDAgfCAgICAgICAgMTUwIHwgICAgIDIKKyBjb21wYW55MSB8 IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisg Y29tcGFueTEgfCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAx MjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAt MjAyMyB8ICAgMTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgMjAwMCB8ICAgICAgIDIw MDAgfCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAg ICAgICAxNDAwIHwgICAgICAgMTUwMCB8ICAgICAyCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwg IDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDct MDYtMjAyMyB8ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAg ICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gRXhwcmVz c2lvbnMgaW5zaWRlIFBSRVYvTkVYVCBhcmc6IGV4cHIgaXMgZXZhbHVhdGVkIG9uIHRhcmdldCBy b3cKKy0tIFBSRVYocHJpY2UgLSA1MCwgMSk6IGZldGNoZXMgKHByaWNlIC0gNTApIGZyb20gMSBy b3cgYmFjaworU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwKKyAgICAgICBmaXJzdF92YWx1 ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGNvdW50KCopIE9WRVIg dworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9S REVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVW KHByaWNlIC0gNTAsIDEpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmly c3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3 LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTEgfCAwNy0wMi0yMDIzIHwgICAyMDAgfCAgICAgICAgIDIwMCB8ICAgICAgICAyMDAgfCAg ICAgMQorIGNvbXBhbnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAg MTQwIHwgICAgICAgIDE1MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAy MyB8ICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8 IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMCB8ICAgICA0Cisg Y29tcGFueTEgfCAwNy0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAg fCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAg ICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAg NTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDIt MjAyMyB8ICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAyMDAwIHwgICAgIDEKKyBjb21wYW55 MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAw CisgY29tcGFueTIgfCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgIDE1MDAg fCAgICAgICAxNTAwIHwgICAgIDEKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwg IDExMDAgfCAgICAgICAgMTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDct MDgtMjAyMyB8ICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAwCisgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgMTMwMCB8ICAgICAg IDEzMDAgfCAgICAgMQorKDIwIHJvd3MpCisKKy0tIE5FWFQocHJpY2UgKiAyLCAxKTogZmV0Y2hl cyAocHJpY2UgKiAyKSBmcm9tIDEgcm93IGFoZWFkCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBwcmljZSA8IE5FWFQocHJpY2UgKiAyLCAxKQorKTsKKyBjb21wYW55ICB8ICAg dGRhdGUgICAgfCBwcmljZSB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tCisgY29tcGFueTEgfCAwNy0wMS0yMDIzIHwgICAxMDAgfCAgICAgICAgIDEwMCB8ICAg ICAgICAxMjAgfCAgICAgOQorIGNvbXBhbnkxIHwgMDctMDItMjAyMyB8ICAgMjAwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1 MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNC0y MDIzIHwgICAxNDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMDUtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNy0yMDIzIHwgICAxMTAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgMTMwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAg IDEyMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0x MC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDEtMjAyMyB8ICAgIDUwIHwgICAgICAgICAgNTAgfCAgICAgICAxNDAwIHwgICAg IDQKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMy0yMDIzIHwgIDE1MDAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAxNDAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMg fCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0wNi0yMDIzIHwgICAgNjAgfCAgICAgICAgICA2MCB8ICAgICAgIDEyMDAgfCAgICAgNAorIGNv bXBhbnkyIHwgMDctMDctMjAyMyB8ICAxMTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wOS0yMDIzIHwgIDEyMDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAxMzAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBMYXJn ZSBvZmZzZXQ6IFBSRVYodmFsLCA5OTkpIG9uIDEwMDAtcm93IHNlcmllcyBtYXRjaGVzIG9ubHkg bGFzdCByb3cKKy0tIE5FWFQodmFsLCA5OTkpIG1hdGNoZXMgb25seSBmaXJzdCByb3cKK1NFTEVD VCB2YWwsIGZpcnN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodmFsLCA5 OTkpID0gMQorKQorT1JERVIgQlkgdmFsIERFU0MgTElNSVQgMzsKKyB2YWwgIHwgZmlyc3RfdmFs dWUgfCBsYXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLQorIDEwMDAgfCAgICAgICAgMTAwMCB8ICAgICAgIDEwMDAgfCAgICAgMQorICA5 OTkgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorICA5OTggfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93cykKKworU0VMRUNUIHZhbCwgZmlyc3RfdmFs dWUodmFsKSBPVkVSIHcsIGxhc3RfdmFsdWUodmFsKSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdwor RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwMCkgQVMgdCh2YWwpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVCh2YWwsIDk5OSkgPSAxMDAwCispCitM SU1JVCAzOworIHZhbCB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgMSB8ICAgICAgICAgICAxIHwg ICAgICAgICAgMSB8ICAgICAxCisgICAyIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyAgIDMgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDMgcm93cykKKwor LS0gUFJFVihwcmljZSwgMCk6IG9mZnNldCAwIG1lYW5zIGN1cnJlbnQgcm93LCBhbHdheXMgZXF1 YWwgdG8gcHJpY2UKKy0tIEErIG1hdGNoZXMgZW50aXJlIHBhcnRpdGlvbiBhcyBvbmUgZ3JvdXA7 IGNvdW50ID0gcGFydGl0aW9uIHNpemUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisg ICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIDApID0gcHJpY2UKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwg cHJpY2UgfCBmaXJzdF92YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIGNv bXBhbnkxIHwgMDctMDEtMjAyMyB8ICAgMTAwIHwgICAgICAgICAxMDAgfCAgICAgICAgMTMwIHwg ICAgMTAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAxNTAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDQtMjAyMyB8ICAgMTQw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIw MjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEg fCAwNy0wNi0yMDIzIHwgICAgOTAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkxIHwgMDctMDctMjAyMyB8ICAgMTEwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAxMjAgfCAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMTAtMjAyMyB8ICAg MTMwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAx LTIwMjMgfCAgICA1MCB8ICAgICAgICAgIDUwIHwgICAgICAgMTMwMCB8ICAgIDEwCisgY29tcGFu eTIgfCAwNy0wMi0yMDIzIHwgIDIwMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorIGNvbXBhbnkyIHwgMDctMDMtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgIDE1MDAgfCAg ICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDYtMjAyMyB8 ICAgIDYwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29t cGFueTIgfCAwNy0wOC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAg ICAgMAorIGNvbXBhbnkyIHwgMDctMDktMjAyMyB8ICAxMjAwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAg ICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKworLS0gMi1hcmcgUFJFVi9ORVhU IG91dHNpZGUgREVGSU5FIGNsYXVzZQorU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7 CitFUlJPUjogIHByZXYgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUg MTogU0VMRUNUIHByZXYocHJpY2UsIDIpIEZST00gc3RvY2s7CisgICAgICAgICAgICAgICBeCitT RUxFQ1QgbmV4dChwcmljZSwgMikgRlJPTSBzdG9jazsKK0VSUk9SOiAgbmV4dCBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgbmV4dChwcmljZSwgMikg RlJPTSBzdG9jazsKKyAgICAgICAgICAgICAgIF4KKy0tIDItYXJnIFBSRVYvTkVYVDogbmVnYXRp dmUgb2Zmc2V0CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNv bXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVW KHByaWNlLCAtMSkgSVMgTk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVz dCBub3QgYmUgbmVnYXRpdmUKKy0tIDItYXJnIFBSRVYvTkVYVDogTlVMTCBvZmZzZXQgKHR5cGVk KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIg dworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9S REVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwg TlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVz dCBub3QgYmUgbnVsbAorLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9mZnNldCAodW50eXBlZCkK K1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcK K0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRF UiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5V TEwpIElTIE5PVCBOVUxMCispOworRVJST1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJl IG51bGwKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSBuZWdhdGl2ZSBhbmQgTlVM TAorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRh dGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cg dyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJO IChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNV VEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBu b3QgYmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0VSUk9SOiAg UFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9v ZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBleHByZXNzaW9u ICgwICsgJDEpCitQUkVQQVJFIHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21w YW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sK K1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCArICQx KQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CitFUlJPUjogIFBSRVYvTkVYVCBv ZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxM KTsKK0VSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRF IHRlc3RfcHJldl9vZmZzZXQ7CistLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zm c2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJh Y2sgYW5kIDItYmFjayB2YWx1ZXMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAg ICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBj b3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04g QlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAg ICAgICAgQiBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2Us IDIpCispOworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBs YXN0X3ZhbHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAg IDEwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0w Mi0yMDIzIHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAg ICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMg fCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAgICAgIDEzMCB8ICAgICAyCisgY29tcGFueTEgfCAw Ny0wOC0yMDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNv bXBhbnkxIHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAg ICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAw IHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIw MjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wNC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAor IGNvbXBhbnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwg ICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAg ICAgMTEwMCB8ICAgICAgIDEzMDAgfCAgICAgMgorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAx MzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5 LTIwMjMgfCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFu eTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAorKDIwIHJvd3MpCisKKy0tIDItYXJnOiBQUkVWIGFuZCBORVhUIHdpdGggZXhwbGljaXQgb2Zm c2V0cyBpbiBzYW1lIERFRklORSBjbGF1c2UKKy0tIEE6IHByaWNlIGV4Y2VlZHMgMS1iYWNrIGFu ZCBpcyBiZWxvdyAxLWFoZWFkIChhc2NlbmRpbmcgaW50ZXJpb3IgcG9pbnQpCitTRUxFQ1QgY29t cGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxh c3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUg QSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA8IE5FWFQocHJpY2UsIDEpCisp OworIGNvbXBhbnkgIHwgICB0ZGF0ZSAgICB8IHByaWNlIHwgZmlyc3RfdmFsdWUgfCBsYXN0X3Zh bHVlIHwgY291bnQgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8 ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wMi0yMDIz IHwgICAyMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwg MDctMDMtMjAyMyB8ICAgMTUwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8 ICAgICAwCisgY29tcGFueTEgfCAwNy0wNS0yMDIzIHwgICAxNTAgfCAgICAgICAgICAgICB8ICAg ICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDYtMjAyMyB8ICAgIDkwIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDEx MCB8ICAgICAgICAgMTEwIHwgICAgICAgIDExMCB8ICAgICAxCisgY29tcGFueTEgfCAwNy0wOC0y MDIzIHwgICAxMzAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkx IHwgMDctMDktMjAyMyB8ICAgMTIwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAgICAg ICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wMS0yMDIzIHwgICAgNTAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDItMjAyMyB8ICAyMDAwIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAg MTUwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0w NC0yMDIzIHwgIDE0MDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkyIHwgMDctMDUtMjAyMyB8ICAxNTAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNy0yMDIzIHwgIDExMDAgfCAgICAgICAgMTEw MCB8ICAgICAgIDExMDAgfCAgICAgMQorIGNvbXBhbnkyIHwgMDctMDgtMjAyMyB8ICAxMzAwIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMg fCAgMTIwMCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAw Ny0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorKDIw IHJvd3MpCisKIC0tCiAtLSBTS0lQIFRPIC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkK IC0tCkBAIC0xNDc5LDcgKzIwMjgsNyBAQCBjb3VudCgqKSBPVkVSIHcKICgxNCByb3dzKQogCiAt LSBSZVNjYW4gdGVzdDogTEFURVJBTCBqb2luIGZvcmNlcyBXaW5kb3dBZ2cgcmVzY2FuIHdpdGgg UlBSCi0tLSBUZXN0cyBFeGVjUmVTY2FuV2luZG93QWdnIGNsZWFyaW5nIHByZXZfc2xvdC9uZXh0 X3Nsb3QKKy0tIFRlc3RzIEV4ZWNSZVNjYW5XaW5kb3dBZ2cgY2xlYXJpbmcgbmF2X3Nsb3QKIFNF TEVDVCBnLngsIHN1Yi4qCiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnKHgpLAogTEFURVJB TCAoCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CmluZGV4IDY1MjYzNjVkZDZh Li4zN2FhODFlYmRlYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf YmFzZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKQEAg LTIyNzMsNyArMjI3Myw3IEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9xdW90 ZWQnOjpyZWdjbGFzcyk7CiAgICBQQVRURVJOICgiU3RhcnQiICJVcCIrKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgIERFRklORSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKwogICAgIlN0YXJ0IiBBUyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCi0gICAiVXAiIEFTICh2YWwgPiBwcmV2KHZhbCkp ICk7CisgICAiVXAiIEFTICh2YWwgPiBQUkVWKHZhbCkpICk7CiAoMSByb3cpCiAKIC0tIE1hdGVy aWFsaXplZCB2aWV3IChpZiBzdXBwb3J0ZWQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2V4cGxhaW4ub3V0CmluZGV4IGE2OGVjNjFlMTBmLi5kYzMwNzVlNmJkMyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM4NDcsNiArMzg0Nyw4NiBAQCBX SU5ET1cgdyBBUyAoCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICg4IHJvd3MpCiAKKy0tIFVzaW5nIDEtYXJnIFBS RVYgKGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBBUwor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHMo dikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQ QVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIg QVMgdiA+IFBSRVYodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJy YXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBsaW5lIFdI RVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAgICAgICAgICBsaW5lICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAor ICAgREVGSU5FCisgICBiIEFTICh2ID4gUFJFVih2KSkgKTsKKygzIHJvd3MpCisKKy0tIFVzaW5n IDEtYXJnIE5FWFQgKGltcGxpY2l0IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9u ZXh0MSBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MzApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBS T1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisg ICAgICAgIEIgQVMgdiA8IE5FWFQodikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJp bmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9ldl9uYXZfbmV4dDEnKSwgRSdcbicpKSBB UyBsaW5lIFdIRVJFIGxpbmUgfiAnUEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKyAgICAgICAg ICBsaW5lICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4g KGEgYispIAorICAgREVGSU5FCisgICBiIEFTICh2IDwgTkVYVCh2KSkgKTsKKygzIHJvd3MpCisK Ky0tIFVzaW5nIDItYXJnIFBSRVYgKGV4cGxpY2l0IG9mZnNldCkKK0NSRUFURSBWSUVXIHJwcl9l dl9uYXZfcHJldjIgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDMwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyBU UlVFLAorICAgICAgICBCIEFTIHYgPiBQUkVWKHYsIDIpCispOworU0VMRUNUIGxpbmUgRlJPTSB1 bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfbmF2X3ByZXYyJyks IEUnXG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk58REVGSU5FfFBSRVZ8TkVYVCc7 CisgICAgICAgICAgICAgICAgIGxpbmUgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGEgYispIAorICAgREVGSU5FCisg ICBiIEFTICh2ID4gUFJFVih2LCAoMik6OmJpZ2ludCkpICk7CisoMyByb3dzKQorCistLSBVc2lu ZyAyLWFyZyBORVhUIChleHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25l eHQyIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAz MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJP VworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAg ICAgICAgQiBBUyB2IDwgTkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0 cmluZ190b19hcnJheShwZ19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBFJ1xuJykp IEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworICAgICAg ICAgICAgICAgICBsaW5lICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICBQQVRURVJOIChhIGIrKSAKKyAgIERFRklORQorICAgYiBBUyAo diA8IE5FWFQodiwgKDIpOjpiaWdpbnQpKSApOworKDMgcm93cykKKwogLS0gVXNpbmcgTlVMTCBj b21wYXJpc29ucwogQ1JFQVRFIFZJRVcgcnByX2V2X2RlZl9udWxsIEFTCiBTRUxFQ1QgY291bnQo KikgT1ZFUiB3CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRl Z3JhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5v dXQKaW5kZXggMGVlNjEyYjc0ZmIuLmY5ZjcwYTgxNGNhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9pbnRlZ3JhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CkBAIC0xMDI2LDI3ICsxMDI2LDY2IEBAIFdJ TkRPVyB3IEFTIChPUkRFUiBCWSBpZAogICAgIFBBVFRFUk4gKEEgQispCiAgICAgREVGSU5FIEIg QVMgdmFsID4gUFJFVih2YWwsICQxKSkKIE9SREVSIEJZIGlkOwotRVJST1I6ICBmdW5jdGlvbiBw cmV2KGludGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4aXN0Ci1MSU5FIDc6ICAgICBERUZJTkUg QiBBUyB2YWwgPiBQUkVWKHZhbCwgJDEpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgotREVUQUlMOiAgTm8gZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFjY2VwdHMgdGhlIGdpdmVuIG51 bWJlciBvZiBhcmd1bWVudHMuCiAtLSBDdXN0b20gcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgcmVz b2x2ZWQgdG8gdGhlIGxpdGVyYWwgMS4KIFNFVCBwbGFuX2NhY2hlX21vZGUgPSBmb3JjZV9jdXN0 b21fcGxhbjsKIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKLUVSUk9S OiAgcHJlcGFyZWQgc3RhdGVtZW50ICJycHJfcHJldiIgZG9lcyBub3QgZXhpc3QKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSBiKworICAgLT4gIFNvcnQKKyAgICAgICAg IFNvcnQgS2V5OiBpZAorICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZworKDYgcm93 cykKKwogRVhFQ1VURSBycHJfcHJldigxKTsKLUVSUk9SOiAgcHJlcGFyZWQgc3RhdGVtZW50ICJy cHJfcHJldiIgZG9lcyBub3QgZXhpc3QKKyBpZCB8IHZhbCB8IGNudCAKKy0tLS0rLS0tLS0rLS0t LS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisgIDMgfCAgMTUgfCAgIDIKKyAg NCB8ICAyNSB8ICAgMAorICA1IHwgICA1IHwgICAzCisgIDYgfCAgMzAgfCAgIDAKKyAgNyB8ICAz NSB8ICAgMAorICA4IHwgIDIwIHwgICAzCisgIDkgfCAgNDAgfCAgIDAKKyAxMCB8ICA0NSB8ICAg MAorKDEwIHJvd3MpCisKIC0tIEdlbmVyaWMgcGxhbjogTmF2IE1hcmsgTG9va2JhY2sgZGVmZXJy ZWQgdG8gZXhlY3V0aW9uLCBzaG93biBhcwogLS0gInJ1bnRpbWUiIGluIHRoZSBwbGFuLiAgUmVz dWx0IG11c3QgbWF0Y2ggdGhlIGN1c3RvbS1wbGFuIHJlc3VsdAogLS0gZXhhY3RseS4KIFNFVCBw bGFuX2NhY2hlX21vZGUgPSBmb3JjZV9nZW5lcmljX3BsYW47CiBFWFBMQUlOIChDT1NUUyBPRkYp IEVYRUNVVEUgcnByX3ByZXYoMSk7Ci1FUlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3By ZXYiIGRvZXMgbm90IGV4aXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46 IGEgYisKKyAgIC0+ICBTb3J0CisgICAgICAgICBTb3J0IEtleTogaWQKKyAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfaW50ZWcKKyg2IHJvd3MpCisKIEVYRUNVVEUgcnByX3ByZXYoMSk7Ci1F UlJPUjogIHByZXBhcmVkIHN0YXRlbWVudCAicnByX3ByZXYiIGRvZXMgbm90IGV4aXN0CisgaWQg fCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDIKKyAgMiB8ICAy MCB8ICAgMAorICAzIHwgIDE1IHwgICAyCisgIDQgfCAgMjUgfCAgIDAKKyAgNSB8ICAgNSB8ICAg MworICA2IHwgIDMwIHwgICAwCisgIDcgfCAgMzUgfCAgIDAKKyAgOCB8ICAyMCB8ICAgMworICA5 IHwgIDQwIHwgICAwCisgMTAgfCAgNDUgfCAgIDAKKygxMCByb3dzKQorCiBSRVNFVCBwbGFuX2Nh Y2hlX21vZGU7CiBERUFMTE9DQVRFIHJwcl9wcmV2OwotRVJST1I6ICBwcmVwYXJlZCBzdGF0ZW1l bnQgInJwcl9wcmV2IiBkb2VzIG5vdCBleGlzdAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBCNS4gUlBSICsgUGFydGl0 aW9uZWQgdGFibGUKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggOTU3OTRkNDA5ZTEuLjUw NDQ3NmEyYjAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTQ0MCw2ICs0NDAsMzI2IEBAIFdJTkRP VyB3IEFTICgKICAgQiBBUyB2YWwgPiBQUkVWKHZhbCkgKiAwLjk5CiApOwogCistLQorLS0gRXJy b3IgY2FzZXM6IFBSRVYvTkVYVCB1c2FnZSByZXN0cmljdGlvbnMKKy0tCisKKy0tIFBSRVYgb3V0 c2lkZSBERUZJTkUgY2xhdXNlCitTRUxFQ1QgcHJldihwcmljZSkgRlJPTSBzdG9jazsKKworLS0g TkVYVCBvdXRzaWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBuZXh0KHByaWNlKSBGUk9NIHN0b2Nr OworCistLSBOZXN0ZWQgUFJFVgorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3IEFT ICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChBKQor ICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihQUkVWKHByaWNlKSkKKyk7CisKKy0tIE5lc3Rl ZCBORVhUCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEg QVMgcHJpY2UgPiBORVhUKE5FWFQocHJpY2UpKQorKTsKKworLS0gUFJFViBuZXN0ZWQgaW5zaWRl IE5FWFQKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElU SU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBB UyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCispOworCistLSBQUkVWIG5lc3RlZCBpbnNpZGUg ZXhwcmVzc2lvbiBpbnNpZGUgTkVYVAorU0VMRUNUIHByaWNlIEZST00gc3RvY2sKK1dJTkRPVyB3 IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIElOSVRJQUwKKyAgICBQQVRURVJOIChB KQorICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2UpKQorKTsK KworLS0gVHJpcGxlIG5lc3Rpbmc6IGVycm9yIHJlcG9ydGVkIGF0IG91dGVybW9zdCBQUkVWCitT RUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBj b21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgcHJpY2Ug PiBQUkVWKFBSRVYoUFJFVihwcmljZSkpKQorKTsKKworLS0gTm8gY29sdW1uIHJlZmVyZW5jZSBp biBQUkVWL05FWFQgYXJndW1lbnQKKy0tIFBSRVYoMSk6IGNvbnN0YW50IG9ubHksIG5vIGNvbHVt biByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJ TkUgQSBBUyBQUkVWKDEpID4gMAorKTsKKworLS0gTkVYVCgxICsgMik6IGNvbnN0YW50IGV4cHJl c3Npb24sIG5vIGNvbHVtbiByZWZlcmVuY2UKK1NFTEVDVCBwcmljZSBGUk9NIHN0b2NrCitXSU5E T1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJTklUSUFMCisgICAgUEFUVEVS TiAoQSkKKyAgICBERUZJTkUgQSBBUyBORVhUKDEgKyAyKSA+IDAKKyk7CisKKy0tIDItYXJnIGZv cm06IFBSRVYoMSwgMSk6IGNvbnN0YW50IGV4cHJlc3Npb24gYXMgZmlyc3QgYXJnCitTRUxFQ1Qg cHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55 CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVigxLCAxKSA+ IDAKKyk7CisKKy0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IGNvbHVtbiByZWZlcmVuY2UgYXMgb2Zm c2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElP TiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMg UFJFVihwcmljZSwgcHJpY2UpID4gMAorKTsKKworLS0gTm9uLWNvbnN0YW50IG9mZnNldDogdm9s YXRpbGUgZnVuY3Rpb24gYXMgb2Zmc2V0CitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jaworV0lORE9X IHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBBVFRFUk4g KEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgcmFuZG9tKCk6OmludCkgPiAwCispOwor CistLSBOb24tY29uc3RhbnQgb2Zmc2V0OiBzdWJxdWVyeSBhcyBvZmZzZXQKK1NFTEVDVCBwcmlj ZSBGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBJ TklUSUFMCisgICAgUEFUVEVSTiAoQSkKKyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCAoU0VM RUNUIDEpKSA+IDAKKyk7CisKKy0tIEZpcnN0IGFyZzogc3VicXVlcnkgKGNhdWdodCBieSBERUZJ TkUtbGV2ZWwgc3VicXVlcnkgcmVzdHJpY3Rpb24pCitTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55CisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgSU5JVElBTAorICAgIFBB VFRFUk4gKEEpCisgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSArIChTRUxFQ1QgMSkpID4gMAor KTsKKworLS0gRmlyc3QgYXJnOiB2b2xhdGlsZSBmdW5jdGlvbiBpcyBhbGxvd2VkIChldmFsdWF0 ZWQgb24gdGFyZ2V0IHJvdykKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAg Zmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkg Y29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBS RVYocHJpY2UgKyByYW5kb20oKSAqIDApID49IDAKKyk7CisKKy0tCistLSAyLWFyZyBQUkVWL05F WFQ6IGZ1bmN0aW9uYWwgdGVzdHMKKy0tCisKKy0tIFBSRVYocHJpY2UsIDIpOiBtYXRjaCByb3dz IHdoZXJlIGN1cnJlbnQgcHJpY2UgPiBwcmljZSAyIHJvd3MgYmFjaworLS0gc3RvY2s6IDEwMCwg OTAsIDgwLCA5NSwgMTEwCistLSBQYXR0ZXJuIChBIEIrKTogQT1hbnksIEIgd2hlcmUgcHJpY2Ug PiBQUkVWKHByaWNlLCAyKQorLS0gQXQgcG9zIDIgKDgwKTogQSBtYXRjaGVzLiBwb3MgMyAoOTUp OiA5NSA+IFBSRVYoOTUsMik9OTAgVFJVRS4KKy0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwb3MgNCAoMTEwKTogMTEwID4gUFJFVigxMTAsMik9ODAgVFJVRS4gTWF0Y2ghCitTRUxFQ1Qg Y29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcs IGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitX SU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIg QVMgcHJpY2UgPiBQUkVWKHByaWNlLCAyKQorKTsKKworLS0gTkVYVChwcmljZSwgMik6IG1hdGNo IHJvd3Mgd2hlcmUgY3VycmVudCBwcmljZSA+IHByaWNlIDIgcm93cyBhaGVhZAorLS0gcG9zIDAg KDEwMCk6IE5FWFQoMTAwLDIpPTgwLCAxMDA+ODAgVFJVRS4gcG9zIDEgKDkwKTogTkVYVCg5MCwy KT05NSwgOTA+OTUgRkFMU0UuIE1hdGNoIGVuZHMuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2Up IE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAg UEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBwcmljZSA+IE5FWFQocHJpY2UsIDIpCispOworCistLSBFeHByZXNzaW9ucyBp bnNpZGUgUFJFVi9ORVhUIGFyZzogZXhwciBpcyBldmFsdWF0ZWQgb24gdGFyZ2V0IHJvdworLS0g UFJFVihwcmljZSAtIDUwLCAxKTogZmV0Y2hlcyAocHJpY2UgLSA1MCkgZnJvbSAxIHJvdyBiYWNr CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAgIGZpcnN0X3ZhbHVlKHByaWNl KSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9N IHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkg dGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2Ug LSA1MCwgMSkKKyk7CisKKy0tIE5FWFQocHJpY2UgKiAyLCAxKTogZmV0Y2hlcyAocHJpY2UgKiAy KSBmcm9tIDEgcm93IGFoZWFkCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAorICAgICAg IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291 bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBw cmljZSA8IE5FWFQocHJpY2UgKiAyLCAxKQorKTsKKworLS0gTGFyZ2Ugb2Zmc2V0OiBQUkVWKHZh bCwgOTk5KSBvbiAxMDAwLXJvdyBzZXJpZXMgbWF0Y2hlcyBvbmx5IGxhc3Qgcm93CistLSBORVhU KHZhbCwgOTk5KSBtYXRjaGVzIG9ubHkgZmlyc3Qgcm93CitTRUxFQ1QgdmFsLCBmaXJzdF92YWx1 ZSh2YWwpIE9WRVIgdywgbGFzdF92YWx1ZSh2YWwpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAwKSBBUyB0KHZhbCkKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHZhbCwgOTk5KSA9IDEKKykKK09SREVS IEJZIHZhbCBERVNDIExJTUlUIDM7CisKK1NFTEVDVCB2YWwsIGZpcnN0X3ZhbHVlKHZhbCkgT1ZF UiB3LCBsYXN0X3ZhbHVlKHZhbCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDEwMDApIEFTIHQodmFsKQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIE5FWFQodmFsLCA5OTkpID0gMTAwMAorKQorTElNSVQgMzsKKwor LS0gUFJFVihwcmljZSwgMCk6IG9mZnNldCAwIG1lYW5zIGN1cnJlbnQgcm93LCBhbHdheXMgZXF1 YWwgdG8gcHJpY2UKKy0tIEErIG1hdGNoZXMgZW50aXJlIHBhcnRpdGlvbiBhcyBvbmUgZ3JvdXA7 IGNvdW50ID0gcGFydGl0aW9uIHNpemUKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisg ICAgICAgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3 LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJ T04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIDApID0gcHJpY2UKKyk7CisKKy0tIDItYXJnIFBSRVYvTkVYVCBvdXRz aWRlIERFRklORSBjbGF1c2UKK1NFTEVDVCBwcmV2KHByaWNlLCAyKSBGUk9NIHN0b2NrOworU0VM RUNUIG5leHQocHJpY2UsIDIpIEZST00gc3RvY2s7CisKKy0tIDItYXJnIFBSRVYvTkVYVDogbmVn YXRpdmUgb2Zmc2V0CitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShw cmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQ UkVWKHByaWNlLCAtMSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIDItYXJnIFBSRVYvTkVYVDogTlVM TCBvZmZzZXQgKHR5cGVkKQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFs dWUocHJpY2UpIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElP TiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEg QVMgUFJFVihwcmljZSwgTlVMTDo6aW50OCkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIDItYXJnIFBS RVYvTkVYVDogTlVMTCBvZmZzZXQgKHVudHlwZWQpCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHBy aWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykK KyAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNlLCBOVUxMKSBJUyBOT1QgTlVMTAorKTsKKworLS0g Mi1hcmcgUFJFVi9ORVhUOiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCitQUkVQQVJF IHRlc3RfcHJldl9vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2Us IGZpcnN0X3ZhbHVlKHByaWNlKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAg IERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgJDEpCispOworRVhFQ1VURSB0ZXN0X3By ZXZfb2Zmc2V0KC0xKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKK0RFQUxMT0NB VEUgdGVzdF9wcmV2X29mZnNldDsKKworLS0gMi1hcmcgUFJFVi9ORVhUOiBob3N0IHZhcmlhYmxl IHdpdGggZXhwcmVzc2lvbiAoMCArICQxKQorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0KGludDgp IEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmljZSkgT1ZF UiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkg T1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBS RVYocHJpY2UsIDAgKyAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoLTEpOworRVhF Q1VURSB0ZXN0X3ByZXZfb2Zmc2V0KE5VTEwpOworREVBTExPQ0FURSB0ZXN0X3ByZXZfb2Zmc2V0 OworCistLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1lIERF RklORSBjbGF1c2UKKy0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFjayB2 YWx1ZXMKK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsCisgICAgICAgZmlyc3RfdmFsdWUo cHJpY2UpIE9WRVIgdywgbGFzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcK K0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRF UiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBwcmlj ZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmljZSA+IFBSRVYocHJpY2UsIDIpCispOworCistLSAy LWFyZzogUFJFViBhbmQgTkVYVCB3aXRoIGV4cGxpY2l0IG9mZnNldHMgaW4gc2FtZSBERUZJTkUg Y2xhdXNlCistLSBBOiBwcmljZSBleGNlZWRzIDEtYmFjayBhbmQgaXMgYmVsb3cgMS1haGVhZCAo YXNjZW5kaW5nIGludGVyaW9yIHBvaW50KQorU0VMRUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwK KyAgICAgICBmaXJzdF92YWx1ZShwcmljZSkgT1ZFUiB3LCBsYXN0X3ZhbHVlKHByaWNlKSBPVkVS IHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jaworV0lORE9XIHcgQVMgKAorICAgIFBBUlRJ VElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExB U1QgUk9XCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKHBy aWNlLCAxKSBBTkQgcHJpY2UgPCBORVhUKHByaWNlLCAxKQorKTsKKwogLS0KIC0tIFNLSVAgVE8g LyBCYWNrdHJhY2tpbmcgLyBGcmFtZSBib3VuZGFyeQogLS0KQEAgLTY3MSw3ICs5OTEsNyBAQCBj b3VudCgqKSBPVkVSIHcKICk7CiAKIC0tIFJlU2NhbiB0ZXN0OiBMQVRFUkFMIGpvaW4gZm9yY2Vz IFdpbmRvd0FnZyByZXNjYW4gd2l0aCBSUFIKLS0tIFRlc3RzIEV4ZWNSZVNjYW5XaW5kb3dBZ2cg Y2xlYXJpbmcgcHJldl9zbG90L25leHRfc2xvdAorLS0gVGVzdHMgRXhlY1JlU2NhbldpbmRvd0Fn ZyBjbGVhcmluZyBuYXZfc2xvdAogU0VMRUNUIGcueCwgc3ViLioKIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIpIGcoeCksCiBMQVRFUkFMICgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwcl9leHBsYWluLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bAppbmRleCA3MDNlY2QzYjIzYi4uZTMzOWVkZDdlOTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJf ZXhwbGFpbi5zcWwKQEAgLTIyMTQsNiArMjIxNCw2MiBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAg IEQgQVMgdiA8IFBSRVYodikKICk7Jyk7CiAKKy0tIFVzaW5nIDEtYXJnIFBSRVYgKGltcGxpY2l0 IG9mZnNldCAxKQorQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBBUworU0VMRUNUIGNvdW50 KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzApIEFTIHModikKK1dJTkRPVyB3 IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORQorICAgICAgICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgdiA+IFBSRVYo dikKKyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3Zp ZXdkZWYoJ3Jwcl9ldl9uYXZfcHJldjEnKSwgRSdcbicpKSBBUyBsaW5lIFdIRVJFIGxpbmUgfiAn UEFUVEVSTnxERUZJTkV8UFJFVnxORVhUJzsKKworLS0gVXNpbmcgMS1hcmcgTkVYVCAoaW1wbGlj aXQgb2Zmc2V0IDEpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQxIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2IDwgTkVY VCh2KQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19nZXRf dmlld2RlZigncnByX2V2X25hdl9uZXh0MScpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAyLWFyZyBQUkVWIChleHBs aWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X3ByZXYyIEFTCitTRUxFQ1QgY291 bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2ID4gUFJF Vih2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShwZ19n ZXRfdmlld2RlZigncnByX2V2X25hdl9wcmV2MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUgbGlu ZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCistLSBVc2luZyAyLWFyZyBORVhUIChl eHBsaWNpdCBvZmZzZXQpCitDUkVBVEUgVklFVyBycHJfZXZfbmF2X25leHQyIEFTCitTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMCkgQVMgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4g KEEgQispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyB2IDwg TkVYVCh2LCAyKQorKTsKK1NFTEVDVCBsaW5lIEZST00gdW5uZXN0KHN0cmluZ190b19hcnJheShw Z19nZXRfdmlld2RlZigncnByX2V2X25hdl9uZXh0MicpLCBFJ1xuJykpIEFTIGxpbmUgV0hFUkUg bGluZSB+ICdQQVRURVJOfERFRklORXxQUkVWfE5FWFQnOworCiAtLSBVc2luZyBOVUxMIGNvbXBh cmlzb25zCiBDUkVBVEUgVklFVyBycHJfZXZfZGVmX251bGwgQVMKIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNjA5MGMyZDg5NTAuLjE2ZGUxNDIx MzAyIDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTgwMSw3ICsxODAxLDYgQEAgTmFt ZWRMV0xvY2tUcmFuY2hlUmVxdWVzdAogTmFtZWRUdXBsZXN0b3JlU2NhbgogTmFtZWRUdXBsZXN0 b3JlU2NhblN0YXRlCiBOYW1lc3BhY2VJbmZvCi1OYXZpZ2F0aW9uSW5mbwogTmVzdExvb3AKIE5l c3RMb29wUGFyYW0KIE5lc3RMb29wU3RhdGUKQEAgLTI0NzgsNiArMjQ3Nyw4IEBAIFF1ZXJ5U291 cmNlCiBRdWV1ZUJhY2tlbmRTdGF0dXMKIFF1ZXVlUG9zaXRpb24KIFF1aXRTaWduYWxSZWFzb24K K1JQUk5hdkV4cHIKK1JQUk5hdktpbmQKIFJCVE5vZGUKIFJCVE9yZGVyQ29udHJvbAogUkJUcmVl Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Disposition: attachment; filename="nocfbot-0018-JIT-support-for-PREV-NEXT.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqv9w17 RnJvbSBlZmI5OTQyOGNmZGI0MTM2M2Q0OWQ0YjdjYTE5OWY5MjEyYmE1YTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTA6NTQ6MzAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgSklU IGNvbXBpbGF0aW9uIHN1cHBvcnQgZm9yIFJQUiBQUkVWL05FWFQgbmF2aWdhdGlvbgoKLS0tCiBz cmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyB8IDcyICsrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICB8IDMxICsr KysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgICAgICAgIHwgMjcgKysr KysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTExIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIv c3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggZDE1OGUzN2U3YjUuLjQ5 MDFiMmE3ZmY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIu YworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMTI3LDYgKzEy Nyw5IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJTExWTVZhbHVlUmVm IHZfYWdndmFsdWVzOwogCUxMVk1WYWx1ZVJlZiB2X2FnZ251bGxzOwogCisJLyogUlBSIG5hdmln YXRpb246IHdoZW4gdHJ1ZSwgRUVPUF9PVVRFUl9WQVIgcmVsb2FkcyBmcm9tIGVjb250ZXh0ICov CisJYm9vbAkJaGFzX3Jwcl9uYXY7CisKIAlpbnN0cl90aW1lCXN0YXJ0dGltZTsKIAlpbnN0cl90 aW1lCWRlZm9ybV9zdGFydHRpbWU7CiAJaW5zdHJfdGltZQllbmR0aW1lOwpAQCAtMzAwLDE5ICsz MDMsMTYgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkKIAkgKiBSUFIgbmF2 aWdhdGlvbiBvcGNvZGVzIChQUkVWL05FWFQpIHN3YXAgZWN4dF9vdXRlcnR1cGxlIHRvIGEgZGlm ZmVyZW50CiAJICogcm93IG1pZC1leHByZXNzaW9uLiAgVGhlIEpJVCBjb2RlIGxvYWRzIHZfb3V0 ZXJ2YWx1ZXMgYW5kIHZfb3V0ZXJudWxscwogCSAqIG9uY2UgaW4gdGhlIGVudHJ5IGJsb2NrIGFu ZCByZXVzZXMgdGhlbSBmb3IgYWxsIEVFT1BfT1VURVJfVkFSIHN0ZXBzLgotCSAqIEFmdGVyIGEg c2xvdCBzd2FwLCB0aGVzZSBwb2ludGVycyBiZWNvbWUgc3RhbGUgYmVjYXVzZSB0aGUgbmV3IHNs b3QgaGFzCi0JICogaXRzIG93biB0dHNfdmFsdWVzL3R0c19pc251bGwgYXJyYXlzLiAgRmFsbCBi YWNrIHRvIHRoZSBpbnRlcnByZXRlciBmb3IKLQkgKiB0aGVzZSBleHByZXNzaW9ucy4KKwkgKiBB ZnRlciBhIHNsb3Qgc3dhcCwgdGhlc2UgY2FjaGVkIHBvaW50ZXJzIGJlY29tZSBzdGFsZSBiZWNh dXNlIHRoZSBuZXcKKwkgKiBzbG90IGhhcyBpdHMgb3duIHR0c192YWx1ZXMvdHRzX2lzbnVsbCBh cnJheXMuCiAJICoKLQkgKiBYWFggVG8gSklULWNvbXBpbGUgdGhlc2UgZXhwcmVzc2lvbnMgcHJv cGVybHksIHRoZSBOQVZfU0VUIGFuZAotCSAqIE5BVl9SRVNUT1JFIGhhbmRsZXJzIHdvdWxkIG5l ZWQgdG8gcmVsb2FkIHRoZSB0dHNfdmFsdWVzIGFuZCB0dHNfaXNudWxsCi0JICogcG9pbnRlcnMg ZnJvbSB0aGUgbmV3IHNsb3QuICBIb3dldmVyLCBMTFZNIHVzZXMgU1NBIChTdGF0aWMgU2luZ2xl Ci0JICogQXNzaWdubWVudCkgZm9ybSB3aGVyZSBlYWNoIHZhbHVlIGlzIGRlZmluZWQgZXhhY3Rs eSBvbmNlLiAgV2hlbgotCSAqIGRpZmZlcmVudCBiYXNpYyBibG9ja3MgcHJvZHVjZSBkaWZmZXJl bnQgdmFsdWVzIGZvciB0aGUgc2FtZSBwb2ludGVyLAotCSAqIExMVk0gcmVxdWlyZXMgUEhJIG5v ZGVzIGF0IHRoZSBtZXJnZSBwb2ludCB0byBzZWxlY3QgdGhlIGNvcnJlY3Qgb25lLgotCSAqIFdp dGhvdXQgdGhhdCBwbHVtYmluZywgT1VURVJfVkFSIHN0ZXBzIGFmdGVyIGEgc2xvdCBzd2FwIHdv dWxkIHJlYWQKLQkgKiBmcm9tIHRoZSB3cm9uZyBwb2ludGVyLgorCSAqIFdoZW4gUlBSIG5hdmln YXRpb24gb3Bjb2RlcyBhcmUgcHJlc2VudCwgRUVPUF9PVVRFUl9WQVIgcmVsb2FkcyB0aGUKKwkg KiBzbG90IHBvaW50ZXIgZnJvbSBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIG9uIGV2ZXJ5IGFj Y2VzcyBpbnN0ZWFkIG9mCisJICogdXNpbmcgdGhlIGNhY2hlZCBlbnRyeS1ibG9jayB2YWx1ZXMu ICBUaGlzIGF2b2lkcyB0aGUgU1NBL1BISQorCSAqIGNvbXBsZXhpdHkgd2hpbGUga2VlcGluZyB0 aGUgcmVzdCBvZiB0aGUgZXhwcmVzc2lvbiBKSVQtY29tcGlsZWQuCisJICogRXhwcmVzc2lvbnMg d2l0aG91dCBSUFIgbmF2aWdhdGlvbiB1c2UgdGhlIGNhY2hlZCB2YWx1ZXMgYXMgYmVmb3JlLgog CSAqLworCWhhc19ycHJfbmF2ID0gZmFsc2U7CiAJaWYgKHBhcmVudCAmJiBJc0EocGFyZW50LCBX aW5kb3dBZ2dTdGF0ZSkgJiYKIAkJKChXaW5kb3dBZ2cgKikgcGFyZW50LT5wbGFuKS0+cnBQYXR0 ZXJuICE9IE5VTEwpCiAJewpAQCAtMzIzLDkgKzMyMyw4IEBAIGxsdm1fY29tcGlsZV9leHByKEV4 cHJTdGF0ZSAqc3RhdGUpCiAJCQlpZiAob3Bjb2RlID09IEVFT1BfUlBSX05BVl9TRVQgfHwKIAkJ CQlvcGNvZGUgPT0gRUVPUF9SUFJfTkFWX1JFU1RPUkUpCiAJCQl7Ci0JCQkJTExWTURlbGV0ZUZ1 bmN0aW9uKGV2YWxfZm4pOwotCQkJCUxMVk1EaXNwb3NlQnVpbGRlcihiKTsKLQkJCQlyZXR1cm4g ZmFsc2U7CisJCQkJaGFzX3Jwcl9uYXYgPSB0cnVlOworCQkJCWJyZWFrOwogCQkJfQogCQl9CiAJ fQpAQCAtNDkyLDggKzQ5MSwzNyBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRl KQogCQkJCQl9CiAJCQkJCWVsc2UgaWYgKG9wY29kZSA9PSBFRU9QX09VVEVSX1ZBUikKIAkJCQkJ ewotCQkJCQkJdl92YWx1ZXMgPSB2X291dGVydmFsdWVzOwotCQkJCQkJdl9udWxscyA9IHZfb3V0 ZXJudWxsczsKKwkJCQkJCWlmIChoYXNfcnByX25hdikKKwkJCQkJCXsKKwkJCQkJCQkvKgorCQkJ CQkJCSAqIFJQUiBuYXZpZ2F0aW9uIHN3YXBzIGVjeHRfb3V0ZXJ0dXBsZQorCQkJCQkJCSAqIG1p ZC1leHByZXNzaW9uLiAgUmVsb2FkIHNsb3QgcG9pbnRlciBmcm9tCisJCQkJCQkJICogZWNvbnRl eHQgb24gZXZlcnkgYWNjZXNzIHNvIHdlIHJlYWQgZnJvbSB0aGUKKwkJCQkJCQkgKiBjdXJyZW50 IChwb3NzaWJseSBzd2FwcGVkKSBzbG90LgorCQkJCQkJCSAqLworCQkJCQkJCUxMVk1WYWx1ZVJl ZiB2X3RtcHNsb3Q7CisKKwkJCQkJCQl2X3RtcHNsb3QgPSBsX2xvYWRfc3RydWN0X2dlcChiLAor CQkJCQkJCQkJCQkJCQkgIFN0cnVjdEV4cHJDb250ZXh0LAorCQkJCQkJCQkJCQkJCQkgIHZfZWNv bnRleHQsCisJCQkJCQkJCQkJCQkJCSAgRklFTEROT19FWFBSQ09OVEVYVF9PVVRFUlRVUExFLAor CQkJCQkJCQkJCQkJCQkgICJ2X291dGVyc2xvdF9yZWxvYWQiKTsKKwkJCQkJCQl2X3ZhbHVlcyA9 IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQkJCSBTdHJ1Y3RUdXBsZVRhYmxlU2xv dCwKKwkJCQkJCQkJCQkJCQkJIHZfdG1wc2xvdCwKKwkJCQkJCQkJCQkJCQkJIEZJRUxETk9fVFVQ TEVUQUJMRVNMT1RfVkFMVUVTLAorCQkJCQkJCQkJCQkJCQkgInZfb3V0ZXJ2YWx1ZXNfcmVsb2Fk Iik7CisJCQkJCQkJdl9udWxscyA9IGxfbG9hZF9zdHJ1Y3RfZ2VwKGIsCisJCQkJCQkJCQkJCQkJ CVN0cnVjdFR1cGxlVGFibGVTbG90LAorCQkJCQkJCQkJCQkJCQl2X3RtcHNsb3QsCisJCQkJCQkJ CQkJCQkJCUZJRUxETk9fVFVQTEVUQUJMRVNMT1RfSVNOVUxMLAorCQkJCQkJCQkJCQkJCQkidl9v dXRlcm51bGxzX3JlbG9hZCIpOworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJeworCQkJCQkJ CXZfdmFsdWVzID0gdl9vdXRlcnZhbHVlczsKKwkJCQkJCQl2X251bGxzID0gdl9vdXRlcm51bGxz OworCQkJCQkJfQogCQkJCQl9CiAJCQkJCWVsc2UgaWYgKG9wY29kZSA9PSBFRU9QX1NDQU5fVkFS KQogCQkJCQl7CkBAIC0yNDY3LDEwICsyNDk1LDE2IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJT dGF0ZSAqc3RhdGUpCiAJCQkJYnJlYWs7CiAKIAkJCWNhc2UgRUVPUF9SUFJfTkFWX1NFVDoKKwkJ CQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxSUFJOYXZTZXQiLAorCQkJCQkJCQl2 X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3Bu byArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9QX1JQUl9OQVZfUkVTVE9SRToKLQkJ CQkvKiB1bnJlYWNoYWJsZTogZmlsdGVyZWQgb3V0IGJ5IHRoZSBwcmUtc2NhbiBhYm92ZSAqLwot CQkJCUFzc2VydChmYWxzZSk7Ci0JCQkJcmV0dXJuIGZhbHNlOworCQkJCWJ1aWxkX0V2YWxYRnVu YyhiLCBtb2QsICJFeGVjRXZhbFJQUk5hdlJlc3RvcmUiLAorCQkJCQkJCQl2X3N0YXRlLCBvcCwg dl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJ CQlicmVhazsKIAogCQkJY2FzZSBFRU9QX0FHR19TVFJJQ1RfREVTRVJJQUxJWkU6CiAJCQljYXNl IEVFT1BfQUdHX0RFU0VSSUFMSVpFOgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHIub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IGQ1 ODZlMTdlMGExLi5kZTZjZTRmYmE4YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAt MjE1Myw2ICsyMTUzLDM3IEBAIFNFTEVDVCBtYXRjaF9maXJzdCwgbWF0Y2hfbGFzdCwgbWF0Y2hf bGVuIEZST00gcmVzdWx0IFdIRVJFIG1hdGNoX2xlbiA+IDA7CiAgICAgICAgICAgIDAgfCAgICAg IDk5OTk4IHwgICAgIDk5OTk5CiAoMSByb3cpCiAKKy0tIEpJVCBQUkVWL05FWFQgbmF2aWdhdGlv biB0ZXN0OiAxMDBLIHJvd3Mgd2l0aCBQUkVWIGluIERFRklORS4KKy0tIEV4ZXJjaXNlcyBFRU9Q X1JQUl9OQVZfU0VUL1JFU1RPUkUgSklUIGNvZGUgcGF0aHMgKGhhc19ycHJfbmF2IHJlbG9hZCkK Ky0tIGF0IHNjYWxlLiBWLXNoYXBlOiBwcmljZSByaXNlcyB0aGVuIGZhbGxzLCByZXBlYXRlZCBh Y3Jvc3MgcGFydGl0aW9uLgorU0VUIGppdF9hYm92ZV9jb3N0ID0gMDsKK1dJVEggZGF0YSBBUyAo CisgU0VMRUNUIGksIGFicyg1MDAwMCAtIGkpIEFTIHByaWNlCisgRlJPTSBnZW5lcmF0ZV9zZXJp ZXMoMSwgMTAwMDAwKSBpCispLAorcmVzdWx0IEFTICgKKyBTRUxFQ1QgaSwgcHJpY2UsCisgICAg ICAgIGNvdW50KCopIE9WRVIgdyBBUyBtYXRjaF9sZW4sCisgICAgICAgIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcgQVMgbWF0Y2hfZmlyc3QKKyBGUk9NIGRhdGEKKyBXSU5ET1cgdyBBUyAoCisg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgSU5JVElBTAorICBQQVRURVJOIChET1dOKyBV UCspCisgIERFRklORQorICAgRE9XTiBBUyBwcmljZSA8IFBSRVYocHJpY2UpLAorICAgVVAgQVMg cHJpY2UgPiBQUkVWKHByaWNlKQorICkKKykKK1NFTEVDVCBjb3VudCgqKSBBUyBtYXRjaGVkX3Jv d3MsIG1heChtYXRjaF9sZW4pIEFTIGxvbmdlc3RfbWF0Y2gKK0ZST00gcmVzdWx0IFdIRVJFIG1h dGNoX2xlbiA+IDA7CisgbWF0Y2hlZF9yb3dzIHwgbG9uZ2VzdF9tYXRjaCAKKy0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgMSB8ICAgICAgICAgOTk5OTkKKygxIHJv dykKKworUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiAtLQogLS0gSUdOT1JFIE5VTExTCiAtLQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Jwci5zcWwKaW5kZXggNTA0NDc2YTJiMDIuLmIzYmJjODI1NGM0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw ci5zcWwKQEAgLTEwODQsNiArMTA4NCwzMyBAQCByZXN1bHQgQVMgKAogLS0gU2hvdWxkIG1hdGNo OiBBICgzMzMzMyByb3dzKSArIEIgKDMzMzMzIHJvd3MpICsgQyAoMzMzMzMgcm93cykgPSA5OTk5 OSByb3dzCiBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xhc3QsIG1hdGNoX2xlbiBGUk9NIHJl c3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogCistLSBKSVQgUFJFVi9ORVhUIG5hdmlnYXRpb24g dGVzdDogMTAwSyByb3dzIHdpdGggUFJFViBpbiBERUZJTkUuCistLSBFeGVyY2lzZXMgRUVPUF9S UFJfTkFWX1NFVC9SRVNUT1JFIEpJVCBjb2RlIHBhdGhzIChoYXNfcnByX25hdiByZWxvYWQpCist LSBhdCBzY2FsZS4gVi1zaGFwZTogcHJpY2UgcmlzZXMgdGhlbiBmYWxscywgcmVwZWF0ZWQgYWNy b3NzIHBhcnRpdGlvbi4KK1NFVCBqaXRfYWJvdmVfY29zdCA9IDA7CitXSVRIIGRhdGEgQVMgKAor IFNFTEVDVCBpLCBhYnMoNTAwMDAgLSBpKSBBUyBwcmljZQorIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDEwMDAwMCkgaQorKSwKK3Jlc3VsdCBBUyAoCisgU0VMRUNUIGksIHByaWNlLAorICAgICAg ICBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuLAorICAgICAgICBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3IEFTIG1hdGNoX2ZpcnN0CisgRlJPTSBkYXRhCisgV0lORE9XIHcgQVMgKAorICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgIElOSVRJQUwKKyAgUEFUVEVSTiAoRE9XTisgVVAr KQorICBERUZJTkUKKyAgIERPV04gQVMgcHJpY2UgPCBQUkVWKHByaWNlKSwKKyAgIFVQIEFTIHBy aWNlID4gUFJFVihwcmljZSkKKyApCispCitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dz LCBtYXgobWF0Y2hfbGVuKSBBUyBsb25nZXN0X21hdGNoCitGUk9NIHJlc3VsdCBXSEVSRSBtYXRj aF9sZW4gPiAwOworUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CisKIC0tCiAtLSBJR05PUkUgTlVMTFMK IC0tCi0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Disposition: attachment; filename="nocfbot-0019-Add-tuplestore-trim-optimization-for-RPR-PREV.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tqxx818 RnJvbSA3ZDlmMWYwOTRkYmQ2ODVhMDNkOTgyZjlkNjJhODZmYjM5MmM4NzdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTYXQsIDQgQXByIDIwMjYgMTE6NDk6MzIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgdHVw bGVzdG9yZSB0cmltIG9wdGltaXphdGlvbiBmb3IgUlBSIFBSRVYgbmF2aWdhdGlvbgoKQWR2YW5j ZSB0aGUgdHVwbGVzdG9yZSBtYXJrIHBvaW50ZXIgYmFzZWQgb24gdGhlIG1heGltdW0gUFJFViBv ZmZzZXQKZm91bmQgaW4gREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucywgYWxsb3dpbmcgdHVwbGVz dG9yZV90cmltKCkgdG8KZnJlZSByb3dzIHRoYXQgUFJFViBjYW4gbm8gbG9uZ2VyIHJlYWNoLgoK VGhlIHBsYW5uZXIgd2Fsa3MgREVGSU5FIGV4cHJlc3Npb25zIHRvIGZpbmQgdGhlIG1heGltdW0g UFJFViBvZmZzZXQuCklmIGFsbCBvZmZzZXRzIGFyZSBjb25zdGFudHMsIG5hdk1heE9mZnNldCBp cyBzZXQgZGlyZWN0bHkuIElmIGFueQpvZmZzZXQgaXMgbm9uLWNvbnN0YW50IChwYXJhbWV0ZXIg b3IgZXhwcmVzc2lvbiksIHRoZSBwbGFubmVyIHNldHMKUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZB TCBhbmQgdGhlIGV4ZWN1dG9yIGV2YWx1YXRlcyBhbGwgUFJFViBvZmZzZXRzCmF0IGluaXQgdGlt ZS4gVGhlIGV4ZWN1dG9yIHRoZW4gYWR2YW5jZXMgdGhlIG1hcmsgdG8KKGN1cnJlbnRwb3MgLSBu YXZNYXhPZmZzZXQpIGVhY2ggcm93LgoKTkVYVCBvZmZzZXRzIGFyZSBpZ25vcmVkIHNpbmNlIHRo ZXkgbG9vayBmb3J3YXJkIGFuZCBkbyBub3QgYWZmZWN0CnRyaW0uIFJQUl9OQVZfT0ZGU0VUX1JF VEFJTl9BTEwgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBuYXZpZ2F0aW9uCmZ1bmN0aW9ucyAoRklS U1QvTEFTVCkgdGhhdCByZXF1aXJlIHRoZSBlbnRpcmUgcGFydGl0aW9uLgotLS0KIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyAgICB8IDEzNiArKysrKysrKysrKysrKysrKysr KysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyB8IDEwMSArKysr KysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgfCAgIDkgKysK IHNyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaCAgICAgICAgICAgICB8ICAgOSArKwogNSBmaWxl cyBjaGFuZ2VkLCAyNDYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3Ivbm9kZVdpbmRvd0FnZy5jCmluZGV4IDRlNjQzZGY5NGNmLi45Nzg3ZWY3NzU2ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCisrKyBiL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwpAQCAtMjQ0LDYgKzI0NCwxMCBAQCBzdGF0 aWMgdm9pZCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBw b3MpOwogLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBORkEgcm93IGV2YWx1YXRpb24gKi8KIHN0 YXRpYyBib29sIG5mYV9ldmFsdWF0ZV9yb3coV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9z LCBib29sICp2YXJNYXRjaGVkKTsKIAorLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgLSBuYXZpZ2F0 aW9uIG9mZnNldCBldmFsdWF0aW9uICovCitzdGF0aWMgYm9vbCBjb2xsZWN0X3ByZXZfb2Zmc2V0 X3dhbGtlcihOb2RlICpub2RlLCBMaXN0ICoqb2Zmc2V0cyk7CitzdGF0aWMgdm9pZCBldmFsX25h dl9tYXhfb2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNl KTsKKwogLyoKICAqIE5vdCBudWxsIGluZm8gYml0IGFycmF5IGNvbnNpc3RzIG9mIDItYml0IGl0 ZW1zCiAgKi8KQEAgLTkzNCwxMiArOTM4LDE4IEBAIGV2YWxfd2luZG93YWdncmVnYXRlcyhXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJCWlmIChycHJfaXNfZGVmaW5lZCh3aW5zdGF0ZSkpCiAJ CXsKIAkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgdXNlZCwgaXQgaXMgcG9zc2libGUgUFJFViB3YW50 cyB0byBsb29rIGF0IHRoZQotCQkJICogcHJldmlvdXMgcm93LiAgU28gdGhlIG1hcmsgcG9zIHNo b3VsZCBiZSBmcmFtZWhlYWRwb3MgLSAxCi0JCQkgKiB1bmxlc3MgaXQgaXMgYmVsb3cgMC4KKwkJ CSAqIElmIFJQUiBpcyB1c2VkLCBQUkVWIG1heSBuZWVkIHRvIGxvb2sgYXQgcm93cyBiZWZvcmUg dGhlIGZyYW1lCisJCQkgKiBoZWFkLiAgQWRqdXN0IG1hcmsgYnkgbmF2TWF4T2Zmc2V0IGlmIGtu b3duLCBvdGhlcndpc2UgcmV0YWluCisJCQkgKiBmcm9tIHBvc2l0aW9uIDAuCiAJCQkgKi8KLQkJ CW1hcmtwb3MgLT0gMTsKLQkJCWlmIChtYXJrcG9zIDwgMCkKKwkJCWlmICh3aW5zdGF0ZS0+bmF2 TWF4T2Zmc2V0ID49IDApCisJCQl7CisJCQkJaWYgKG1hcmtwb3MgPiB3aW5zdGF0ZS0+bmF2TWF4 T2Zmc2V0KQorCQkJCQltYXJrcG9zIC09IHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQ7CisJCQkJZWxz ZQorCQkJCQltYXJrcG9zID0gMDsKKwkJCX0KKwkJCWVsc2UKIAkJCQltYXJrcG9zID0gMDsKIAkJ fQogCQlXaW5TZXRNYXJrUG9zaXRpb24oYWdnX3dpbm9iaiwgbWFya3Bvcyk7CkBAIC0xMjY5LDEy ICsxMjc5LDE1IEBAIHByZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUp CiAJaWYgKHdpbnN0YXRlLT5uYXZfd2lub2JqKQogCXsKIAkJLyoKLQkJICogQWxsb2NhdGUgYSBt YXJrIHBvaW50ZXIgcGlubmVkIGF0IHBvc2l0aW9uIDAgc28gdGhhdCB0aGUgdHVwbGVzdG9yZQot CQkgKiBuZXZlciB0cnVuY2F0ZXMgcm93cyB0aGF0IGEgUFJFVihleHByLCBOKSBtaWdodCBuZWVk LgorCQkgKiBBbGxvY2F0ZSBtYXJrIGFuZCByZWFkIHBvaW50ZXJzIGZvciBQUkVWL05FWFQgbmF2 aWdhdGlvbi4KKwkJICoKKwkJICogSWYgbmF2TWF4T2Zmc2V0ID49IDAsIHdlIGFkdmFuY2UgdGhl IG1hcmsgdG8gKGN1cnJlbnRwb3MgLQorCQkgKiBuYXZNYXhPZmZzZXQpIGFzIHJvd3MgYXJlIHBy b2Nlc3NlZCwgYWxsb3dpbmcgdHVwbGVzdG9yZV90cmltKCkgdG8KKwkJICogZnJlZSByb3dzIHRo YXQgYXJlIG5vIGxvbmdlciByZWFjaGFibGUuCiAJCSAqCi0JCSAqIFhYWCBUaGlzIHJldGFpbnMg dGhlIGVudGlyZSBwYXJ0aXRpb24gaW4gdGhlIHR1cGxlc3RvcmUuICBJZiB0aGUKLQkJICogREVG SU5FIGNsYXVzZSBvbmx5IHVzZXMgUFJFVi9ORVhUIHdpdGggc21hbGwgY29uc3RhbnQgb2Zmc2V0 cywgd2UKLQkJICogY291bGQgYWR2YW5jZSB0aGUgbWFyayB0byAoY3VycmVudHBvcyAtIG1heF9v ZmZzZXQpIGluc3RlYWQuCisJCSAqIElmIG5hdk1heE9mZnNldCA8IDAgKFJQUl9OQVZfT0ZGU0VU X05FRURTX0VWQUwgb3IKKwkJICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCksIHRoZSBtYXJr IHN0YXlzIGF0IDAsIHJldGFpbmluZyB0aGUKKwkJICogZW50aXJlIHBhcnRpdGlvbiBpbiB0aGUg dHVwbGVzdG9yZS4KIAkJICovCiAJCXdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcHRyID0KIAkJ CXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5idWZmZXIsIDApOwpAQCAt MjUxMiw2ICsyNTI1LDI0IEBAIEV4ZWNXaW5kb3dBZ2coUGxhblN0YXRlICpwc3RhdGUpCiAJCWlm ICh3aW5zdGF0ZS0+Z3JvdXB0YWlsX3B0ciA+PSAwKQogCQkJdXBkYXRlX2dyb3VwdGFpbHBvcyh3 aW5zdGF0ZSk7CiAKKwkJLyoKKwkJICogQWR2YW5jZSBSUFIgbmF2aWdhdGlvbiBtYXJrIHBvaW50 ZXIgaWYgcG9zc2libGUsIHNvIHRoYXQKKwkJICogdHVwbGVzdG9yZV90cmltKCkgY2FuIGZyZWUg cm93cyBubyBsb25nZXIgcmVhY2hhYmxlIGJ5IFBSRVYuCisJCSAqLworCQlpZiAod2luc3RhdGUt Pm5hdl93aW5vYmogJiYKKwkJCXdpbnN0YXRlLT5ycFBhdHRlcm4gIT0gTlVMTCAmJgorCQkJd2lu c3RhdGUtPm5hdk1heE9mZnNldCA+PSAwKQorCQl7CisJCQlpbnQ2NAkJbmF2bWFya3BvczsKKwor CQkJaWYgKHdpbnN0YXRlLT5jdXJyZW50cG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNldCkKKwkJ CQluYXZtYXJrcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3MgLSB3aW5zdGF0ZS0+bmF2TWF4T2Zm c2V0OworCQkJZWxzZQorCQkJCW5hdm1hcmtwb3MgPSAwOworCQkJaWYgKG5hdm1hcmtwb3MgPiB3 aW5zdGF0ZS0+bmF2X3dpbm9iai0+bWFya3BvcykKKwkJCQlXaW5TZXRNYXJrUG9zaXRpb24od2lu c3RhdGUtPm5hdl93aW5vYmosIG5hdm1hcmtwb3MpOworCQl9CisKIAkJLyoKIAkJICogVHJ1bmNh dGUgYW55IG5vLWxvbmdlci1uZWVkZWQgcm93cyBmcm9tIHRoZSB0dXBsZXN0b3JlLgogCQkgKi8K QEAgLTI5NTcsNiArMjk4OCwxMCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUs IEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5ycFNraXBUbyA9IG5vZGUt PnJwU2tpcFRvOwogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBQQVRURVJOIGNs YXVzZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4gPSBub2RlLT5ycFBh dHRlcm47CisJLyogU2V0IHVwIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltICov CisJd2luc3RhdGUtPm5hdk1heE9mZnNldCA9IG5vZGUtPm5hdk1heE9mZnNldDsKKwlpZiAod2lu c3RhdGUtPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCQlldmFs X25hdl9tYXhfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOwogCiAJLyogQ2Fs Y3VsYXRlIE5GQSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRlY3Rpb24gYml0bWFw ICovCiAJaWYgKG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQpAQCAtMzg2Nyw2ICszOTAyLDg3IEBA IHB1dF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBpbnQgYXJn bm8sIGJvb2wgaXNudWxsKQogCW1icFticG9zXSA9IG1iOwogfQogCisvKgorICogY29sbGVjdF9w cmV2X29mZnNldF93YWxrZXIKKyAqCQlXYWxrIGV4cHJlc3Npb24gdHJlZSB0byBjb2xsZWN0IFBS RVYgb2Zmc2V0X2FyZyBleHByZXNzaW9ucy4KKyAqLworc3RhdGljIGJvb2wKK2NvbGxlY3RfcHJl dl9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIExpc3QgKipvZmZzZXRzKQoreworCWlmIChub2Rl ID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChJc0Eobm9kZSwgUlBSTmF2RXhwcikp CisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOworCisJCWlmIChu YXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJ Km9mZnNldHMgPSBsYXBwZW5kKCpvZmZzZXRzLCBuYXYtPm9mZnNldF9hcmcpOworCisJCS8qIERv bid0IHdhbGsgaW50byBSUFJOYXZFeHByIGNoaWxkcmVuICovCisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBjb2xsZWN0X3ByZXZfb2Zm c2V0X3dhbGtlciwgb2Zmc2V0cyk7Cit9CisKKy8qCisgKiBldmFsX25hdl9tYXhfb2Zmc2V0Cisg KgkJRXZhbHVhdGUgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRp bWUuCisgKgorICogQ2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdk1heE9mZnNldCB0byBS UFJfTkFWX09GRlNFVF9ORUVEU19FVkFMCisgKiBiZWNhdXNlIHNvbWUgUFJFViBvZmZzZXQgY29u dGFpbnMgYSBwYXJhbWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKiBXYWxrcyB0 aGUgb3JpZ2luYWwgZGVmaW5lQ2xhdXNlIGV4cHJlc3Npb24gdHJlZXMsIGNvbXBpbGVzIGFuZCBl dmFsdWF0ZXMKKyAqIGVhY2ggUFJFViBvZmZzZXRfYXJnLCBhbmQgc3RvcmVzIHRoZSBtYXhpbXVt IGluIHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQuCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX25hdl9t YXhfb2Zmc2V0KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgTGlzdCAqZGVmaW5lQ2xhdXNlKQor eworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4 dDsKKwlMaXN0CSAgICpvZmZzZXRzID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCWludDY0CQlt YXhPZmZzZXQgPSAwOworCisJLyogQ29sbGVjdCBhbGwgUFJFViBvZmZzZXQgZXhwcmVzc2lvbnMg ZnJvbSBERUZJTkUgY2xhdXNlICovCisJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQorCXsKKwkJ VGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisKKwkJY29sbGVj dF9wcmV2X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZvZmZzZXRzKTsKKwl9CisK KwkvKiBFdmFsdWF0ZSBlYWNoIG9mZnNldCBhbmQgZmluZCBtYXhpbXVtICovCisJZm9yZWFjaChs Yywgb2Zmc2V0cykKKwl7CisJCUV4cHIJICAgKm9mZnNldF9leHByID0gKEV4cHIgKikgbGZpcnN0 KGxjKTsKKwkJRXhwclN0YXRlICAqZXN0YXRlOworCQlEYXR1bQkJdmFsOworCQlib29sCQlpc251 bGw7CisJCWludDY0CQlvZmZzZXQ7CisKKwkJZXN0YXRlID0gRXhlY0luaXRFeHByKG9mZnNldF9l eHByLCAoUGxhblN0YXRlICopIHdpbnN0YXRlKTsKKwkJdmFsID0gRXhlY0V2YWxFeHByU3dpdGNo Q29udGV4dChlc3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKworCQkvKgorCQkgKiBOVUxMIG9y IG5lZ2F0aXZlIG9mZnNldHMgd2lsbCBjYXVzZSBhIHJ1bnRpbWUgZXJyb3Igd2hlbiBQUkVWIGlz CisJCSAqIGFjdHVhbGx5IGV2YWx1YXRlZC4gIEZvciB0cmltIHB1cnBvc2VzLCB0cmVhdCB0aGVt IGFzIDAuCisJCSAqLworCQlpZiAoaXNudWxsKQorCQkJY29udGludWU7CisKKwkJb2Zmc2V0ID0g RGF0dW1HZXRJbnQ2NCh2YWwpOworCQlpZiAob2Zmc2V0IDwgMCkKKwkJCWNvbnRpbnVlOworCisJ CWlmIChvZmZzZXQgPiBtYXhPZmZzZXQpCisJCQltYXhPZmZzZXQgPSBvZmZzZXQ7CisJfQorCisJ d2luc3RhdGUtPm5hdk1heE9mZnNldCA9IG1heE9mZnNldDsKKworCWxpc3RfZnJlZShvZmZzZXRz KTsKK30KKwogLyoKICAqIHJwcl9pc19kZWZpbmVkCiAgKiByZXR1cm4gdHJ1ZSBpZiBSb3cgcGF0 dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3Jl YXRlcGxhbi5jCmluZGV4IDlhYzI0Y2MyMjJkLi5lZTJkNTNiNTkyNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCisrKyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwpAQCAtMjQ2MSw2ICsyNDYxLDEwNCBAQCBjcmVhdGVf bWlubWF4YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIE1pbk1heEFnZ1BhdGggKmJlc3RfcGF0 aCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIG5hdl9tYXhfb2Zmc2V0X3dhbGtlcgorICoJ CVdhbGsgZXhwcmVzc2lvbiB0cmVlIHRvIGZpbmQgdGhlIG1heGltdW0gUFJFViBvZmZzZXQuCisg KgorICogT25seSBQUkVWIGlzIHJlbGV2YW50IGZvciB0dXBsZXN0b3JlIHRyaW0gc2luY2UgaXQg bG9va3MgYmFja3dhcmQ7CisgKiBORVhUIGxvb2tzIGZvcndhcmQgYW5kIG5ldmVyIHJlZmVyZW5j ZXMgYWxyZWFkeS10cmltbWVkIHJvd3MuCisgKgorICogUmV0dXJucyB0cnVlICh0byBzdG9wIHdh bGtpbmcpIGlmIGEgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0IGlzIGZvdW5kLAorICogaW4gd2hp Y2ggY2FzZSAqbWF4T2Zmc2V0IGlzIHNldCB0byAtMS4gIE90aGVyd2lzZSBhY2N1bXVsYXRlcyB0 aGUKKyAqIG1heGltdW0gY29uc3RhbnQgb2Zmc2V0IHZhbHVlLgorICovCitzdGF0aWMgYm9vbAor bmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0ICptYXhPZmZzZXQpCit7CisJ aWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJO YXZFeHByKSkKKwl7CisJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisK KwkJLyogT25seSBQUkVWIGxvb2tzIGJhY2t3YXJkOyBORVhUIGlzIGlycmVsZXZhbnQgZm9yIHRy aW0gKi8KKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVYpCisJCXsKKwkJCWludDY0CQlv ZmZzZXQ7CisKKwkJCWlmIChuYXYtPm9mZnNldF9hcmcgPT0gTlVMTCkKKwkJCXsKKwkJCQkvKiAx LWFyZyBmb3JtOiBpbXBsaWNpdCBvZmZzZXQgb2YgMSAqLworCQkJCW9mZnNldCA9IDE7CisJCQl9 CisJCQllbHNlIGlmIChJc0EobmF2LT5vZmZzZXRfYXJnLCBDb25zdCkpCisJCQl7CisJCQkJQ29u c3QJICAgKmMgPSAoQ29uc3QgKikgbmF2LT5vZmZzZXRfYXJnOworCisJCQkJaWYgKGMtPmNvbnN0 aXNudWxsKQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogTlVMTCBvZmZzZXQgY2F1c2VzIGEgcnVu dGltZSBlcnJvciwgc28gdGhpcyBwYXRoIGlzCisJCQkJCSAqIG5ldmVyIGFjdHVhbGx5IHJlYWNo ZWQgZHVyaW5nIGV4ZWN1dGlvbi4gIFVzZSAwIGFzIGEKKwkJCQkJICogc2FmZSBwbGFjZWhvbGRl ciBmb3IgcGxhbm5pbmcgcHVycG9zZXMuCisJCQkJCSAqLworCQkJCQlvZmZzZXQgPSAwOworCQkJ CX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KGMtPmNvbnN0 dmFsdWUpOworCQkJCQlpZiAob2Zmc2V0IDwgMCkKKwkJCQkJCW9mZnNldCA9IDA7IC8qIG5lZ2F0 aXZlIG9mZnNldCBjYXVzZXMgcnVudGltZSBlcnJvciAqLworCQkJCX0KKwkJCX0KKwkJCWVsc2UK KwkJCXsKKwkJCQkvKgorCQkJCSAqIE5vbi1jb25zdGFudCBvZmZzZXQgKFBhcmFtLCBzdGFibGUg ZnVuY3Rpb24sIGV0Yy4pLiBUaGUKKwkJCQkgKiBwYXJzZXIgZ3VhcmFudGVlcyBvZmZzZXQgaXMg YSBydW50aW1lIGNvbnN0YW50LCBzbyBpdCBjYW4KKwkJCQkgKiBiZSBldmFsdWF0ZWQgYXQgZXhl Y3V0b3IgaW5pdCB0aW1lLgorCQkJCSAqLworCQkJCSptYXhPZmZzZXQgPSBSUFJfTkFWX09GRlNF VF9ORUVEU19FVkFMOworCQkJCXJldHVybiB0cnVlOwkvKiBzdG9wIHdhbGtpbmcgKi8KKwkJCX0K KworCQkJaWYgKG9mZnNldCA+ICptYXhPZmZzZXQpCisJCQkJKm1heE9mZnNldCA9IG9mZnNldDsK KwkJfQorCisJCS8qIERvbid0IHdhbGsgaW50byBSUFJOYXZFeHByIGNoaWxkcmVuIC0gb2Zmc2V0 X2FyZyBhbHJlYWR5IGhhbmRsZWQgKi8KKwkJcmV0dXJuIGZhbHNlOworCX0KKworCXJldHVybiBl eHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9tYXhfb2Zmc2V0X3dhbGtlciwgbWF4T2Zm c2V0KTsKK30KKworLyoKKyAqIGNvbXB1dGVfbmF2X21heF9vZmZzZXQKKyAqCQlDb21wdXRlIHRo ZSBtYXhpbXVtIFBSRVYgb2Zmc2V0IGZyb20gREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucy4KKyAq CisgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCBmb3VuZCwgb3IgLTEgaWYg YW55IFBSRVYgb2Zmc2V0CisgKiBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBzdGF0aWNhbGx5LiAgTkVY VCBvZmZzZXRzIGFyZSBpZ25vcmVkIHNpbmNlIHRoZXkKKyAqIGxvb2sgZm9yd2FyZCBhbmQgZG9u J3QgYWZmZWN0IHR1cGxlc3RvcmUgdHJpbS4KKyAqLworc3RhdGljIGludDY0Citjb21wdXRlX25h dl9tYXhfb2Zmc2V0KExpc3QgKmRlZmluZUNsYXVzZSkKK3sKKwlpbnQ2NAkJbWF4T2Zmc2V0ID0g MDsKKwlMaXN0Q2VsbCAgICpsYzsKKworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkKKwl7CisJ CVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJCWlmIChu YXZfbWF4X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUtPmV4cHIsICZtYXhPZmZzZXQpKQorCQkJ cmV0dXJuIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUw7CisJfQorCisJcmV0dXJuIG1heE9mZnNl dDsKK30KKwogLyoKICAqIGNyZWF0ZV93aW5kb3dhZ2dfcGxhbgogICoKQEAgLTY2NzgsNiArNjc3 Niw5IEBAIG1ha2Vfd2luZG93YWdnKExpc3QgKnRsaXN0LCBXaW5kb3dDbGF1c2UgKndjLAogCiAJ bm9kZS0+ZGVmaW5lQ2xhdXNlID0gZGVmaW5lQ2xhdXNlOwogCisJLyogQ29tcHV0ZSBtYXggUFJF ViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwlub2RlLT5uYXZN YXhPZmZzZXQgPSBjb21wdXRlX25hdl9tYXhfb2Zmc2V0KGRlZmluZUNsYXVzZSk7CisKIAlwbGFu LT50YXJnZXRsaXN0ID0gdGxpc3Q7CiAJcGxhbi0+bGVmdHRyZWUgPSBsZWZ0dHJlZTsKIAlwbGFu LT5yaWdodHRyZWUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA3NGE2YjY4MjEzMi4u ZmY2ZDdkNzBhNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0yNjkyLDYgKzI2OTIsNyBAQCB0 eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2dTdGF0ZQogCVR1cGxlVGFibGVTbG90ICp0ZW1wX3Nsb3Rf MjsKIAogCS8qIFJQUiBuYXZpZ2F0aW9uICovCisJaW50NjQJCW5hdk1heE9mZnNldDsJLyogbWF4 IFBSRVYgb2Zmc2V0OyBzZWUgUlBSX05BVl9PRkZTRVRfKiAqLwogCXN0cnVjdCBXaW5kb3dPYmpl Y3REYXRhICpuYXZfd2lub2JqOwkvKiB3aW5vYmogZm9yIFJQUiBuYXYgZmV0Y2ggKi8KIAlpbnQ2 NAkJbmF2X3Nsb3RfcG9zOwkvKiBwb3NpdGlvbiBjYWNoZWQgaW4gbmF2X3Nsb3QsIG9yIC0xICov CiAJVHVwbGVUYWJsZVNsb3QgKm5hdl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQgdGFyZ2V0 IHJvdyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBjZWFhYjRkOTdiMC4uMjdhMmU3YjQ4Yzcg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC0xMzg2LDYgKzEzODYsMTUgQEAgdHlwZWRlZiBzdHJ1 Y3QgV2luZG93QWdnCiAJLyogUm93IFBhdHRlcm4gREVGSU5FIGNsYXVzZSAobGlzdCBvZiBUYXJn ZXRFbnRyeSkgKi8KIAlMaXN0CSAgICpkZWZpbmVDbGF1c2U7CiAKKwkvKgorCSAqIE1heGltdW0g UFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgbWFyayBvcHRpbWl6YXRpb24uID49IDA6IHN0YXRp Y2FsbHkKKwkgKiBkZXRlcm1pbmVkIG1heCBvZmZzZXQgKG1hcmsgPSBjdXJyZW50cG9zIC0gb2Zm c2V0KS4KKwkgKiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOiBoYXMgbm9uLWNvbnN0YW50IG9m ZnNldDsgZXZhbHVhdGUgYXQKKwkgKiBleGVjdXRvciBpbml0LiAgUlBSX05BVl9PRkZTRVRfUkVU QUlOX0FMTDogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgorCSAqIChubyB0cmltIHBvc3Np YmxlKS4KKwkgKi8KKwlpbnQ2NAkJbmF2TWF4T2Zmc2V0OworCiAJLyoKIAkgKiBmYWxzZSBmb3Ig YWxsIGFwYXJ0IGZyb20gdGhlIFdpbmRvd0FnZyB0aGF0J3MgY2xvc2VzdCB0byB0aGUgcm9vdCBv ZgogCSAqIHRoZSBwbGFuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgg Yi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKaW5kZXggMzYwZTFiYjc3N2YuLjAwYTI4YWJl MmI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcnByLmgKKysrIGIvc3JjL2lu Y2x1ZGUvb3B0aW1pemVyL3Jwci5oCkBAIC01NSw2ICs1NSwxNSBAQAogI2RlZmluZSBSUFJFbGVt SXNGaW4oZSkJCQkoKGUpLT52YXJJZCA9PSBSUFJfVkFSSURfRklOKQogI2RlZmluZSBSUFJFbGVt Q2FuU2tpcChlKQkJKChlKS0+bWluID09IDApCiAKKy8qCisgKiBuYXZNYXhPZmZzZXQgc2VudGlu ZWwgdmFsdWVzLgorICogTm9uLW5lZ2F0aXZlIHZhbHVlcyByZXByZXNlbnQgYSBzdGF0aWNhbGx5 IGRldGVybWluZWQgbWF4aW11bSBQUkVWIG9mZnNldC4KKyAqLworI2RlZmluZSBSUFJfTkFWX09G RlNFVF9ORUVEU19FVkFMCSgtMSkJLyogaGFzIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldDsKKwkJ CQkJCQkJCQkJICogZXZhbHVhdGUgYXQgZXhlY3V0b3IgaW5pdCAqLworI2RlZmluZSBSUFJfTkFW X09GRlNFVF9SRVRBSU5fQUxMCSgtMikJLyogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgor CQkJCQkJCQkJCQkgKiAoZS5nLiwgZnV0dXJlIEZJUlNUL0xBU1QpICovCisKIGV4dGVybiBMaXN0 ICpjb2xsZWN0UGF0dGVyblZhcmlhYmxlcyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVybik7CiBleHRl cm4gdm9pZCBidWlsZERlZmluZVZhcmlhYmxlTGlzdChMaXN0ICpkZWZpbmVDbGF1c2UsCiAJCQkJ CQkJCQlMaXN0ICoqZGVmaW5lVmFyaWFibGVMaXN0KTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Disposition: attachment; filename="nocfbot-0020-Update-RPR-code-comments-for-1-slot-navigation.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tr2a519 RnJvbSBmZWE0NTYxODAxMTFiZmRiMTBkNGRjNTgwZmM0MDYyZmUwYWU2YjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUaHUsIDIgQXByIDIwMjYgMTY6MDY6MDYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBVcGRhdGUg UlBSIGNvZGUgY29tbWVudHMgdG8gcmVmbGVjdCAxLXNsb3QgbmF2aWdhdGlvbiBtb2RlbAoKLS0t CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgfCA0NSArKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMgfCAgMyArKy0K IDIgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jCmluZGV4IDRjNDI5NTI4YjA0Li41NDI4ZDBlOGZjNCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwpAQCAtMTkxLDEwICsxOTEsMTUgQEAKICAqIHRyYW5zZm9ybURlZmluZUNs YXVzZSgpIHByb2Nlc3NlcyBlYWNoIERFRklORSB2YXJpYWJsZSBhcyBmb2xsb3dzOgogICoKICAq ICAgKDEpIENoZWNrcyBmb3IgZHVwbGljYXRlIHZhcmlhYmxlIG5hbWVzCi0gKiAgICgyKSBUcmFu c2Zvcm1zIHRoZSBleHByZXNzaW9uIGludG8gYSBzdGFuZGFyZCBTUUwgZXhwcmVzc2lvbgotICog ICAoMykgQ29lcmNlcyB0byBCb29sZWFuIHR5cGUgKGNvZXJjZV90b19ib29sZWFuKQorICogICAo MikgVHJhbnNmb3JtcyB0aGUgZXhwcmVzc2lvbiB2aWEgdHJhbnNmb3JtRXhwcigpCisgKiAgICgz KSBFeHRyYWN0cyBWYXIgbm9kZXMgdmlhIHB1bGxfdmFyX2NsYXVzZSgpIGFuZCBlbnN1cmVzIGVh Y2ggaXMKKyAqICAgICAgIHByZXNlbnQgaW4gdGhlIHF1ZXJ5IHRhcmdldGxpc3QsIHNvIHRoZSBw bGFubmVyIHByb3BhZ2F0ZXMgdGhlCisgKiAgICAgICByZWZlcmVuY2VkIGNvbHVtbnMgdGhyb3Vn aCB0aGUgcGxhbiB0cmVlCiAgKiAgICg0KSBXcmFwcyBpbiBhIFRhcmdldEVudHJ5IHdpdGggdGhl IHZhcmlhYmxlIG5hbWUgc2V0IGluIHJlc25hbWUKICAqCisgKiBBZnRlciBhbGwgdmFyaWFibGVz IGFyZSBwcm9jZXNzZWQ6CisgKiAgICg1KSBDb2VyY2VzIGVhY2ggZXhwcmVzc2lvbiB0byBCb29s ZWFuIHR5cGUgKGNvZXJjZV90b19ib29sZWFuKQorICoKICAqIFZhcmlhYmxlcyB0aGF0IGFyZSB1 c2VkIGluIFBBVFRFUk4gYnV0IG5vdCBkZWZpbmVkIGluIERFRklORSBhcmUgaW1wbGljaXRseQog ICogZXZhbHVhdGVkIGFzIFRSVUUgKG1hdGNoaW5nIGFsbCByb3dzKS4KICAqCkBAIC00MzEsOCAr NDM2LDkgQEAKICAqCiAgKiAgIENhc2UgMTogU2ltcGxlIFZBUisgKGUuZy4sIEErKQogICogICAg ICAgICAgIC0+IEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBzZXQgb24gdGhlIFZBUgot ICogICBDYXNlIDI6IEdST1VQKyB3aG9zZSBib2R5IGNvbnNpc3RzIG9ubHkgb2YgezEsMX0gVkFS cyAoZS5nLiwgKEEgQikrKQotICogICAgICAgICAgIC0+IEFCU09SQkFCTEVfQlJBTkNIIG9uIGNo aWxkcmVuLAorICogICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVkLWxlbmd0aCBjaGlsZHJlbiAo bWluID09IG1heCwgcmVjdXJzaXZlbHkpCisgKiAgICAgICAgICAgZS5nLiwgKEEgQikrLCAoQSBC ezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKworICogICAgICAgICAgIC0+IEFCU09SQkFCTEVfQlJB TkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAogICogICAgICAgICAgICAgQUJT T1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIG9uIEVORAogICogICBDYXNlIDM6IEdST1VQKyB3 aG9zZSBib2R5IHN0YXJ0cyB3aXRoIFZBUisgKGUuZy4sIChBKyBCKSspCiAgKiAgICAgICAgICAg LT4gUmVjdXJzZXMgZnJvbSBCRUdJTiBpbnRvIHRoZSBib2R5LCBhcHBseWluZyBDYXNlIDEuCkBA IC02MDQsMTEgKzYxMCwxNyBAQAogICogICAgICAgdmFyTWF0Y2hlZFtpXSA9IChub3QgbnVsbCBh bmQgdHJ1ZSkKICAqCiAgKiBUbyBzdXBwb3J0IHJvdyBuYXZpZ2F0aW9uIG9wZXJhdG9ycyBzdWNo IGFzIFBSRVYoKSBhbmQgTkVYVCgpLAotICogdGhlIHByZXZpb3VzIHJvdywgY3VycmVudCByb3cs IGFuZCBuZXh0IHJvdyBhcmUgc2V0IGluIHNlcGFyYXRlIHNsb3RzOgorICogYSAxLXNsb3QgbW9k ZWwgaXMgdXNlZDogb25seSBlY3h0X291dGVydHVwbGUgaXMgc2V0IHRvIHRoZSBjdXJyZW50Cisg KiByb3cuICBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5IEVFT1BfUlBSX05BVl9T RVQvUkVTVE9SRQorICogb3Bjb2RlcyBlbWl0dGVkIGR1cmluZyBERUZJTkUgZXhwcmVzc2lvbiBj b21waWxhdGlvbjoKKyAqCisgKiAgIE5BVl9TRVQ6ICAgICBzYXZlIGVjeHRfb3V0ZXJ0dXBsZSwg c3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAorICogICAoZXZhbHVhdGUpOiAgYXJndW1l bnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xvdAorICogICBOQVZfUkVTVE9SRTog cmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKICAqCi0gKiAgIGVjeHRfc2NhbnR1cGxl ICA9IHByZXZpb3VzIHJvdyAoZm9yIFBSRVYgcmVmZXJlbmNlKQotICogICBlY3h0X291dGVydHVw bGUgPSBjdXJyZW50IHJvdyAgKGRlZmF1bHQgcmVmZXJlbmNlKQotICogICBlY3h0X2lubmVydHVw bGUgPSBuZXh0IHJvdyAgICAgKGZvciBORVhUIHJlZmVyZW5jZSkKKyAqIG5hdl9zbG90IGNhY2hl cyB0aGUgbGFzdCBmZXRjaGVkIHBvc2l0aW9uIChuYXZfc2xvdF9wb3MpIHRvIGF2b2lkCisgKiBy ZWR1bmRhbnQgdHVwbGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgUFJFVi9ORVhUIGNhbGxz IHRhcmdldAorICogdGhlIHNhbWUgcm93LgogICoKICAqIFRoZSB2YXJNYXRjaGVkIGFycmF5IGlz IHJlZmVyZW5jZWQgbGF0ZXIgaW4gUGhhc2UgMSAoTWF0Y2gpLgogICoKQEAgLTkwOCw4ICs5MjAs MTEgQEAKICAqCiAgKiAgICgyKSBBdCBydW50aW1lOiBpbml0aWFsaXplIHRoZSBuZmFWaXNpdGVk RWxlbXMgYml0bWFwIGltbWVkaWF0ZWx5IGJlZm9yZQogICogICAgICAgREZTIGV4cGFuc2lvbiBv ZiBlYWNoIHN0YXRlIHdpdGhpbiBhZHZhbmNlIChvbmNlIHBlciBzdGF0ZSkuCi0gKiAgICAgICBE dXJpbmcgREZTLCBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbUlkeCBiaXQgd2hlbiB2aXNpdGlu ZyBlYWNoCi0gKiAgICAgICBlbGVtZW50LgorICogICAgICAgRHVyaW5nIERGUywgZXBzaWxvbiBl bGVtZW50cyAoRU5ELCBBTFQsIEJFR0lOKSBhcmUgbWFya2VkIGluIHRoZQorICogICAgICAgYml0 bWFwIGF0IG5mYV9hZHZhbmNlX3N0YXRlIGVudHJ5LiAgVkFSIGVsZW1lbnRzIGFyZSBtYXJrZWQg bGF0ZXIKKyAqICAgICAgIHdoZW4gYWRkZWQgdG8gdGhlIHN0YXRlIGxpc3QgKG5mYV9hZGRfc3Rh dGVfdW5pcXVlKSwgc28gdGhhdAorICogICAgICAgbGVnaXRpbWF0ZSBsb29wLWJhY2sgdG8gdGhl IHNhbWUgVkFSIGluIGEgbmV3IGdyb3VwIGl0ZXJhdGlvbgorICogICAgICAgKGUuZy4sIEVORCAt PiBBTFQgLT4gc2FtZSBWQVIpIGlzIG5vdCBibG9ja2VkLgogICogICAgICAgSWYgYSBwcmV2aW91 c2x5IHZpc2l0ZWQgZWxlbUlkeCBpcyByZXZpc2l0ZWQsIHRoYXQgcGF0aCBpcyB0ZXJtaW5hdGVk LgogICoKICAqICAgTm90ZTogdGhlIGJpdG1hcCB0cmFja3Mgb25seSBlbGVtSWR4IGFuZCBkb2Vz IG5vdCBjb25zaWRlciBjb3VudHMuCkBAIC0xMjE2LDExICsxMjMxLDExIEBACiAgKiAgICgzKSBT dGF0ZSBEZWR1cGxpY2F0aW9uIChJWC01KQogICoKICAqICAgICBEdXJpbmcgYWR2YW5jZSwgREZT IG1heSBnZW5lcmF0ZSBzdGF0ZXMgd2l0aCB0aGUgc2FtZSAoZWxlbUlkeCwKLSAqICAgICBjb3Vu dHMpIGNvbWJpbmF0aW9uIHRocm91Z2ggbXVsdGlwbGUgcGF0aHMuIEFkZGl0aW9uYWxseSwgdW5s aWtlCi0gKiAgICAgVkFSIHJlcGV0aXRpb24sIGdyb3VwIHJlcGV0aXRpb24gY2Fubm90IHBlcmZv cm0gYWJzb3JwdGlvbgotICogICAgIGNvbXBhcmlzb24gdXNpbmcgVkFSIHN0YXRlcywgc28gaW5s aW5lIGFkdmFuY2UgaXMgcGVyZm9ybWVkIGZyb20KLSAqICAgICBhZnRlciBQaGFzZSAxIG1hdGNo IHRocm91Z2ggdG8gRU5EOyB0aGlzIHByb2Nlc3MgY2FuIGFsc28gcHJvZHVjZQotICogICAgIGR1 cGxpY2F0ZSBzdGF0ZXMgcmVhY2hpbmcgdGhlIHNhbWUgRU5ELgorICogICAgIGNvdW50cykgY29t YmluYXRpb24gdGhyb3VnaCBtdWx0aXBsZSBwYXRocy4gQWRkaXRpb25hbGx5LCBmb3IKKyAqICAg ICBncm91cCBhYnNvcnB0aW9uLCBuZmFfbWF0Y2ggcGVyZm9ybXMgaW5saW5lIGFkdmFuY2UgZnJv bSBib3VuZGVkCisgKiAgICAgVkFScyAoY291bnQgPj0gbWF4KSB3aXRoaW4gdGhlIGFic29yYmFi bGUgcmVnaW9uIChBQlNPUkJBQkxFX0JSQU5DSCkKKyAqICAgICB0aHJvdWdoIEVORCBjaGFpbnMg dG8gcmVhY2ggdGhlIGp1ZGdtZW50IHBvaW50IChBQlNPUkJBQkxFIEVORCkuCisgKiAgICAgVGhp cyBwcm9jZXNzIGNhbiBhbHNvIHByb2R1Y2UgZHVwbGljYXRlIHN0YXRlcyByZWFjaGluZyB0aGUg c2FtZSBFTkQuCiAgKiAgICAgbmZhX2FkZF9zdGF0ZV91bmlxdWUoKSBibG9ja3MgZHVwbGljYXRl IGFkZGl0aW9uIG9mIGlkZW50aWNhbCBzdGF0ZXMKICAqICAgICBpbiBib3RoIGNhc2VzLgogICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCAzZmI1ZDk0YWJlOS4uZDFlMDJlNTJlNTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcnByLmMKQEAgLTI2NSw3ICsyNjUsOCBAQCB2YWxpZGF0ZVJQUlBhdHRlcm5W YXJDb3VudChQYXJzZVN0YXRlICpwc3RhdGUsIFJQUlBhdHRlcm5Ob2RlICpub2RlLAogICoKICAq IFRoZW4gZm9yIGVhY2ggREVGSU5FIHZhcmlhYmxlOgogICogICAyLiBDaGVja3MgZm9yIGR1cGxp Y2F0ZSB2YXJpYWJsZSBuYW1lcyBpbiBERUZJTkUgY2xhdXNlCi0gKiAgIDMuIFRyYW5zZm9ybXMg ZXhwcmVzc2lvbnMgYW5kIGFkZHMgdG8gdGFyZ2V0bGlzdCB2aWEgZmluZFRhcmdldGxpc3RFbnRy eVNRTDk5CisgKiAgIDMuIFRyYW5zZm9ybXMgZXhwcmVzc2lvbiB2aWEgdHJhbnNmb3JtRXhwcigp IGFuZCBlbnN1cmVzIHJlZmVyZW5jZWQKKyAqICAgICAgVmFyIG5vZGVzIGFyZSBwcmVzZW50IGlu IHRoZSBxdWVyeSB0YXJnZXRsaXN0ICh2aWEgcHVsbF92YXJfY2xhdXNlKQogICogICA0LiBDcmVh dGVzIGRlZmluZUNsYXVzZSBlbnRyeSB3aXRoIHByb3BlciByZXNuYW1lIChwYXR0ZXJuIHZhcmlh YmxlIG5hbWUpCiAgKiAgIDUuIENvZXJjZXMgZXhwcmVzc2lvbnMgdG8gYm9vbGVhbiB0eXBlCiAg KiAgIDYuIE1hcmtzIGNvbHVtbiBvcmlnaW5zIGFuZCBhc3NpZ25zIGNvbGxhdGlvbiBpbmZvcm1h dGlvbgotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Disposition: attachment; filename="nocfbot-0021-Enable-JIT-PREV-NEXT-tests.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tr6ix20 RnJvbSA3OWYzMmVlNjk5MWUzY2JmNWJlYTBlNTEwOTllOTYxM2MxM2Y1ZWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NDg6NTQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBFbmFibGUg SklUIGNvbXBpbGF0aW9uIGZvciBQUkVWL05FWFQgbmF2aWdhdGlvbiB0ZXN0cyBpbiBSUFIKCi0t LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IHwgMiArKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvcnByLnNxbCAgICAgIHwgMiArKwogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlv bnMoKykKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKaW5kZXggZGU2Y2U0ZmJhOGEuLjVhNDYw ZTliZDUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CkBAIC0yMTU2LDYgKzIxNTYsNyBA QCBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xhc3QsIG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBX SEVSRSBtYXRjaF9sZW4gPiAwOwogLS0gSklUIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIHRlc3Q6IDEw MEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgogLS0gRXhlcmNpc2VzIEVFT1BfUlBSX05BVl9T RVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFzX3Jwcl9uYXYgcmVsb2FkKQogLS0gYXQgc2Nh bGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4gZmFsbHMsIHJlcGVhdGVkIGFjcm9zcyBwYXJ0 aXRpb24uCitTRVQgaml0ID0gb247CiBTRVQgaml0X2Fib3ZlX2Nvc3QgPSAwOwogV0lUSCBkYXRh IEFTICgKICBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0gaSkgQVMgcHJpY2UKQEAgLTIxODQsNiArMjE4 NSw3IEBAIEZST00gcmVzdWx0IFdIRVJFIG1hdGNoX2xlbiA+IDA7CiAoMSByb3cpCiAKIFJFU0VU IGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0OwogLS0KIC0tIElHTk9SRSBOVUxMUwogLS0KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHIuc3FsCmluZGV4IGIzYmJjODI1NGM0Li5lNDE3Nzg5ZWIyYiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9y cHIuc3FsCkBAIC0xMDg3LDYgKzEwODcsNyBAQCBTRUxFQ1QgbWF0Y2hfZmlyc3QsIG1hdGNoX2xh c3QsIG1hdGNoX2xlbiBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogLS0gSklUIFBS RVYvTkVYVCBuYXZpZ2F0aW9uIHRlc3Q6IDEwMEsgcm93cyB3aXRoIFBSRVYgaW4gREVGSU5FLgog LS0gRXhlcmNpc2VzIEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBKSVQgY29kZSBwYXRocyAoaGFz X3Jwcl9uYXYgcmVsb2FkKQogLS0gYXQgc2NhbGUuIFYtc2hhcGU6IHByaWNlIHJpc2VzIHRoZW4g ZmFsbHMsIHJlcGVhdGVkIGFjcm9zcyBwYXJ0aXRpb24uCitTRVQgaml0ID0gb247CiBTRVQgaml0 X2Fib3ZlX2Nvc3QgPSAwOwogV0lUSCBkYXRhIEFTICgKICBTRUxFQ1QgaSwgYWJzKDUwMDAwIC0g aSkgQVMgcHJpY2UKQEAgLTExMTAsNiArMTExMSw3IEBAIHJlc3VsdCBBUyAoCiBTRUxFQ1QgY291 bnQoKikgQVMgbWF0Y2hlZF9yb3dzLCBtYXgobWF0Y2hfbGVuKSBBUyBsb25nZXN0X21hdGNoCiBG Uk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9sZW4gPiAwOwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CitS RVNFVCBqaXQ7CiAKIC0tCiAtLSBJR05PUkUgTlVMTFMKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1 NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Disposition: attachment; filename="nocfbot-0022-Add-2-arg-PREV-NEXT-host-variable-test.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tr8rc21 RnJvbSAwODFmNzA4NDc3NjZiMmFhMzEyYjY2N2U1YjdjOGUyYTQxMDg4Mzc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMDk6NTM6MTQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgMi1h cmcgUFJFVi9ORVhUIHRlc3QgZm9yIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gd2l0aCBob3N0CiB2 YXJpYWJsZQoKLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgfCA2MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3Fs ICAgICAgfCAxNiArKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHIub3V0CmluZGV4IDVhNDYwZTliZDUyLi5jMDJkYmQ0YzA4ZCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHIub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dApAQCAtMTQ5Miw2ICsxNDkyLDY5IEBAIEVYRUNV VEUgdGVzdF9wcmV2X29mZnNldCgtMSk7CiBFUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBu b3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKIEVSUk9SOiAg UFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitERUFMTE9DQVRFIHRlc3RfcHJldl9v ZmZzZXQ7CistLSAyLWFyZyBQUkVWL05FWFQ6IGhvc3QgdmFyaWFibGUgd2l0aCBwb3NpdGl2ZSB2 YWx1ZQorLS0gRXhlcmNpc2VzIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgLT4gZXZhbF9uYXZf bWF4X29mZnNldCgpIHBhdGgKK1BSRVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUworU0VM RUNUIGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdywgY291 bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFSVElUSU9OIEJZ IGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgcHJpY2UgPiBQ UkVWKHByaWNlLCAkMSkKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMSk7CisgY29tcGFu eSAgfCAgIHRkYXRlICAgIHwgcHJpY2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8 IDA3LTAxLTIwMjMgfCAgIDEwMCB8ICAgICAgICAgMTAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3 LTAyLTIwMjMgfCAgIDIwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAz LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIw MjMgfCAgIDE0MCB8ICAgICAgICAgMTQwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMg fCAgIDE1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAg ICA5MCB8ICAgICAgICAgIDkwIHwgICAgIDMKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDEx MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAg ICAgICAgMTIwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAg IDUwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAxNDAwIHwgICAg IDIKKyBjb21wYW55MiB8IDA3LTA1LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAgICA2MCB8ICAgICAgICAgIDYwIHwgICAgIDMKKyBj b21wYW55MiB8IDA3LTA3LTIwMjMgfCAgMTEwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTA4LTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA5LTIwMjMgfCAgMTIwMCB8ICAgICAgICAxMjAwIHwgICAgIDIKKyBjb21wYW55MiB8 IDA3LTEwLTIwMjMgfCAgMTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCitF WEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoMik7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwgcHJp Y2UgfCBmaXJzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAgIDEwMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAgIDIwMCB8ICAg ICAgICAgMjAwIHwgICAgIDIKKyBjb21wYW55MSB8IDA3LTAzLTIwMjMgfCAgIDE1MCB8ICAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgIDE0MCB8ICAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAgIDE1MCB8ICAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAgICA5MCB8ICAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MSB8IDA3LTA3LTIwMjMgfCAgIDExMCB8ICAgICAgICAgMTEwIHwgICAg IDMKKyBjb21wYW55MSB8IDA3LTA4LTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAgIDEyMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTEwLTIwMjMgfCAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MiB8IDA3LTAxLTIwMjMgfCAgICA1MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTAyLTIwMjMgfCAgMjAwMCB8ICAgICAgICAyMDAwIHwgICAgIDIKKyBjb21wYW55MiB8 IDA3LTAzLTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTA0LTIwMjMgfCAgMTQwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA1 LTIwMjMgfCAgMTUwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA2LTIw MjMgfCAgICA2MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMg fCAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgIDMKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMgfCAg MTMwMCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgMTIw MCB8ICAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAgMTMwMCB8 ICAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCiBERUFMTE9DQVRFIHRlc3RfcHJldl9v ZmZzZXQ7CiAtLSAyLWFyZzogdHdvIFBSRVYgd2l0aCBkaWZmZXJlbnQgb2Zmc2V0cyBpbiBzYW1l IERFRklORSBjbGF1c2UKIC0tIEI6IHByaWNlIGV4Y2VlZHMgYm90aCAxLWJhY2sgYW5kIDItYmFj ayB2YWx1ZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IGU0MTc3ODllYjJiLi40N2YzMzkwNDY5MCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC03MzIsNiArNzMyLDIyIEBAIEVYRUNVVEUgdGVzdF9wcmV2 X29mZnNldCgtMSk7CiBFWEVDVVRFIHRlc3RfcHJldl9vZmZzZXQoTlVMTCk7CiBERUFMTE9DQVRF IHRlc3RfcHJldl9vZmZzZXQ7CiAKKy0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3 aXRoIHBvc2l0aXZlIHZhbHVlCistLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZB TCAtPiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aAorUFJFUEFSRSB0ZXN0X3ByZXZfb2Zmc2V0 KGludDgpIEFTCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShwcmlj ZSkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAg ICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBCWSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAg UEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwg QiBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQorKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNl dCgxKTsKK0VYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgyKTsKK0RFQUxMT0NBVEUgdGVzdF9wcmV2 X29mZnNldDsKKwogLS0gMi1hcmc6IHR3byBQUkVWIHdpdGggZGlmZmVyZW50IG9mZnNldHMgaW4g c2FtZSBERUZJTkUgY2xhdXNlCiAtLSBCOiBwcmljZSBleGNlZWRzIGJvdGggMS1iYWNrIGFuZCAy LWJhY2sgdmFsdWVzCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLAotLSAKMi41MC4xIChB cHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Disposition: attachment; filename="nocfbot-0023-Nav-Mark-Lookback-EXPLAIN.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trbjf22 RnJvbSBhNGYyNjA2NTE0MjJlN2JjMzY0Nzg5ZDQ5Mzc4NGQ1ZTdmOWU3YzUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBNb24sIDYgQXByIDIwMjYgMTA6NDY6MzggKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgTmF2 IE1hcmsgTG9va2JhY2sgdG8gRVhQTEFJTiBhbmQgZml4CiBjb21wdXRlX25hdl9tYXhfb2Zmc2V0 KCkKClNob3cgdGhlIHBsYW5uZXItY29tcHV0ZWQgbmF2TWF4T2Zmc2V0IGluIEVYUExBSU4gb3V0 cHV0IGFzCiJOYXYgTWFyayBMb29rYmFjayIgZm9yIFJQUiB3aW5kb3dzLCBzbyB0aGF0IHR1cGxl c3RvcmUgdHJpbQpiZWhhdmlvciBpcyB2aXNpYmxlIGluIHF1ZXJ5IHBsYW5zLiAgRGlzcGxheWVk IGFzIGFuIGludGVnZXIgZm9yCmNvbnN0YW50IG9mZnNldHMsICJydW50aW1lIiBmb3Igbm9uLWNv bnN0YW50IChQYXJhbSkgb2Zmc2V0cywgYW5kCiJyZXRhaW4gYWxsIiB3aGVuIHRoZSBlbnRpcmUg cGFydGl0aW9uIG11c3QgYmUgcHJlc2VydmVkLgoKRml4IGNvbXB1dGVfbmF2X21heF9vZmZzZXQo KSB0byByZXR1cm4gdGhlIHdhbGtlci1zZXQgdmFsdWUgaW5zdGVhZApvZiB1bmNvbmRpdGlvbmFs bHkgcmV0dXJuaW5nIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgd2hlbiB0aGUKd2Fsa2VyIHN0 b3BzIGVhcmx5LgoKQWRkIHJlZ3Jlc3Npb24gdGVzdHMgY292ZXJpbmcgY29uc3RhbnQgb2Zmc2V0 cywgTkVYVC1vbmx5LCBtdWx0aXBsZQpQUkVWIG9mZnNldHMsIGFuZCBob3N0IHZhcmlhYmxlIG9m ZnNldHMgdW5kZXIgYm90aCBjdXN0b20gYW5kIGdlbmVyaWMKcGxhbnMuCi0tLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgICAgICAgIHwgMjMxICsrKysrKy0tLS0KIHNyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0ICAgICB8IDM5NyArKysrKysrKysr KysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dCB8 ICA3MCArKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNxbCAgICAgICAgICB8 ICA3MSArKysrCiA2IGZpbGVzIGNoYW5nZWQsIDU5MCBpbnNlcnRpb25zKCspLCAxOTAgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDkzM2VhZGFiNzFlLi4xODQ4ZGU5ZGU3 YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMzI1NCw2ICszMjU0LDE1IEBAIHNob3dfd2lu ZG93X2RlZihXaW5kb3dBZ2dTdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNlc3RvcnMsIEV4cGxh aW5TdGF0ZSAqZXMpCiAJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJQYXR0ZXJuIiwgcGF0dGVyblN0 ciwgZXMpOwogCQkJcGZyZWUocGF0dGVyblN0cik7CiAJCX0KKworCQkvKiBTaG93IG5hdmlnYXRp b24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltICovCisJCWlmICh3YWdnLT5uYXZNYXhPZmZz ZXQgPT0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCkKKwkJCUV4cGxhaW5Qcm9wZXJ0eVRleHQo Ik5hdiBNYXJrIExvb2tiYWNrIiwgInJldGFpbiBhbGwiLCBlcyk7CisJCWVsc2UgaWYgKHdhZ2ct Pm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCQkJRXhwbGFpblBy b3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2JhY2siLCAicnVudGltZSIsIGVzKTsKKwkJZWxzZQor CQkJRXhwbGFpblByb3BlcnR5SW50ZWdlcigiTmF2IE1hcmsgTG9va2JhY2siLCBOVUxMLAorCQkJ CQkJCQkgICB3YWdnLT5uYXZNYXhPZmZzZXQsIGVzKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCBlZTJkNTNiNTkyNC4uOGVlM2NjZjZkMGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI1NTMsNyArMjU1Myw3 IEBAIGNvbXB1dGVfbmF2X21heF9vZmZzZXQoTGlzdCAqZGVmaW5lQ2xhdXNlKQogCQlUYXJnZXRF bnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAogCQlpZiAobmF2X21heF9v ZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmbWF4T2Zmc2V0KSkKLQkJCXJldHVybiBS UFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCQkJcmV0dXJuIG1heE9mZnNldDsJLyogTkVFRFNf RVZBTCBvciBSRVRBSU5fQUxMICovCiAJfQogCiAJcmV0dXJuIG1heE9mZnNldDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQKaW5kZXggMzdhYTgxZWJkZWEuLjFlNDUwYTA3Y2Vk IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9iYXNlLm91dApAQCAtMzA2NSwxMCArMzA2 NSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9S REVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgIFBhdHRlcm46IGF7M30KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29y dAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3Bs YW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEF7Mn0g QXszfSAtPiBhezV9CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMDgwLDEwICszMDgxLDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYXs1fQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAg ICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYg cm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIFZBUiBtZXJnZTogQSsgQSogLT4gYSsK IEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTMwOTUsMTAgKzMwOTcsMTEgQEAgV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBDb25zZWN1dGl2ZSBWQVIgbWVyZ2U6IEEgQSsgLT4gYXsyLH0KIC0tIFRlc3RzIGxp bmUgMjUxOiBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9JTkYgYnJhbmNoIGluIG1lcmdlQ29u c2VjdXRpdmVWYXJzCkBAIC0zMTEyLDEwICszMTE1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXsyLH0iCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAog LS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2Ugd2l0aCBmaW5pdGUgcXVhbnRpZmllcnM6ICgoQSBC KXs1fSkgKChBIEIpezEwfSkgLT4gbWVyZ2VkCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMTI3 LDEwICszMTMxLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYil7MTV9CisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgR1JP VVAgbWVyZ2Ugd2l0aCB1bmJvdW5kZWQ6IChBIEIpKyAoQSBCKSsgLT4gKGEgYil7Mix9CiBFWFBM QUlOIChDT1NUUyBPRkYpCkBAIC0zMTQyLDEwICszMTQ3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK ICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXsy LH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQg S2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcg cm93cykKIAogLS0gQ29uc2VjdXRpdmUgR1JPVVAgbWVyZ2U6IChBIEIpezJ9IChBIEIpKyAtPiAo YSBiKXszLH0KIC0tIFRlc3RzIGxpbmUgMzI1OiBjaGlsZC0+bWF4ID09IFJQUl9RVUFOVElUWV9J TkYgYnJhbmNoIGluIG1lcmdlQ29uc2VjdXRpdmVHcm91cHMKQEAgLTMxNTksMTAgKzMxNjUsMTEg QEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiAoYScgYicpezMsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAg U29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnBy X3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBQUkVGSVggbWVyZ2U6IEEgQiAoQSBCKSsg LT4gKGEgYil7Mix9CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zMTc0LDEwICszMTgxLDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUFJFRklYIGFuZCBTVUZGSVggbWVyZ2U6IEEg QiAoQSBCKSsgQSBCIC0+IChhIGIpezMsfQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzE4OSwx MCArMzE5NywxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IChhJyBiJyl7Myx9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEZsYXR0ZW4gbmVzdGVk OiBBICgoQikgKEMpKSAtPiBhIGIgYwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzIwNCwxMCAr MzIxMywxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGEgYiBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4g IFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gRGF0YSBleGVjdXRpb246IFNFUSBmbGF0 dGVuIHByb2R1Y2VzIGNvcnJlY3QgcmVzdWx0cwogU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9W RVIgdyBBUyBjbnQKQEAgLTMyMzksMTAgKzMyNDksMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSsK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6 IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dz KQogCiAtLSBBTFQgZGVkdXBsaWNhdGU6IChBIHwgQiB8IEEpIC0+IChhIHwgYikKIEVYUExBSU4g KENPU1RTIE9GRikKQEAgLTMyNTQsMTAgKzMyNjUsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdp bmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpKworICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQK ICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAK IC0tIERhdGEgZXhlY3V0aW9uOiBBTFQgZGVkdXAgcHJvZHVjZXMgY29ycmVjdCByZXN1bHRzCiBT RUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudApAQCAtMzI4OSwxMCArMzMwMSwx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IGF7Nn0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIG11bHRpcGx5IHdpdGggY2hpbGQg cmFuZ2U6IChBezIsM30pezN9IC0+IGF7Niw5fQogLS0gb3V0ZXIgZXhhY3QsIGNoaWxkIHJhbmdl IC0gb3B0aW1pemF0aW9uIGFwcGxpZXMKQEAgLTMzMDUsMTAgKzMzMTgsMTEgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBh ezYsOX0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29y dCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCiso NyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7MiwzfSBzdGF5cyBh cyAoYXsyfSl7MiwzfQogLS0gb3V0ZXIgcmFuZ2UgLSBnYXBzIHdvdWxkIG9jY3VyICg0LDYgbm90 IDQsNSw2KSwgbm8gb3B0aW1pemF0aW9uCkBAIC0zMzIxLDEwICszMzM1LDExIEBAIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog KGF7Mn0pezIsM30KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJv d3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsyfSl7Mix9IHN0 YXlzIGFzIChhezJ9KXsyLH0KIC0tIG91dGVyIHVuYm91bmRlZCAtIGdhcHMgd291bGQgb2NjdXIg KDQsNiw4LC4uLiBub3QgNCw1LDYsLi4uKSwgbm8gb3B0aW1pemF0aW9uCkBAIC0zMzM3LDEwICsz MzUyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKGF7Mn0nKXsyLH0iCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUXVhbnRpZmllciBtdWx0aXBs eTogKEEpezIsfSAtPiBhezIsfQogLS0gY2hpbGQgZXhhY3QgMSAtIG5vIGdhcHMsIG9wdGltaXph dGlvbiBhcHBsaWVzCkBAIC0zMzUzLDEwICszMzY5LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYXsyLH0iCisgICBO YXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAog ICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAog LS0gUXVhbnRpZmllciBtdWx0aXBseTogKEEpKyAtPiBhKwogLS0gY2hpbGQgZXhhY3QgMSAtIG5v IGdhcHMsIG9wdGltaXphdGlvbiBhcHBsaWVzCkBAIC0zMzY5LDEwICszMzg2LDExIEBAIFdJTkRP VyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNv cnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQor KDcgcm93cykKIAogLS0gUXVhbnRpZmllciBOTyBtdWx0aXBseTogKEF7Mn0pezMsNX0gc3RheXMg YXMgKGF7Mn0pezMsNX0KIC0tIG91dGVyIHJhbmdlLCBjaGlsZCBleGFjdCA+IDEgLSBnYXBzIHdv dWxkIG9jY3VyICg2LDgsMTAgbm90IDYsNyw4LDksMTApCkBAIC0zMzg1LDEwICszNDAzLDExIEBA IFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg aWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogKGF7Mn0pezMsNX0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29y dAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3Bs YW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBRdWFudGlmaWVyIE5PIG11bHRpcGx5OiAoQXsy LDN9KXsyLDN9IHN0YXlzIGFzIChhezIsM30pezIsM30KIC0tIG91dGVyIHJhbmdlLCBjaGlsZCBy YW5nZSAtIGdhcHMgcG9zc2libGUgKGUuZy4sIChBezQsNX0pezIsM30gbWlzc2VzIDExKQpAQCAt MzQwMSwxMCArMzQyMCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhezIsM30pezIsM30KKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOZXN0ZWQg dW5ib3VuZGVkOiAoQSopKiAtPiBhKgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQxNiwxMCAr MzQzNiwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGEqIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBT b3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCB1bmJvdW5kZWQ6IChBKykqIC0+ IGEqCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0zNDMxLDEwICszNDUyLDExIEBAIFdJTkRPVyB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog YSoiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQg S2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcg cm93cykKIAogLS0gTmVzdGVkIHVuYm91bmRlZDogKEErKSsgLT4gYSsKIEVYUExBSU4gKENPU1RT IE9GRikKQEAgLTM0NDYsMTAgKzM0NjgsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0Fn ZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBVbndyYXAg R1JPVVB7MSwxfTogKEEpIC0+IGEKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM0NjEsMTAgKzM0 ODQsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBhCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQK ICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFu Ci0oNiByb3dzKQorKDcgcm93cykKIAogLS0gVW53cmFwIEdST1VQezEsMX06IChBIEIpIC0+IGEg YgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzQ3NiwxMCArMzUwMCwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEg YgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtl eTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJv d3MpCiAKIC0tIENvbWJpbmVkIG9wdGltaXphdGlvbjogQSBBIChCIEIpKyBCIEIgQyBDIEMgLT4g YXsyfSAoYnsyfSl7Mix9IGN7M30KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM0OTIsMTAgKzM1 MTcsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBhezJ9IChiezJ9KXsyLH0gY3szfQorICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZl IEdST1VQIG1lcmdlIHdpdGggdW5ib3VuZGVkOiAoQSspIChBKykgLT4gYXsyLH0KIC0tIFRlc3Rz IG1lcmdlQ29uc2VjdXRpdmVHcm91cHMgd2l0aCBjaGlsZC0+bWF4ID09IElORgpAQCAtMzUwOCwx MCArMzUzNCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGF7Mix9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIEdST1VQIG1l cmdlIGZpbml0ZTogKEF7MTB9KXsyMH0gLT4gYXsyMDB9CiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0 aXZlR3JvdXBzIHdpdGggYm90aCBmaW5pdGUKQEAgLTM1MjQsMTAgKzM1NTEsMTEgQEAgV0lORE9X IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhezIwMH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAg U29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3Mp CisoNyByb3dzKQogCiAtLSBEaWZmZXJlbnQgR1JPVVAgcHJldmVudHMgbWVyZ2U6IChBIEIpezJ9 IChDIEQpezN9CiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlR3JvdXBzIGZsdXNoIHByZXZpb3Vz CkBAIC0zNTQyLDEwICszNTcwLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAg IFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYil7Mn0gKGMgZCl7M30KKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBEaWZmZXJlbnQgY2hpbGRyZW4gY291bnQgcHJldmVudHMgbWVyZ2U6IChBIEIpKyAoQSBCIEMp KwogLS0gVGVzdHMgcnByUGF0dGVybkNoaWxkcmVuRXF1YWwgbGVuZ3RoIGNoZWNrCkBAIC0zNTU5 LDEwICszNTg4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiIChhIGIgYykrCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUFJFRklY IG9ubHkgbWVyZ2U6IEEgQiAoQSBCKSsgLT4gKGEgYil7Mix9CiAtLSBUZXN0cyBtZXJnZUdyb3Vw UHJlZml4U3VmZml4OiBhYnNvcmIgcHJlY2VkaW5nIGVsZW1lbnRzIGludG8gR1JPVVAgbWluCkBA IC0zNTc1LDEwICszNjA1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gU1VGRklY IG9ubHkgbWVyZ2U6IChBIEIpKyBBIEIgLT4gKGEgYil7Mix9CiAtLSBUZXN0cyBtZXJnZUdyb3Vw UHJlZml4U3VmZml4OiBhYnNvcmIgZm9sbG93aW5nIGVsZW1lbnRzIGludG8gR1JPVVAgbWluCkBA IC0zNTkxLDEwICszNjIyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXsyLH0iCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTXVsdGlw bGUgU1VGRklYIGFic29ycHRpb24gd2l0aCBza2lwVW50aWw6IChBIEIpKyBBIEIgQSBCIEMKIC0t IFRlc3RzIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXg6IHNraXAgYWJzb3JiZWQgc3VmZml4IGVsZW1l bnRzCkBAIC0zNjA4LDEwICszNjQwLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cK ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKXszLH0iIGMKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBQUkVGSVggbWVyZ2Ugd2l0aCByZW1haW5pbmcgcHJlZml4OiBBIEIgQyBEIChDIEQpKwogLS0g VGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogdHJpbW1lZCBsaXN0IHJlY29uc3RydWN0aW9u CkBAIC0zNjI2LDEwICszNjU5LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAg IFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIChjIGQpezIsfQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFBS RUZJWCBtZXJnZSB3aXRoIHF1YW50aWZpZXJzOiBBIEIqIChBIEIqKSsgLT4gKGEgYiopezIsfQog LS0gVGVzdHMgbWVyZ2VHcm91cFByZWZpeFN1ZmZpeDogcXVhbnRpZmllciBjb21wYXJpc29uIGlu IHJwclBhdHRlcm5FcXVhbApAQCAtMzY0MywxMCArMzY3NywxMSBAQCBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIGIqKXsy LH0KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBL ZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBQUkVGSVggbWVyZ2Ugd2l0aCBtdWx0aXBsZSBxdWFudGlmaWVyczogQSsgQiog Qz8gKEErIEIqIEM/KSsgLT4gKGErIGIqIGM/KXsyLH0KIC0tIFRlc3RzIG1lcmdlR3JvdXBQcmVm aXhTdWZmaXg6IGNvbXBsZXggcXVhbnRpZmllciBwYXR0ZXJucwpAQCAtMzY2MCwxMCArMzY5NSwx MSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhKyIgYiogYz8pezIsfQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBv biBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFNVRkZJWCBtZXJnZSB3aXRoIHF1 YW50aWZpZXJzOiAoQSBCKikrIEEgQiogLT4gKGEgYiopezIsfQogLS0gVGVzdHMgbWVyZ2VHcm91 cFByZWZpeFN1ZmZpeDogc3VmZml4IHdpdGggcXVhbnRpZmllcnMKQEAgLTM2NzcsMTAgKzM3MTMs MTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYSBiKil7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4g IFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gVW53cmFwIEdST1VQezEsMX06ICgoQSB8 IEIgfCBDKSkgLT4gKGEgfCBiIHwgYykKIC0tIFRlc3RzIHRyeVVud3JhcEdyb3VwIHJlbW92aW5n IHJlZHVuZGFudCBvdXRlciBHUk9VUApAQCAtMzY5MywxMCArMzczMCwxMSBAQCBXSU5ET1cgdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChh IHwgYiB8IGMpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAg IFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dz KQorKDcgcm93cykKIAogLS0gRGF0YSBleGVjdXRpb246IEdST1VQIHVud3JhcCBwcm9kdWNlcyBj b3JyZWN0IHJlc3VsdHMKIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CkBA IC0zNzI5LDEwICszNzY3LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdp bmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSs/IGEKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0 aW1pemF0aW9uIGJ5cGFzczogR1JPVVAgbWVyZ2UKIC0tIChBIEIpKz8gKEEgQikgc3RheXMgc2Vw YXJhdGUgKGdyZWVkeSBtZXJnZXMgdG8gKGEgYil7Mix9KQpAQCAtMzc0NSwxMCArMzc4NCwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IChhIGIpKz8gYSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNv cnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9w bGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gUmVsdWN0YW50IG9wdGltaXphdGlvbiBieXBh c3M6IHF1YW50aWZpZXIgbXVsdGlwbHkgKG91dGVyIHJlbHVjdGFudCkKIC0tIChBezJ9KXszfT8g c3RheXMgYXMgKGF7Mn0pezN9PyAoZ3JlZWR5IG1lcmdlcyB0byBhezZ9KQpAQCAtMzc2MSwxMCAr MzgwMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IChhezJ9KXszfT8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0aW1pemF0 aW9uIGJ5cGFzczogcXVhbnRpZmllciBtdWx0aXBseSAoaW5uZXIgcmVsdWN0YW50KQogLS0gKEF7 Mn0/KXszfSBzdGF5cyBhcyAoYXsyfT8pezN9IChncmVlZHkgbWVyZ2VzIHRvIGF7Nn0pCkBAIC0z Nzc3LDEwICszODE4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGF7Mn0/KXszfQorICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBv cHRpbWl6YXRpb24gYnlwYXNzOiBQUkVGSVggbWVyZ2UKIC0tIEEgQiAoQSBCKSs/IHN0YXlzIHNl cGFyYXRlIChncmVlZHkgbWVyZ2VzIHRvIChhIGIpezIsfSkKQEAgLTM3OTMsMTAgKzM4MzUsMTEg QEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiBhIGIgKGEgYikrPworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBT b3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJf cGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBvcHRpbWl6YXRpb24gYnlw YXNzOiBTVUZGSVggbWVyZ2UKIC0tIChBIEIpKz8gQSBCIHN0YXlzIHNlcGFyYXRlIChncmVlZHkg bWVyZ2VzIHRvIChhIGIpezIsfSkKQEAgLTM4MDksMTAgKzM4NTIsMTEgQEAgV0lORE9XIHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSBi KSs/IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBT b3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykK Kyg3IHJvd3MpCiAKIC0tIEdST1VQIHVud3JhcCB3aXRoIHF1YW50aWZpZXIgcHJvcGFnYXRpb246 IChBKT8/IEIgLT4gYT8/IGIKIC0tIFNpbmdsZSBWQVIgY2hpbGQgezEsMX0gcmVjZWl2ZXMgR1JP VVAncyBxdWFudGlmaWVyIGFuZCByZWx1Y3RhbnQKQEAgLTM4MjUsMTAgKzM4NjksMTEgQEAgV0lO RE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiBhPz8gYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAg ICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93 cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCBwcmVzZXJ2ZWQgdGhyb3VnaCBBTFQgZmxhdHRl bgogLS0gKEEgfCAoQiB8IEMpKSs/IGZsYXR0ZW5zIHRvIChhIHwgYiB8IGMpKz8gLSBpbm5lciBB TFQgZmxhdHRlbmVkLCByZWx1Y3RhbnQga2VwdApAQCAtMzg0MSwxMCArMzg4NiwxMSBAQCBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IChhIHwgYiB8IGMpKz8KKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBSZWx1Y3RhbnQgb3B0aW1pemF0aW9uIGJ5cGFzczog YWJzb3JwdGlvbiBmbGFncwogLS0gQSs/IHdpdGggU0tJUCBQQVNUIExBU1QgUk9XIC0gbm8gYWJz b3JwdGlvbiBtYXJrZXJzIChncmVlZHkgQSsgZ2V0cyBhKyIpCkBAIC0zODU3LDEwICszOTAzLDEx IEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQog ICAgUGF0dGVybjogYSs/CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAg ICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0o NiByb3dzKQorKDcgcm93cykKIAogLS0gRHVwbGljYXRlIEdST1VQIHJlbW92YWw6ICgoQSB8IEIp KyB8IChBIHwgQikrKSAtPiAoYSB8IGIpKwogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzg3Miwx MCArMzkxOSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgVkFSIG1l cmdlIHdpdGggemVyby1taW46IEEqIEErIC0+IGErCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC0z ODg3LDEwICszOTM1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRv dzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgVkFSIG1l cmdlICg0LWVsZW1lbnQpOiBBIEF7Mn0gQSsgQXszfSAtPiBhezcsfQogRVhQTEFJTiAoQ09TVFMg T0ZGKQpAQCAtMzkwMiwxMCArMzk1MSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdn CiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Nyx9IgorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFBSRUZJ WCtTVUZGSVggbWVyZ2UgKDUtd2F5KTogQSBCIEEgQiAoQSBCKSsgQSBCIEEgQiAtPiAoYSBiKXs1 LH0KIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM5MTgsMTAgKzM5NjgsMTEgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAo YScgYicpezUsfSIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJv d3MpCisoNyByb3dzKQogCiAtLSBVbndyYXAgc2luZ2xlLWl0ZW0gQUxUIGFmdGVyIGRlZHVwOiAo QSB8IEEpKyAtPiBhKwogLS0gQUxUIGRlZHVwIHJlZHVjZXMgdG8gc2luZ2xlLWl0ZW0sIHRoZW4g R1JPVVAgdW53cmFwCkBAIC0zOTM0LDEwICszOTg1LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0g R1JPVVB7MSwxfSB0byBTRVEgd2l0aCBmbGF0dGVuOiAoKEEgQikoQyBEKSkgLT4gYSBiIGMgZAog RVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzk1MSwxMCArNDAwMywxMSBAQCBXSU5ET1cgdyBBUyAo T1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBj IGQKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBL ZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBOZXN0ZWQgQUxUIHBhdHRlcm46ICgoQSBCKSB8IEMpIEQgfCBBIEIgQwogRVhQ TEFJTiAoQ09TVFMgT0ZGKQpAQCAtMzk2OCwxMCArNDAyMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JE RVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICgoYSBiIHwg YykgZCB8IGEgYiBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAg ICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYg cm93cykKKyg3IHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQgd2l0aCB1bmJvdW5kZWQ6ICgoQSsgQikg fCBDKSBEIHwgQSBCIEMKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTM5ODUsMTAgKzQwMzksMTEg QEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiAoKGErIiBiIHwgYykgZCB8IGEgYiBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEg U2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWJzb3Jw dGlvbiBGbGFnIERpc3BsYXkgVGVzdHMKQEAgLTQwMDYsMTAgKzQwNjEsMTEgQEAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBh KyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBL ZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBHUk9VUCB1bmJvdW5kZWQ6IChBIEIpKyAtPiAoYScgYicpKyIgKGJyYW5jaCAr IGp1ZGdtZW50KQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDAyMSwxMCArNDA3NywxMSBAQCBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IChhJyBiJykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEFMVCBib3RoIGFic29yYmFibGU6IEErIHwgQisgLT4g KGErIiB8IGIrIikKIEVYUExBSU4gKENPU1RTIE9GRikKQEAgLTQwMzYsMTAgKzQwOTMsMTEgQEAg V0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBp ZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQ YXR0ZXJuOiAoYSsiIHwgYisiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0 CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxh bgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEFMVCBvbmUgYWJzb3JiYWJsZTogQSsgfCBCIC0+ IChhKyIgfCBiKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA1MSwxMCArNDEwOSwxMSBAQCBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IChhKyIgfCBiKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAg ICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgot KDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFNlcXVlbmNlIHdpdGggYWJzb3JiYWJsZSBzdGFydDog QSsgQiAtPiBhKyIgYgogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA2NiwxMCArNDEyNSwxMSBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZ IGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAg ICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0o NiByb3dzKQorKDcgcm93cykKIAogLS0gQ29tcGxleCBuZXN0ZWQ6ICgoQSsgQikgfCBDKSBEIHwg QSBCIEMgLSBkZWVwbHkgbmVzdGVkIEFMVAogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA4Miwx MCArNDE0MiwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46ICgoYSsiIGIgfCBjKSBkIHwgYSBiIGMpCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAg ICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTmVz dGVkIHVuYm91bmRlZDogKEErIHwgQikrIC0+IChhKyIgfCBiKSsgKGZpcnN0IGl0ZXJhdGlvbiBh YnNvcmJhYmxlKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDA5OCwxMCArNDE1OSwxMSBAQCBX SU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBh dHRlcm46IChhKyIgfCBiKSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4K LSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBBTFQgaW5zaWRlIHVuYm91bmRlZCBHUk9VUDogKEEr IEIgfCBBIEIpKiAtPiAoYSsiIGIgfCBhIGIpKiAoZmlyc3QgaXRlcmF0aW9uIGFic29yYmFibGUp CiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MTE0LDEwICs0MTc2LDExIEBAIFdJTkRPVyB3IEFT IChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEr IiBiIHwgYSBiKSoKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAg ICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJv d3MpCisoNyByb3dzKQogCiAtLSBGaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JiYWJsZTogKEF7Mn0g QnszfSkrIC0+IChhezJ9JyBiezN9Jyl7Mix9IgogLS0gQWxsIGNoaWxkcmVuIGhhdmUgbWluID09 IG1heCwgZXF1aXZhbGVudCB0byB1bnJvbGxpbmcgdG8gezEsMX0KQEAgLTQxMzEsMTAgKzQxOTQs MTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChPUkRF UiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYXsyfScgYnszfScpKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAtLSBOZXN0ZWQgZml4ZWQtbGVuZ3Ro IGdyb3VwOiAoQSAoQiBDKXsyfSBEKSsgLT4gYWJzb3JiYWJsZQogRVhQTEFJTiAoQ09TVFMgT0ZG KQpAQCAtNDE0NywxMCArNDIxMSwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAg ICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhJyAoYicgYycpezJ9JyBkJykrIgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTog aWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3Mp CiAKIC0tIE5lc3RlZCBmaXhlZC1sZW5ndGggd2l0aCBpbm5lciBxdWFudGlmaWVyOiAoKEF7Mn0g QnszfSl7Mn0pKyAtPiBhYnNvcmJhYmxlCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MTYzLDEw ICs0MjI4LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKChhezJ9JyBiezN9Jyl7Mn0nKSsiCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAg LT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFi c29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCezIsNX0pKyAtPiBubyBtYXJrZXJzIChtaW4gIT0g bWF4KQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDE3OSwxMCArNDI0NSwxMSBAQCBXSU5ET1cg dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IChhIGJ7Miw1fSkrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAg ICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9wbGFuCi0oNiBy b3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFibGUgZml4ZWQtbGVuZ3RoOiAoQSBCPykr IC0+IG5vIG1hcmtlcnMgKG1pbiAhPSBtYXgpCiBFWFBMQUlOIChDT1NUUyBPRkYpCkBAIC00MTk1 LDEwICs0MjYyLDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzog dyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgYj8pKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5vbi1hYnNvcmJhYmxlICh1 bmJvdW5kZWQgbm90IGF0IHN0YXJ0KTogQSBCKyAtPiBhIGIrIChubyBtYXJrZXJzKQogRVhQTEFJ TiAoQ09TVFMgT0ZGKQpAQCAtNDIxMCwxMCArNDI3OCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIg QlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAg V2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BsYW4KLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBOb24tYWJzb3JiYWJsZSAobm8gdW5ib3VuZGVkIGJyYW5jaCk6IChBIHwgQil7Mix9IC0+IChh IHwgYil7Mix9IChubyBtYXJrZXJzKQogRVhQTEFJTiAoQ09TVFMgT0ZGKQpAQCAtNDIyNSwxMCAr NDI5NCwxMSBAQCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMg KE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IChhIHwgYil7Mix9CisgICBOYXYgTWFyayBMb29rYmFjazogMAog ICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2Fu IG9uIHJwcl9wbGFuCi0oNiByb3dzKQorKDcgcm93cykKIAogLS0gTm9uLWFic29yYmFibGUgKFNL SVAgVE8gTkVYVCBST1cpOiBBKyAtPiBhKyAobm8gbWFya2VycykKIEVYUExBSU4gKENPU1RTIE9G RikKQEAgLTQyNDAsMTAgKzQzMTAsMTEgQEAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwogIFdpbmRvd0FnZwog ICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIE5vbi1hYnNvcmJh YmxlIChsaW1pdGVkIGZyYW1lKTogQSsgLT4gYSsgKG5vIG1hcmtlcnMpCiBFWFBMQUlOIChDT1NU UyBPRkYpCkBAIC00MjU1LDEwICs0MzI2LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwogIFdpbmRvd0FnZwogICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EICcx MCc6OmJpZ2ludCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAgIC0+ICBT ZXEgU2NhbiBvbiBycHJfcGxhbgotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlbHVjdGFudCB7 MX0/IHF1YW50aWZpZXIgZGVwYXJzZQogLS0gQXsxfT8gaXMgYSByZWx1Y3RhbnQgezEsMX0gcXVh bnRpZmllci4gIFRoZSBkZXBhcnNlIGNvZGUgbXVzdApAQCAtNDI3NywxMCArNDM0OSwxMSBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHZhbCBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiBhezF9PyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgLT4gIFNvcnQKICAgICAg ICAgIFNvcnQgS2V5OiB2YWwKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfcGxhbgotKDYg cm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQWJzb3JwdGlvbiBBbmFseXNpcyBUZXN0cwpA QCAtNDc3NSwxMCArNDg0OCwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhezIwMDAwMDAwMDB9KXsyfQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAg ICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKLSg2IHJvd3MpCisoNyByb3dzKQogCiAt LSBFeHBlY3RlZDogRmFsbGJhY2sgLSBwYXR0ZXJuIG5vdCBtZXJnZWQgZHVlIHRvIG1pbiBvdmVy ZmxvdyAoNDAwMDAwMDAwMCA+IElOVDMyX01BWCkKIC0tIFRlc3Q6IG1heC1vbmx5IHF1YW50aWZp ZXIgb3ZlcmZsb3cgY2F1c2VzIG9wdGltaXphdGlvbiBmYWxsYmFjawpAQCAtNDc5NSwxMCArNDg2 OSwxMSBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVS IEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykK ICAgIFBhdHRlcm46IChhezEsMjAwMDAwMDAwMH0pezJ9CisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBT Y2FuIG9uIHJwcl9mYWxsYmFjawotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIEV4cGVjdGVkOiBG YWxsYmFjayAtIG1pbiBPSyAoMioxPTIpLCBidXQgbWF4IG92ZXJmbG93ICgyKjIwMDAwMDAwMDAg PiBJTlQzMl9NQVgpCiAtLSBUZXN0OiBtYXggcXVhbnRpZmllciBleGNlZWRzIHZhbGlkIHJhbmdl ICgyMTQ3NDgzNjQ3ID0gSU5UX01BWCwgbGltaXQgaXMgMjE0NzQ4MzY0NikKQEAgLTQ4MjgsMTAg KzQ5MDMsMTEgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZwogICAgV2luZG93OiB3IEFTIChP UkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiAoYXsyMDAwMDAwMDAwLH0iKXsyMDAwMDAwMDAwLH0KKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAg ICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ZhbGxiYWNrCi0oNiByb3dzKQorKDcgcm93cykKIAog LS0gRXhwZWN0ZWQ6IEZhbGxiYWNrIC0gbWluIG92ZXJmbG93ICgyMDAwMDAwMDAwICogMjAwMDAw MDAwMCA+IElOVDMyX01BWCkKIC0tIFRlc3Q6IHByZWZpeCBtaXNtYXRjaCBjYXVzZXMgb3B0aW1p emF0aW9uIGZhbGxiYWNrCkBAIC00ODQ4LDEwICs0OTI0LDExIEBAIFdJTkRPVyB3IEFTICgKICBX aW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiIChjIGQpKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTog aWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfZmFsbGJhY2sKLSg2IHJvd3MpCisoNyBy b3dzKQogCiAtLSBFeHBlY3RlZDogRmFsbGJhY2sgLSBwcmVmaXggZWxlbWVudHMgZG9uJ3QgbWF0 Y2ggR1JPVVAgY29udGVudAogRFJPUCBUQUJMRSBycHJfZmFsbGJhY2s7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IGRjMzA3NWU2YmQzLi43N2FiMjVhMjI4 OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM2LDYg KzM2LDcgQEAKIC0tICAgV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwogLS0gICBERUZJTkUg RXhwcmVzc2lvbiBWYXJpYXRpb25zCiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZp Y2F0aW9uCistLSAgIE5hdiBNYXJrIExvb2tiYWNrICh0dXBsZXN0b3JlIHRyaW0pCiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tIEZpbHRlciBmdW5jdGlvbiB0byBub3JtYWxpemUgcGxhdGZvcm0tZGVwZW5kZW50IG1lbW9y eSB2YWx1ZXMgKG5vdCBORkEgc3RhdGlzdGljcykuCiAtLSBORkEgc3RhdGlzdGljcyBzaG91bGQg bm90IGNoYW5nZSBiZXR3ZWVuIHBsYXRmb3JtczsgaWYgdGhleSBkbywgaXQgY291bGQKQEAgLTE0 MSwxMyArMTQyLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEw MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MiBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8y LzIuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVkIChsZW4g MS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCByb3dzPTEw MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBQYXR0ZXJuIHdpdGggbm8g bWF0Y2hlcyAtIDAgbWF0Y2hlZAogQ1JFQVRFIFZJRVcgcnByX2V2X2Jhc2ljX25vbWF0Y2ggQVMK QEAgLTE4MCwxMiArMTgyLDEzIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiB4IHkgegorICAgTmF2 IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBO a0IKICAgIE5GQSBTdGF0ZXM6IDEgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDEwMSB0b3RhbCwgMTAwIHBydW5lZAogICAgTkZBOiAwIG1hdGNoZWQs IDAgbWlzbWF0Y2hlZAogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJv d3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gUGF0dGVybiBtYXRj aGluZyBldmVyeSByb3cgLSBoaWdoIG1hdGNoIGNvdW50CiBDUkVBVEUgVklFVyBycHJfZXZfYmFz aWNfYWxscm93cyBBUwpAQCAtMjE4LDEyICsyMjEsMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IHIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQK ICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEw MCBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAogICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkg cm93cykKIAogLS0gUmVncmVzc2lvbiB0ZXN0OiBTcGFjZSBiZWZvcmUgcGFyZW50aGVzaXMgaW4g cGF0dGVybiBkZXBhcnNlCiAtLSBWZXJpZmllcyB0aGF0ICJBIChCIHwgQykiIGNvcnJlY3RseSBv dXRwdXRzIGFzICJhIChiIHwgYykiIHdpdGggc3BhY2UKQEAgLTI1NSwxMyArMjU5LDE0IEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTIwLjAwIGxvb3BzPTEpCiAgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGEgKGIgfCBjKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAg IFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMg cGVhaywgMzUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMjEgdG90 YWwsIDYgcHJ1bmVkCiAgICBORkE6IDcgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAwIG1pc21hdGNo ZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgNyBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29w cz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBSZWdyZXNzaW9uIHRlc3Q6IFNlcXVlbnRp YWwgYWx0ZXJuYXRpb25zIGF0IHNhbWUgZGVwdGgKIC0tIFZlcmlmaWVzIHRoYXQgIigoQiB8IEMp IChEIHwgRSkpIiBjb3JyZWN0bHkgb3V0cHV0cyBhcyAiKGIgfCBjKSAoZCB8IGUpIgpAQCAtMjk0 LDEyICsyOTksMTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSAoKGIgfCBjKSAoZCB8IGUpKSoK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDYxIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAzIHBlYWssIDMxIHRvdGFsLCAyNCBwcnVuZWQKICAgIE5GQTogNiBtYXRj aGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24g Z2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQor KDkgcm93cykKIAogLS0gUmVncmVzc2lvbiB0ZXN0OiBRdW90ZWQgaWRlbnRpZmllcnMgaW4gRVhQ TEFJTiBwYXR0ZXJuIGRlcGFyc2UKIC0tIE1peGVkIGNhc2UgbmFtZXMgbXVzdCBiZSBxdW90ZWQg dG8gcHJlc2VydmUgcm91bmQtdHJpcCBzYWZldHkKQEAgLTMxNyw4ICszMjMsOSBAQCBXSU5ET1cg dyBBUyAoCiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICJTdGFydCIgIlVwIisK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcwotKDQgcm93cykKKyg1IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gU3RhdGUgU3RhdGlz dGljcyBUZXN0cyAocGVhaywgdG90YWwsIG1lcmdlZCkKQEAgLTM1NCwxMiArMzYxLDEzIEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywg NzYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTEgdG90YWwsIDI1 IHBydW5lZAogICAgTkZBOiAyNSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUw LjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gQWx0ZXJuYXRpb24gcGF0dGVy biAtIG11bHRpcGxlIHN0YXRlIGJyYW5jaGVzCiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0 IEFTCkBAIC0zOTYsMTMgKzQwNCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiIHwg YykgKGQgfCBlKQorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAg TWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgNTI0IHRvdGFsLCAw IG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgMjAgcHJ1bmVkCiAg ICBORkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgNDAgbWlzbWF0Y2hlZCAobGVuIDIvMi8y LjApCiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4g IFNlcSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIENvbXBsZXggcGF0dGVybiB3aXRoIGhpZ2ggc3RhdGUg Y291bnQKIENSRUFURSBWSUVXIHJwcl9ldl9zdGF0ZV9jb21wbGV4IEFTCkBAIC00NDEsMTMgKzQ1 MCwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9v cHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIqIGMrCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogNSBwZWFrLCAyMzUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMg cGVhaywgMTAxIHRvdGFsLCAzNCBwcnVuZWQKICAgIE5GQTogMzMgbWF0Y2hlZCAobGVuIDMvMy8z LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzMgc2tpcHBlZCAobGVuIDEv MS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEdyb3VwZWQg cGF0dGVybiB3aXRoIHF1YW50aWZpZXIgLSBzdGF0ZSBjb3VudCB3aXRoIGdyb3VwaW5nCiBDUkVB VEUgVklFVyBycHJfZXZfc3RhdGVfZ3JvdXBfcXVhbnQgQVMKQEAgLTQ4MCwxMyArNDkwLDE0IEBA IFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IChhJyBiJykrIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDQgcGVhaywgOTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNjEg dG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDYwLzYwLzYwLjApLCAwIG1p c21hdGNoZWQKICAgIE5GQTogMjkgYWJzb3JiZWQgKGxlbiAyLzIvMi4wKSwgMzAgc2tpcHBlZCAo bGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gU3Rh dGUgZXhwbG9zaW9uIHBhdHRlcm4gLSBtYW55IGFsdGVybmF0aW9ucwogLS0gUGF0dGVybiAoQXxC KShBfEIpKEF8QikoQXxCKSBjYW4gY3JlYXRlIG1hbnkgcGFyYWxsZWwgc3RhdGVzCkBAIC01MjAs MTMgKzUzMSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXs4fQorICAgTmF2IE1h cmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IK ICAgIE5GQSBTdGF0ZXM6IDE3IHBlYWssIDk5NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogOCBwZWFrLCAxMDEgdG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNoZWQgKGxl biA4LzgvOC4wKSwgMyBtaXNtYXRjaGVkIChsZW4gMi80LzMuMCkKICAgIE5GQTogMCBhYnNvcmJl ZCwgODQgc2tpcHBlZCAobGVuIDEvNy80LjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEw IHJvd3MpCiAKIC0tIENvbnNlY3V0aXZlIEFMVCBtZXJnZSBmb2xsb3dlZCBieSBkaWZmZXJlbnQg QUxUCiAtLSBUZXN0cyBtZXJnZUNvbnNlY3V0aXZlQWx0cyBmbHVzaCBvbiBBTFQgY2hhbmdlOiAo QXxCKXsyfSAoQ3xEKQpAQCAtNTYwLDEzICs1NzIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRv d0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjog KGEgfCBiKXsyfSAoYyB8IGQpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTog TWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAxODEg dG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDEyIHBy dW5lZAogICAgTkZBOiA5IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4g Mi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMTggc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAg ICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAu MDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQ29uc2VjdXRpdmUgQUxUIG1l cmdlIGZvbGxvd2VkIGJ5IG5vbi1BTFQgZWxlbWVudAogLS0gVGVzdHMgbWVyZ2VDb25zZWN1dGl2 ZUFsdHMgZmx1c2ggb24gbm9uLUFMVDogKEF8Qil7Mn0gYwpAQCAtNjAwLDEzICs2MTMsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKXsyfSBjCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogNiBwZWFrLCAxNzcgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywg NDEgdG90YWwsIDIgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMiBt aXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjQgc2tpcHBlZCAo bGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAo YWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQUxU IHByZWZpeC9zdWZmaXggYWJzb3JiZWQgaW50byBHUk9VUDogKEF8QikgKEF8QikrIChBfEIpIC0+ IChBfEIpezMsfQogQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX2FsdF9hYnNvcmJfZ3JvdXAgQVMK QEAgLTYzOSwxMyArNjUzLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYil7Myx9Cisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAyNDMgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hl ZCAobGVuIDQwLzQwLzQwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgMzkg c2tpcHBlZCAobGVuIDEvMi8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9z ZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykK IAogLS0gSGlnaCBzdGF0ZSBjb3VudCAtIGFsdGVybmF0aW9uIHdpdGggcGx1cyBxdWFudGlmaWVy CiBDUkVBVEUgVklFVyBycHJfZXZfc3RhdGVfYWx0X3BsdXMgQVMKQEAgLTY3OCwxMyArNjkzLDE0 IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0x KQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIgfCBjKSsgZAorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDE2IHBlYWssIDEwMDQgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6 IDQgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAyNSBtYXRjaGVkIChsZW4gNC80 LzQuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA3NSBza2lwcGVkIChsZW4g MS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gRWFybHkg dGVybWluYXRpb246IGZpcnN0IEFMVCBicmFuY2ggKEEpIHJlYWNoZXMgRklOIGltbWVkaWF0ZWx5 LAogLS0gcHJ1bmluZyBzZWNvbmQgYnJhbmNoIChBIEIrKSBiZWZvcmUgaXQgY2FuIGFjY3VtdWxh dGUgQiByZXBldGl0aW9ucy4KQEAgLTcxOCwxMiArNzM0LDEzIEBAIFdJTkRPVyB3IEFTICgKICBX aW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0 ZXJuOiAoYSB8IGEgYikrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVt b3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFrLCAzMDYgdG90 YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA5OSBwcnVu ZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDAgbWlzbWF0Y2hlZAogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBs b29wcz0xKQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0tIE5lc3RlZCBxdWFudGlmaWVycyBjYXVz aW5nIHN0YXRlIGdyb3d0aAogQ1JFQVRFIFZJRVcgcnByX2V2X3N0YXRlX25lc3RlZF9xdWFudCBB UwpAQCAtNzU2LDEzICs3NzMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9MTAwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYSB8IGIpKwor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDYgcGVhaywgNTAwNCB0b3RhbCwgMCBtZXJnZWQKICAg IE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDAxIHRvdGFsLCAzMzMgcHJ1bmVkCiAgICBORkE6IDMz NCBtYXRjaGVkIChsZW4gMS8yLzIuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVk LCAzMzMgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygx MCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIENvbnRleHQgU3RhdGlzdGljcyBUZXN0cyAocGVhaywgdG90 YWwsIHBydW5lZCArIGFic29yYmVkL3NraXBwZWQpCkBAIC03OTgsMTMgKzgxNiwxNCBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywg OTEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAg cHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAg ICBORkE6IDMwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4w KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dz PTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE5vIGFic29ycHRpb24g LSBib3VuZGVkIHF1YW50aWZpZXIKIENSRUFURSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiIEFT CkBAIC04MzcsMTMgKzg1NiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIsNH0gYgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdl OiBOa0IKICAgIE5GQSBTdGF0ZXM6IDcgcGVhaywgMTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZB IENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVk IChsZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA0MCBza2lw cGVkIChsZW4gMS80LzIuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAt LSBDb250ZXh0cyBza2lwcGVkIGJ5IFNLSVAgUEFTVCBMQVNUIFJPVwogQ1JFQVRFIFZJRVcgcnBy X2V2X2N0eF9za2lwIEFTCkBAIC04NzYsMTMgKzg5NiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogYSBiIGMKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBt ZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDgwIHBydW5lZAogICAg TkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFi c29yYmVkLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3Mp CisoMTAgcm93cykKIAogLS0gSGlnaCBjb250ZXh0IGFic29ycHRpb24gLSB1bmJvdW5kZWQgZ3Jv dXAKIENSRUFURSBWSUVXIHJwcl9ldl9jdHhfYWJzb3JiX2dyb3VwIEFTCkBAIC05MTUsMTMgKzkz NiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9v cHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiIGMKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiAzIHBlYWssIDEzNCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCAxMDEgdG90YWwsIDM0IHBydW5lZAogICAgTkZBOiAzMyBtYXRjaGVkIChsZW4gMy8z LzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzMyBza2lwcGVkIChsZW4g MS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gRml4ZWQt bGVuZ3RoIGdyb3VwIGFic29ycHRpb246IChBIEIgQikrIEMKIC0tIEIgQiBtZXJnZWQgdG8gQnsy fTsgYWJzb3JiYWJsZSB3aXRoIGZpeGVkLWxlbmd0aCBjaGVjawpAQCAtOTU2LDEzICs5NzgsMTQg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NzAuMDAgbG9vcHM9MSkK ICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEnIGJ7Mn0nKSsiIGMKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEg U3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBl YWssIDcxIHRvdGFsLCA0MCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDcvNy83LjAp LCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTAgYWJzb3JiZWQgKGxlbiAzLzMvMy4wKSwgMTAgc2tp cHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gTmVzdGVkIGZpeGVkLWxlbmd0aCBncm91cCBhYnNvcnB0aW9uOiAoQSAoQiBDKXsyfSBEKSsg RQogLS0gc3RlcF9zaXplID0gMSArICgxKzEpKjIgKyAxID0gNjsgdiAlIDEzIGN5Y2xlIGdpdmVz IDIgaXRlcmF0aW9ucyArIEUKQEAgLTEwMDAsMTMgKzEwMjMsMTQgQEAgV0lORE9XIHcgQVMgKAog IFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAo Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0 dGVybjogKGEnIChiJyBjJyl7Mn0nIGQnKSsiIGUKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAz IHBlYWssIDc2IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDY2IHRv dGFsLCA1MCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gMTMvMTMvMTMuMCksIDAgbWlz bWF0Y2hlZAogICAgTkZBOiA1IGFic29yYmVkIChsZW4gNi82LzYuMCksIDUgc2tpcHBlZCAobGVu IDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0 dWFsIHJvd3M9NjUuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gRG91Ymx5 IG5lc3RlZCBmaXhlZC1sZW5ndGggZ3JvdXAgYWJzb3JwdGlvbjogKEEgKChCIEN7M30pezJ9IEQp ezJ9IEUpKyBGCiAtLSBzdGVwX3NpemUgPSAxICsgKCgxKzMpKjIrMSkqMiArIDEgPSAyMDsgdiAl IDQxIGN5Y2xlIGdpdmVzIDIgaXRlcmF0aW9ucyArIEYKQEAgLTEwNTIsMTMgKzEwNzYsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEnICgoYicgY3szfScpezJ9JyBkJyl7Mn0nIGUnKSsiIGYK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDg3IHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiA0IHBlYWssIDgzIHRvdGFsLCA3NiBwcnVuZWQKICAgIE5GQTogMiBtYXRj aGVkIChsZW4gNDEvNDEvNDEuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAyIGFic29yYmVkIChs ZW4gMjAvMjAvMjAuMCksIDIgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9ODIuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gMy1sZXZlbCBFTkQgY2hhaW4gYWJzb3JwdGlvbjogKChB IChCIEMpezJ9KXsyfSkrCiAtLSBzdGVwX3NpemUgPSAoMSArICgxKzEpKjIpICogMiA9IDEwOyB2 ICUgMjEgY3ljbGUgZ2l2ZXMgMiBpdGVyYXRpb25zCkBAIC0xMDk3LDEzICsxMTIyLDE0IEBAIFdJ TkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTQyLjAwIGxvb3BzPTEpCiAgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46ICgoYScgKGInIGMnKXsyfScpezJ9JykrIgorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAg IE5GQSBTdGF0ZXM6IDUgcGVhaywgNDcgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6 IDUgcGVhaywgNDMgdG90YWwsIDMwIHBydW5lZAogICAgTkZBOiAyIG1hdGNoZWQgKGxlbiAyMC8y MC8yMC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDIgYWJzb3JiZWQgKGxlbiAxMC8xMC8xMC4w KSwgOCBza2lwcGVkIChsZW4gMS81LzMuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVy YXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCBy b3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCkBAIC0xMTQz LDEzICsxMTY5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEw MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYyBkIGUKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDEwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDYwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVk IChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFjdHVhbCBy b3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBWYXJpYWJsZSBs ZW5ndGggbWF0Y2hlcyAtIG1pbi9tYXgvYXZnIGRpZmZlcgogQ1JFQVRFIFZJRVcgcnByX2V2X21s ZW5fdmFyaWFibGUgQVMKQEAgLTExODIsMTMgKzEyMDksMTQgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxOTEgdG90YWwsIDAg bWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAg TkZBOiAxMCBtYXRjaGVkIChsZW4gMTAvMTAvMTAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiA4 MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMDAuMDAg bG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gVmVyeSBsb25nIG1hdGNoZXMKIENS RUFURSBWSUVXIHJwcl9ldl9tbGVuX2xvbmcgQVMKQEAgLTEyMjEsMTMgKzEyNDksMTQgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MjAwLjAwIGxvb3BzPTEpCiAgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFr LCAzOTYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMjAxIHRvdGFs LCA0IHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiAxOTYvMTk2LzE5Ni4wKSwgMCBtaXNt YXRjaGVkCiAgICBORkE6IDE5NCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxIHNraXBwZWQgKGxl biAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFj dHVhbCByb3dzPTIwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBVbmlm b3JtIG1hdGNoIGxlbmd0aCB3aXRoIG1pc21hdGNoZXMgZnJvbSBnYXAgcm93cyAodiUyMCA9IDEx Li4xNSkKIENSRUFURSBWSUVXIHJwcl9ldl9tbGVuX3dpdGhfbWlzbWF0Y2ggQVMKQEAgLTEyNjQs MTMgKzEyOTMsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAg TkZBIFN0YXRlczogMyBwZWFrLCAxNzEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6 IDMgcGVhaywgMTAxIHRvdGFsLCAyNSBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gNS81 LzUuMCksIDUgbWlzbWF0Y2hlZCAobGVuIDExLzExLzExLjApCiAgICBORkE6IDYwIGFic29yYmVk IChsZW4gMS8xLzEuMCksIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24g U2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gTWlzbWF0Y2ggTGVuZ3RoIFN0YXRpc3Rp Y3MgVGVzdHMKQEAgLTEzMjEsMTMgKzEzNTEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEr IiBiKyBjCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxNTEgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMTAxIHRvdGFsLCA2MCBwcnVuZWQKICAgIE5G QTogMTAgbWF0Y2hlZCAobGVuIDYvNi82LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMjAgYWJz b3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIExvbmcgcGFydGlhbCBtYXRjaGVzIHRoYXQg ZmFpbAogQ1JFQVRFIFZJRVcgcnByX2V2X21sZW5fbG9uZ19wYXJ0aWFsIEFTCkBAIC0xMzg0LDEz ICsxNDE1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAw IGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiKyBjCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAg TkZBIFN0YXRlczogMyBwZWFrLCAxMTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6 IDMgcGVhaywgNjEgdG90YWwsIDE1IHBydW5lZAogICAgTkZBOiAxIG1hdGNoZWQgKGxlbiAzMC8z MC8zMC4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMjYvMjYvMjYuMCkKICAgIE5GQTogNDIgYWJzb3Ji ZWQgKGxlbiAxLzEvMS4wKSwgMSBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBpIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQot KDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEpTT04gRm9ybWF0IFRlc3RzCkBAIC0x NDM0LDYgKzE0NjYsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIkRpc2FibGVkIjogZmFsc2Us ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAg ICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBhdHRlcm4iOiAiYStcIiBiKyIsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgIk5hdiBNYXJrIExv b2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk1heGltdW0gU3RvcmFnZSI6IDAsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk5GQSBT dGF0ZXMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCkBAIC0xNTExLDYgKzE1NDQsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgIkRpc2Fi bGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBhdHRlcm4iOiAiYStcIiBiIiwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAg Ik5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk1heGltdW0gU3RvcmFn ZSI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAg ICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCkBAIC0xNTkyLDYgKzE2MjYsNyBAQCBXSU5ET1cgdyBBUyAoCiAg ICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAgICAgIlBhdHRlcm4i OiAiYSBiIGMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICAgICAgIk5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAiTWVtb3J5IiwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk1h eGltdW0gU3RvcmFnZSI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCiAgICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDIsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xNjcyLDYgKzE3MDcsNyBAQCBXSU5E T1cgdyBBUyAoCiAgICAgICAgIkRpc2FibGVkIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIldpbmRvdyI6ICJ3IEFTIChS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpIiwrCiAgICAg ICAgIlBhdHRlcm4iOiAiKGEgfCBiKXs4fSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICAgIk5hdiBNYXJrIExvb2tiYWNrIjogMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIlN0b3JhZ2UiOiAi TWVtb3J5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CiAgICAgICAgIk1heGltdW0gU3RvcmFnZSI6IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgIk5GQSBTdGF0ZXMgUGVhayI6IDE3LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCkBAIC0xNzU1LDYgKzE3 OTEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgPERpc2FibGVkPmZhbHNlPC9EaXNhYmxlZD4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICAgIDxX aW5kb3c+dyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKTwvV2luZG93PisKICAgICAgICA8UGF0dGVybj5hIGI8L1BhdHRlcm4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgICAgPE5hdi1NYXJr LUxvb2tiYWNrPjA8L05hdi1NYXJrLUxvb2tiYWNrPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKwogICAgICAgIDxTdG9yYWdlPk1lbW9yeTwvU3RvcmFnZT4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICA8TWF4aW11bS1TdG9yYWdl PjA8L01heGltdW0tU3RvcmFnZT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CiAgICAgICAgPE5GQS1TdGF0ZXMtUGVhaz4yPC9ORkEtU3RhdGVzLVBlYWs+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwpAQCAtMTgzNyw2ICsxODc0LDcgQEAgV0lORE9XIHcg QVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9OTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzog dyBBUyAoUEFSVElUSU9OIEJZIHAucCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6 IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0 ZXM6IDMgcGVhaywgMTY1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWss IDkzIHRvdGFsLCAwIHBydW5lZApAQCAtMTg0OCw3ICsxODg2LDcgQEAgV0lORE9XIHcgQVMgKAog ICAgICAgICAgLT4gIE5lc3RlZCBMb29wIChhY3R1YWwgcm93cz05MC4wMCBsb29wcz0xKQogICAg ICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHAgKGFjdHVh bCByb3dzPTMuMDAgbG9vcHM9MSkKICAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0zKQotKDE0IHJvd3Mp CisoMTUgcm93cykKIAogLS0gRGlmZmVyZW50IHBhdHRlcm4gYmVoYXZpb3IgcGVyIHBhcnRpdGlv bgogQ1JFQVRFIFZJRVcgcnByX2V2X3BhcnRfZGlmZiBBUwpAQCAtMTg5Myw2ICsxOTMxLDcgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUEFSVElUSU9OIEJZIChDQVNFIFdIRU4gKHYudiA8PSAyNSkgVEhFTiAx IEVMU0UgMiBFTkQpIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFr LCA3NyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MiB0b3RhbCwg MjEgcHJ1bmVkCkBAIC0xOTAyLDcgKzE5NDEsNyBAQCBXSU5ET1cgdyBBUyAoCiAgICAgICAgICBT b3J0IEtleTogKENBU0UgV0hFTiAodi52IDw9IDI1KSBUSEVOIDEgRUxTRSAyIEVORCkKICAgICAg ICAgIFNvcnQgTWV0aG9kOiBxdWlja3NvcnQgIE1lbW9yeTogTmtCCiAgICAgICAgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgdiAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9 MSkKLSgxMiByb3dzKQorKDEzIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gRWRnZSBDYXNlcwpAQCAtMTkz OCw4ICsxOTc3LDkgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MC4w MCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIKKyAgIE5hdiBNYXJrIExvb2ti YWNrOiAwCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9MC4wMCBsb29wcz0xKQotKDQgcm93cykKKyg1IHJvd3MpCiAKIC0tIFNpbmdsZSByb3cK IENSRUFURSBWSUVXIHJwcl9ldl9lZGdlX3NpbmdsZV9yb3cgQVMKQEAgLTE5NzIsMTIgKzIwMTIs MTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MS4wMCBsb29wcz0x KQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMiBw ZWFrLCAyIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDIgdG90YWws IDAgcHJ1bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDEvMS8xLjApLCAwIG1pc21hdGNoZWQK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x LjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gUGF0dGVybiBsb25nZXIgdGhh biBkYXRhCiBDUkVBVEUgVklFVyBycHJfZXZfZWRnZV9wYXR0ZXJuX2xvbmdlciBBUwpAQCAtMjAx NCwxMiArMjA1NSwxMyBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01 LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYiBjIGQgZSBmIGcgaCBpIGoK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAyIHBlYWssIDYgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgNiB0b3RhbCwgNCBwcnVuZWQKICAgIE5GQTogMCBtYXRjaGVk LCAxIG1pc21hdGNoZWQgKGxlbiA1LzUvNS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2Vu ZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSBy b3dzKQogCiAtLSBBbGwgcm93cyBtYXRjaCBhcyBzaW5nbGUgbWF0Y2gKIENSRUFURSBWSUVXIHJw cl9ldl9lZGdlX3NpbmdsZV9tYXRjaCBBUwpAQCAtMjA1MiwxMyArMjA5NCwxNCBAQCBXSU5ET1cg dyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBN ZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDEwMSB0 b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVu ZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNTAvNTAvNTAuMCksIDAgbWlzbWF0Y2hlZAogICAg TkZBOiA0OSBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAwIHNraXBwZWQKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQot KDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIENvbXBsZXggUGF0dGVybiBUZXN0cwpA QCAtMjA5NCwxMyArMjEzNywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwg cm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiAoYScgYicgYycpKyIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDgxIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFsLCAyMCBwcnVuZWQKICAgIE5GQTogMSBtYXRj aGVkIChsZW4gNjAvNjAvNjAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOSBhYnNvcmJlZCAo bGVuIDMvMy8zLjApLCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQotKDkg cm93cykKKygxMCByb3dzKQogCiAtLSBNdWx0aXBsZSBhbHRlcm5hdGlvbnMKIENSRUFURSBWSUVX IHJwcl9ldl9jcHhfbXVsdGlfYWx0IEFTCkBAIC0yMTM3LDEzICsyMTgxLDE0IEBAIFdJTkRPVyB3 IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYSB8IGIpIChjIHwgZCB8IGUpCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogNiBwZWFrLCA0MjMgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywg MTAxIHRvdGFsLCA0MCBwcnVuZWQKICAgIE5GQTogMjAgbWF0Y2hlZCAobGVuIDIvMi8yLjApLCAy MCBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMjAgc2tpcHBl ZCAobGVuIDEvMS8xLjApCiAgICAtPiAgU2VxIFNjYW4gb24gcnByX25mYV90ZXN0IChhY3R1YWwg cm93cz0xMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gT3B0aW9uYWwg ZWxlbWVudHMKIENSRUFURSBWSUVXIHJwcl9ldl9jcHhfb3B0aW9uYWwgQVMKQEAgLTIxNzYsMTMg KzIyMjEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAg bG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBV TkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiPyBjCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogMyBwZWFrLCA2NCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBw ZWFrLCA1MSB0b3RhbCwgMjUgcHJ1bmVkCiAgICBORkE6IDEyIG1hdGNoZWQgKGxlbiAzLzMvMy4w KSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwgMTIgc2tp cHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gQm91bmRlZCBxdWFudGlmaWVycwogQ1JFQVRFIFZJRVcgcnByX2V2X2NweF9ib3VuZGVkIEFT CkBAIC0yMjE1LDEzICsyMjYxLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTEwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezIsNX0gYgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDkgcGVhaywgMzExIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiA3IHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAgbWF0 Y2hlZCAobGVuIDYvNi82LjApLCA0MCBtaXNtYXRjaGVkIChsZW4gNi82LzYuMCkKICAgIE5GQTog MCBhYnNvcmJlZCwgNTAgc2tpcHBlZCAobGVuIDEvNS8zLjApCiAgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tIFN0YXIgcXVhbnRpZmllcgogQ1JFQVRFIFZJRVcgcnByX2V2 X2NweF9zdGFyIEFTCkBAIC0yMjU0LDEzICsyMzAxLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGEgYiogYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgNTEgdG90YWwsIDQwIHBydW5lZAogICAgTkZB OiA1IG1hdGNoZWQgKGxlbiA5LzkvOS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3Ji ZWQsIDUgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAg cm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSBSZWFsLXdvcmxkIFBhdHRlcm4gRXhhbXBsZXMKQEAgLTIyOTYs MTMgKzIzNDQsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogZCsiIHUrCisgICBOYXYgTWFyayBM b29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAg TkZBIFN0YXRlczogNCBwZWFrLCA1OCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCAzMSB0b3RhbCwgMyBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gMy8xNC84 LjApLCAxIG1pc21hdGNoZWQgKGxlbiAzLzMvMy4wKQogICAgTkZBOiA5IGFic29yYmVkIChsZW4g MS8xLzEuMCksIDE0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJw cl9uZmFfY29tcGxleCAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAg cm93cykKIAogLS0gU3RvY2sgcHJpY2UgcGF0dGVybiAtIHBlYWsgKHVwLCBzdGFibGUsIGRvd24p CiBDUkVBVEUgVklFVyBycHJfZXZfcmVhbF9wZWFrIEFTCkBAIC0yMzM1LDEzICsyMzg0LDE0IEBA IFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCiAg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IHUrIiBzKiBkKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAK ICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6 IDUgcGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEg dG90YWwsIDEgcHJ1bmVkCiAgICBORkE6IDQgbWF0Y2hlZCAobGVuIDMvMTEvNy4yKSwgMCBtaXNt YXRjaGVkCiAgICBORkE6IDEyIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEzIHNraXBwZWQgKGxl biAxLzEvMS4wKQogICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9uZmFfY29tcGxleCAoYWN0dWFsIHJv d3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQ29uc2VjdXRpdmUg aW5jcmVhc2luZyB2YWx1ZXMgKHVzaW5nIFBSRVYpCiBDUkVBVEUgVklFVyBycHJfZXZfcmVhbF9p bmNyZWFzaW5nIEFTCkBAIC0yMzc0LDEzICsyNDI0LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5k b3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46 IGF7Myx9IgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTkgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6 IDEgbWF0Y2hlZCAobGVuIDUwLzUwLzUwLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogNDkgYWJz b3JiZWQgKGxlbiAxLzEvMS4wKSwgMCBza2lwcGVkCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCiso MTAgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLSBQZXJmb3JtYW5jZS1vcmllbnRlZCBUZXN0cwpAQCAtMjQx NiwxMyArMjQ2NywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0x MDAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2IE1hcmsg TG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAg IE5GQSBTdGF0ZXM6IDIgcGVhaywgMTAwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMiBwZWFrLCAxMDAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiA1MDAgbWF0Y2hlZCAobGVu IDIvMi8yLjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMCBhYnNvcmJlZCwgNTAwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTEwMDAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0g TGFyZ2UgZGF0YXNldCB3aXRoIGFic29ycHRpb24KIENSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2xh cmdlX2Fic29yYiBBUwpAQCAtMjQ1NSwxMyArMjUwNywxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz0xMDAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRl cm46IGErIiBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBN YXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCAxOTkxIHRvdGFsLCAw IG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDEwMDEgdG90YWwsIDAgcHJ1bmVkCiAg ICBORkE6IDEwIG1hdGNoZWQgKGxlbiAxMDAvMTAwLzEwMC4wKSwgMCBtaXNtYXRjaGVkCiAgICBO RkE6IDk4MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0x MDAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIEhpZ2ggc3RhdGUgbWVy Z2UgcmF0aW8KIENSRUFURSBWSUVXIHJwcl9ldl9wZXJmX2hpZ2hfbWVyZ2UgQVMKQEAgLTI0OTQs MTMgKzI1NDcsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAw LjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikrIGMKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiA5IHBlYWssIDMwMDYgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29u dGV4dHM6IDMgcGVhaywgNTAxIHRvdGFsLCAxIHBydW5lZAogICAgTkZBOiAxNjYgbWF0Y2hlZCAo bGVuIDMvMy8zLjApLCAxIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29y YmVkLCAzMzIgc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQor KDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gSU5JVElBTCB2cyBubyBJTklUSUFMIGNvbXBhcmlzb24K QEAgLTI1MzgsMTMgKzI1OTIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFs IHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTog TmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDkxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENv bnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChs ZW4gNS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAzMCBhYnNvcmJlZCAobGVuIDEvMS8x LjApLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygx MCByb3dzKQogCiAtLSBXaXRob3V0IElOSVRJQUwga2V5d29yZCAoc2FtZSBiZWhhdmlvciBjdXJy ZW50bHkpCiBDUkVBVEUgVklFVyBycHJfZXZfaW5pdGlhbF93aXRob3V0IEFTCkBAIC0yNTc3LDEz ICsyNjMyLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwLjAw IGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogMyBwZWFrLCA5MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBw ZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUvNS81LjAp LCAwIG1pc21hdGNoZWQKICAgIE5GQTogMzAgYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgMTAgc2tp cHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAog LS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSBRdWFudGlmaWVyIFZhcmlhdGlvbnMKQEAgLTI2MTksMTMgKzI2NzUsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3Rv cmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFr LCA3MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0MSB0b3RhbCwg MTAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBtaXNtYXRjaGVk CiAgICBORkE6IDIwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDAgc2tpcHBlZAogICAgLT4gIEZ1 bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3Bz PTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFN0YXIgcXVhbnRpZmllciAoemVybyBvciBt b3JlKQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3N0YXIgQVMKQEAgLTI2NTgsMTMgKzI3MTUs MTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9 MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSoiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVz OiA0IHBlYWssIDEwMiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMiBwZWFrLCA0 MSB0b3RhbCwgMTAgcHJ1bmVkCiAgICBORkE6IDEwIG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBt aXNtYXRjaGVkCiAgICBORkE6IDEwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQg KGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFF1 ZXN0aW9uIG1hcmsgKHplcm8gb3Igb25lKQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3F1ZXN0 aW9uIEFTCkBAIC0yNjk3LDEzICsyNzU1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGE/IGIg YworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBT dG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgODIgdG90YWwsIDAgbWVyZ2VkCiAg ICBORkEgQ29udGV4dHM6IDMgcGVhaywgNDEgdG90YWwsIDEwIHBydW5lZAogICAgTkZBOiAxMCBt YXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAy MCBza2lwcGVkIChsZW4gMS8yLzEuNSkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzIChhY3R1YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dz KQogCiAtLSBFeGFjdCBjb3VudCB7bn0KIENSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9leGFjdCBB UwpAQCAtMjczNiwxMyArMjc5NSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1 YWwgcm93cz01MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhezN9IGIKKyAg IE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFn ZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDUxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZB IENvbnRleHRzOiA1IHBlYWssIDUxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVk IChsZW4gNC80LzQuMCksIDEwIG1pc21hdGNoZWQgKGxlbiA0LzQvNC4wKQogICAgTkZBOiAwIGFi c29yYmVkLCAzMCBza2lwcGVkIChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9u IGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQotKDkgcm93cykK KygxMCByb3dzKQogCiAtLSBSYW5nZSB7bixtfQogQ1JFQVRFIFZJRVcgcnByX2V2X3F1YW50X3Jh bmdlIEFTCkBAIC0yNzc1LDEzICsyODM1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cg KGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Miw0 fSBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVt IFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNyBwZWFrLCAxMDEgdG90YWwsIDAgbWVyZ2Vk CiAgICBORkEgQ29udGV4dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDEw IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQs IDQwIHNraXBwZWQgKGxlbiAxLzQvMi41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJv d3MpCiAKIC0tIEF0IGxlYXN0IHtuLH0KIENSRUFURSBWSUVXIHJwcl9ldl9xdWFudF9hdGxlYXN0 IEFTCkBAIC0yODE0LDEzICsyODc1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFj dHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGF7Myx9IiBi CisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0 b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA4NiB0b3RhbCwgMCBtZXJnZWQKICAg IE5GQSBDb250ZXh0czogMiBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogNSBtYXRj aGVkIChsZW4gMTAvMTAvMTAuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiA0MCBhYnNvcmJlZCAo bGVuIDEvMS8xLjApLCA1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gUmVncmVzc2lvbiBUZXN0cyBmb3IgU3RhdGlz dGljcyBBY2N1cmFjeQpAQCAtMjg1NywxMyArMjkxOSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2lu ZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJu OiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgMzcgdG90YWwsIDAgbWVy Z2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMjEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6 IDQgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTIgYWJzb3Ji ZWQgKGxlbiAxLzEvMS4wKSwgNCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlv biBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQot KDkgcm93cykKKygxMCByb3dzKQogCiAtLSBWZXJpZnkgY29udGV4dCBjb3VudCB3aXRoIGtub3du IGFic29ycHRpb24KIENSRUFURSBWSUVXIHJwcl9ldl9yZWdfY3R4X2Fic29yYiBBUwpAQCAtMjg5 NiwxMyArMjk1OSwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0z MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYiBjCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogMyBwZWFrLCA1MiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0 czogMyBwZWFrLCAzMSB0b3RhbCwgNiBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gOS85 LzkuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAz IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVf c2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3Mp CiAKIC0tIFZlcmlmeSBtYXRjaCBsZW5ndGggd2l0aCBmaXhlZC1sZW5ndGggcGF0dGVybgogQ1JF QVRFIFZJRVcgcnByX2V2X3JlZ19tYXRjaGxlbiBBUwpAQCAtMjkzNSwxMyArMjk5OSwxNCBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAg V2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVh aywgMzEgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMgcGVhaywgMzEgdG90YWws IDEwIHBydW5lZAogICAgTkZBOiAxMCBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDAgbWlzbWF0Y2hl ZAogICAgTkZBOiAwIGFic29yYmVkLCAxMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0zMC4wMCBsb29w cz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIEFsdGVybmF0aW9uIFBhdHRl cm4gVGVzdHMKQEAgLTI5NzcsMTMgKzMwNDIsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChh IHwgYikgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4 aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDQgcGVhaywgMzAzIHRvdGFsLCAwIG1l cmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDEwMSB0b3RhbCwgNDAgcHJ1bmVkCiAgICBO RkE6IDIwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMjAgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjAp CiAgICBORkE6IDAgYWJzb3JiZWQsIDIwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9uZmFfdGVzdCAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIGl0ZW1zIGluIGFsdGVybmF0aW9uCiBDUkVB VEUgVklFVyBycHJfZXZfYWx0X211bHRpX2l0ZW0gQVMKQEAgLTMwMjAsMTMgKzMwODYsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCiAg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYiB8IGMgfCBkKSBlCisgICBOYXYgTWFyayBMb29r YmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZB IFN0YXRlczogNiBwZWFrLCA1MDUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDMg cGVhaywgMTAxIHRvdGFsLCAwIHBydW5lZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8yLzIu MCksIDYwIG1pc21hdGNoZWQgKGxlbiAyLzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAyMCBz a2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfbmZhX3Rlc3QgKGFj dHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBBbHRl cm5hdGlvbiB3aXRoIHF1YW50aWZpZXJzCiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X3dpdGhfcXVh bnQgQVMKQEAgLTMwNTksMTMgKzMxMjYsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAo YWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBi KSsgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11 bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDkgcGVhaywgMzA2IHRvdGFsLCAwIG1lcmdl ZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDUxIHRvdGFsLCAxIHBydW5lZAogICAgTkZBOiAx NiBtYXRjaGVkIChsZW4gMy8zLzMuMCksIDEgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAgICBO RkE6IDAgYWJzb3JiZWQsIDMyIHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIGFsdGVybmF0aXZlcyAoNCspCiBDUkVB VEUgVklFVyBycHJfZXZfYWx0X2ZvdXJfcGx1cyBBUwpAQCAtMzA5NiwxMiArMzE2NCwxMyBAQCBX SU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0xMDAuMDAgbG9vcHM9MSkKICAg IFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiIHwgYyB8IGQgfCBlKQorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5G QSBTdGF0ZXM6IDcgcGVhaywgNjA2IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAy IHBlYWssIDEwMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogMTAwIG1hdGNoZWQgKGxlbiAxLzEv MS4wKSwgMCBtaXNtYXRjaGVkCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3BzPTEpCi0oOCByb3dzKQorKDkgcm93cykKIAog LS0gQWx0ZXJuYXRpb24gYXQgc3RhcnQKIENSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfc3RhcnQg QVMKQEAgLTMxMzIsMTMgKzMyMDEsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0 dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgfCBiKSBj IGQKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0g U3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDE4MyB0b3RhbCwgMCBtZXJnZWQK ICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2MSB0b3RhbCwgMTYgcHJ1bmVkCiAgICBORkE6IDE1 IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMTQgbWlzbWF0Y2hlZCAobGVuIDIvMi8yLjApCiAgICBO RkE6IDAgYWJzb3JiZWQsIDE1IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9u IFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCi0o OSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE11bHRpcGxlIHNlcXVlbnRpYWwgYWx0ZXJuYXRpb25z CiBDUkVBVEUgVklFVyBycHJfZXZfYWx0X3NlcXVlbnRpYWwgQVMKQEAgLTMxNjksMTIgKzMyMzks MTMgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAwLjAwIGxvb3Bz PTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYikgYyAoZCB8IGUpIGYKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiA1IHBlYWssIDMzNyB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMyBwZWFrLCAxMDEgdG90YWwsIDY3IHBydW5lZAogICAgTkZBOiAwIG1hdGNoZWQsIDMz IG1pc21hdGNoZWQgKGxlbiAyLzQvMy4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTEwMC4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJv d3MpCiAKIC0tIFF1YW50aWZpZWQgYWx0ZXJuYXRpdmVzCiBDUkVBVEUgVklFVyBycHJfZXZfYWx0 X3F1YW50aWZpZWQgQVMKQEAgLTMyMDUsMTMgKzMyNzYsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogKGErIiB8IGIrIikgYworICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgMjIzIHRv dGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDYxIHRvdGFsLCAxIHBydW5l ZAogICAgTkZBOiAyMCBtYXRjaGVkIChsZW4gMi8yLzIuMCksIDE5IG1pc21hdGNoZWQgKGxlbiAy LzIvMi4wKQogICAgTkZBOiAwIGFic29yYmVkLCAyMCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAg IC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz02MC4w MCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBBbHRlcm5hdGlvbiBhdCBlbmQK IENSRUFURSBWSUVXIHJwcl9ldl9hbHRfYXRfZW5kIEFTCkBAIC0zMjQyLDEzICszMzE0LDE0IEBA IFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCiAg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGEgYiAoYyB8IGQpCisgICBOYXYgTWFyayBMb29rYmFjazog MAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRl czogMyBwZWFrLCA4OSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA2 MSB0b3RhbCwgMzIgcHJ1bmVkCiAgICBORkE6IDE0IG1hdGNoZWQgKGxlbiAzLzMvMy4wKSwgMCBt aXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDE0IHNraXBwZWQgKGxlbiAxLzEvMS4wKQog ICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYw LjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQgYXQgc3Rh cnQgb2YgYnJhbmNoIGluc2lkZSBvdXRlciBBTFQKIC0tIFBhdHRlcm46IChBICgoQiB8IEMpIEQg fCBFKSkgLSBwcmVjZWRpbmcgVkFSICsgaW5uZXIgQUxUIGFzIGZpcnN0IGJyYW5jaCBlbGVtZW50 CkBAIC0zMjgwLDEyICszMzUzLDEzIEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTIwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgKChiIHwgYykg ZCB8IGUpCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhp bXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNCBwZWFrLCAzNyB0b3RhbCwgMCBtZXJn ZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCAyMSB0b3RhbCwgMTcgcHJ1bmVkCiAgICBORkE6 IDAgbWF0Y2hlZCwgMyBtaXNtYXRjaGVkIChsZW4gMy8zLzMuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQotKDgg cm93cykKKyg5IHJvd3MpCiAKIC0tIE5lc3RlZCBBTFQgYXQgZW5kIG9mIGJyYW5jaCBpbnNpZGUg b3V0ZXIgQUxUCiAtLSBQYXR0ZXJuOiAoQyAoQSB8IEIpIHwgRCkgLSBpbm5lciBBTFQgaXMgbGFz dCBlbGVtZW50IGluIG91dGVyIGJyYW5jaApAQCAtMzMxNywxMiArMzM5MSwxMyBAQCBXSU5ET1cg dyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0yMC4wMCBsb29wcz0xKQogICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CiAgICBQYXR0ZXJuOiAoYyAoYSB8IGIpIHwgZCkKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA1 IHBlYWssIDczIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAzIHBlYWssIDIxIHRv dGFsLCAxMCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gMS8xLzEuMCksIDUgbWlzbWF0 Y2hlZCAobGVuIDIvMi8yLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJp ZXMgcyAoYWN0dWFsIHJvd3M9MjAuMDAgbG9vcHM9MSkKLSg4IHJvd3MpCisoOSByb3dzKQogCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tIEdyb3VwIFBhdHRlcm4gVGVzdHMKQEAgLTMzNTgsMTMgKzM0MzMsMTQgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogKGEnIGInKSsiCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAg U3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNCBw ZWFrLCA2MSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMyBwZWFrLCA0MSB0b3Rh bCwgMCBwcnVuZWQKICAgIE5GQTogMSBtYXRjaGVkIChsZW4gNDAvNDAvNDAuMCksIDAgbWlzbWF0 Y2hlZAogICAgTkZBOiAxOSBhYnNvcmJlZCAobGVuIDIvMi8yLjApLCAyMCBza2lwcGVkIChsZW4g MS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1 YWwgcm93cz00MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBHcm91cCB3 aXRoIGJvdW5kZWQgcXVhbnRpZmllcgogQ1JFQVRFIFZJRVcgcnByX2V2X2dycF9ib3VuZGVkIEFT CkBAIC0zMzk3LDEzICszNDczLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIGIpezIsNH0K KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3Rv cmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiA0IHBlYWssIDUxIHRvdGFsLCAwIG1lcmdlZAogICAg TkZBIENvbnRleHRzOiAzIHBlYWssIDQxIHRvdGFsLCA1IHBydW5lZAogICAgTkZBOiA1IG1hdGNo ZWQgKGxlbiA4LzgvOC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDMwIHNr aXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2Vy aWVzIHMgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAK IC0tIE5lc3RlZCBncm91cHMKIENSRUFURSBWSUVXIHJwcl9ldl9ncnBfbmVzdGVkIEFTCkBAIC0z NDM2LDEzICszNTEzLDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dz PTYwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46ICgoYScgYicpezJ9JykrIgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9y YWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDUgcGVhaywgNzYgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDQgcGVhaywgNjEgdG90YWwsIDE1IHBydW5lZAogICAgTkZBOiAxIG1hdGNo ZWQgKGxlbiA2MC82MC82MC4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE0IGFic29yYmVkIChs ZW4gNC80LzQuMCksIDMwIHNraXBwZWQgKGxlbiAxLzIvMS41KQogICAgLT4gIEZ1bmN0aW9uIFNj YW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxvb3BzPTEpCi0oOSBy b3dzKQorKDEwIHJvd3MpCiAKIC0tIERlZXAgbmVzdGluZyAoMysgbGV2ZWxzKQogQ1JFQVRFIFZJ RVcgcnByX2V2X2dycF9kZWVwIEFTCkBAIC0zNDczLDEzICszNTUxLDE0IEBAIFdJTkRPVyB3IEFT ICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTQwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcg QVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IChhIHwgYikrCisgICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTog TWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgogICAgTkZBIFN0YXRlczogNiBwZWFrLCAyNDMg dG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNDEgdG90YWwsIDAgcHJ1 bmVkCiAgICBORkE6IDEgbWF0Y2hlZCAobGVuIDQwLzQwLzQwLjApLCAwIG1pc21hdGNoZWQKICAg IE5GQTogMCBhYnNvcmJlZCwgMzkgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NDAuMDAgbG9vcHM9MSkK LSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gQm91bmRlZCBxdWFudGlmaWVyIG9uIGFsdGVybmF0 aW9uCiBDUkVBVEUgVklFVyBycHJfZXZfZ3JwX2JvdW5kZWRfYWx0IEFTCkBAIC0zNTEwLDEzICsz NTg5LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTYwLjAwIGxv b3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IChhIHwgYil7MiwzfSBjCisgICBOYXYgTWFy ayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgog ICAgTkZBIFN0YXRlczogOCBwZWFrLCAzMjAgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4 dHM6IDMgcGVhaywgNjEgdG90YWwsIDIgcHJ1bmVkCiAgICBORkE6IDE5IG1hdGNoZWQgKGxlbiAz LzMvMy4wKSwgMSBtaXNtYXRjaGVkIChsZW4gMi8yLzIuMCkKICAgIE5GQTogMCBhYnNvcmJlZCwg Mzggc2tpcHBlZCAobGVuIDEvMi8xLjUpCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NjAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93 cykKIAogLS0gTmVzdGVkIGdyb3VwcyB3aXRoIHF1YW50aWZpZXJzCiBDUkVBVEUgVklFVyBycHJf ZXZfZ3JwX25lc3RlZF9xdWFudCBBUwpAQCAtMzU0NywxMyArMzYyNywxNCBAQCBXSU5ET1cgdyBB UyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAg ICBQYXR0ZXJuOiAoKGEnIGInKSsiIGMpKgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDkgcGVh aywgMTc4IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiA0IHBlYWssIDYxIHRvdGFs LCAyMCBwcnVuZWQKICAgIE5GQTogMyBtYXRjaGVkIChsZW4gMC81Ny8xOS4wKSwgMCBtaXNtYXRj aGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDM3IHNraXBwZWQgKGxlbiAxLzMvMi4wKQogICAgLT4g IEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTYwLjAwIGxv b3BzPTEpCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tIFBhcnRpYWwgbmVzdGVkIHF1YW50aWZp Y2F0aW9uCiBDUkVBVEUgVklFVyBycHJfZXZfZ3JwX3BhcnRpYWxfcXVhbnQgQVMKQEAgLTM1ODQs MTMgKzM2NjUsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NjAu MDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogKGEgKGIgYykrKSoKKyAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtC CiAgICBORkEgU3RhdGVzOiA3IHBlYWssIDE2MCB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogNCBwZWFrLCA2MSB0b3RhbCwgMjAgcHJ1bmVkCiAgICBORkE6IDMgbWF0Y2hlZCAobGVu IDAvNTcvMTkuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCAzNyBza2lwcGVk IChsZW4gMS8zLzIuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz IChhY3R1YWwgcm93cz02MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIFdpbmRvdyBGdW5jdGlvbiBDb21iaW5hdGlvbnMKQEAgLTM2MjYsMTMgKzM3MDgsMTQg QEAgV0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkK ICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQogICAgUGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAg ICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAz IHBlYWssIDU1IHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDMxIHRv dGFsLCAwIHBydW5lZAogICAgTkZBOiA2IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRj aGVkCiAgICBORkE6IDE4IGFic29yYmVkIChsZW4gMS8xLzEuMCksIDYgc2tpcHBlZCAobGVuIDEv MS8xLjApCiAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFs IHJvd3M9MzAuMDAgbG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gZmlyc3RfdmFs dWUgd2l0aCBwYXR0ZXJuCiBDUkVBVEUgVklFVyBycHJfZXZfd2ZuX2ZpcnN0X3ZhbHVlIEFTCkBA IC0zNjY1LDEzICszNzQ4LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCBy b3dzPTMwLjAwIGxvb3BzPTEpCiAgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGErIiBiCisgICBOYXYg TWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5r QgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA1NSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250 ZXh0czogMiBwZWFrLCAzMSB0b3RhbCwgMCBwcnVuZWQKICAgIE5GQTogNiBtYXRjaGVkIChsZW4g NS81LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAxOCBhYnNvcmJlZCAobGVuIDEvMS8xLjAp LCA2IHNraXBwZWQgKGxlbiAxLzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTMwLjAwIGxvb3BzPTEpCi0oOSByb3dzKQorKDEwIHJv d3MpCiAKIC0tIGxhc3RfdmFsdWUgd2l0aCBwYXR0ZXJuCiBDUkVBVEUgVklFVyBycHJfZXZfd2Zu X2xhc3RfdmFsdWUgQVMKQEAgLTM3MDQsMTMgKzM3ODgsMTQgQEAgV0lORE9XIHcgQVMgKAogIFdp bmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVy bjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1h eGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDU1IHRvdGFsLCAwIG1l cmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDMxIHRvdGFsLCAwIHBydW5lZAogICAgTkZB OiA2IG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDE4IGFic29y YmVkIChsZW4gMS8xLzEuMCksIDYgc2tpcHBlZCAobGVuIDEvMS8xLjApCiAgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkK LSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gTXVsdGlwbGUgd2luZG93IGZ1bmN0aW9ucwogQ1JF QVRFIFZJRVcgcnByX2V2X3dmbl9tdWx0aSBBUwpAQCAtMzc0OSwxMyArMzgzNCwxNCBAQCBXSU5E T1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAgV2lu ZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJ TkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3Jh Z2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywg NTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEgQ29udGV4dHM6IDIgcGVhaywgMzEgdG90YWwsIDAg cHJ1bmVkCiAgICBORkE6IDYgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAg IE5GQTogMTggYWJzb3JiZWQgKGxlbiAxLzEvMS4wKSwgNiBza2lwcGVkIChsZW4gMS8xLzEuMCkK ICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0z MC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIERFRklORSBF eHByZXNzaW9uIFZhcmlhdGlvbnMKQEAgLTM3OTUsMTMgKzM4ODEsMTQgQEAgV0lORE9XIHcgQVMg KAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKICAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAg UGF0dGVybjogYSsiIGIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBORkEgU3RhdGVzOiAzIHBlYWssIDc4IHRvdGFs LCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUxIHRvdGFsLCA2IHBydW5lZAog ICAgTkZBOiAxNyBtYXRjaGVkIChsZW4gMi8zLzIuNiksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAx MCBhYnNvcmJlZCAobGVuIDEvMS8xLjApLCAxNyBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MC4wMCBs b29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLSBVc2luZyBQUkVWIGZ1bmN0aW9uCiBD UkVBVEUgVklFVyBycHJfZXZfZGVmX3ByZXYgQVMKQEAgLTM4NDAsMTIgKzM5MjcsMTMgQEAgV0lO RE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MzAuMDAgbG9vcHM9MSkKICAgIFdp bmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HKQogICAgUGF0dGVybjogcyB1KyBkKworICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDYwIHBl YWssIDQ2NiB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czogMzEgcGVhaywgMzEgdG90 YWwsIDEgcHJ1bmVkCiAgICBORkE6IDAgbWF0Y2hlZCwgMjkgbWlzbWF0Y2hlZCAobGVuIDIvMzAv MTYuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwg cm93cz0zMC4wMCBsb29wcz0xKQotKDggcm93cykKKyg5IHJvd3MpCiAKIC0tIFVzaW5nIDEtYXJn IFBSRVYgKGltcGxpY2l0IG9mZnNldCAxKQogQ1JFQVRFIFZJRVcgcnByX2V2X25hdl9wcmV2MSBB UwpAQCAtMzk2NCwxMyArNDA1MiwxNCBAQCBXSU5ET1cgdyBBUyAoCiAgV2luZG93QWdnIChhY3R1 YWwgcm93cz0zMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdl OiBOa0IKICAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgNTUgdG90YWwsIDAgbWVyZ2VkCiAgICBORkEg Q29udGV4dHM6IDIgcGVhaywgMzEgdG90YWwsIDAgcHJ1bmVkCiAgICBORkE6IDYgbWF0Y2hlZCAo bGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKICAgIE5GQTogMTggYWJzb3JiZWQgKGxlbiAxLzEv MS4wKSwgNiBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyB2IChhY3R1YWwgcm93cz0zMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygx MCByb3dzKQogCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9u CkBAIC00MDA2LDEzICs0MDk1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVh bCByb3dzPTUwMC4wMCBsb29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhKyIgYiBjCisg ICBOYXYgTWFyayBMb29rYmFjazogMAogICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3Jh Z2U6IE5rQgogICAgTkZBIFN0YXRlczogMyBwZWFrLCA4NTEgdG90YWwsIDAgbWVyZ2VkCiAgICBO RkEgQ29udGV4dHM6IDMgcGVhaywgNTAxIHRvdGFsLCAxMDEgcHJ1bmVkCiAgICBORkE6IDUwIG1h dGNoZWQgKGxlbiA4LzkvOS4wKSwgMCBtaXNtYXRjaGVkCiAgICBORkE6IDI5OSBhYnNvcmJlZCAo bGVuIDEvMS8xLjApLCA1MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ICBGdW5jdGlvbiBT Y2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MDAuMDAgbG9vcHM9MSkKLSg5 IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBtYXRjaCBjb3VudCBzY2VuYXJpbwogQ1JFQVRF IFZJRVcgcnByX2V2X3NjYWxlX2hpZ2hfbWF0Y2ggQVMKQEAgLTQwNDUsMTMgKzQxMzUsMTQgQEAg V0lORE9XIHcgQVMgKAogIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9NTAwLjAwIGxvb3BzPTEpCiAg ICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGEgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKICAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKICAgIE5GQSBTdGF0ZXM6IDIgcGVh aywgNTAxIHRvdGFsLCAwIG1lcmdlZAogICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDUwMSB0b3Rh bCwgMCBwcnVuZWQKICAgIE5GQTogMjUwIG1hdGNoZWQgKGxlbiAyLzIvMi4wKSwgMCBtaXNtYXRj aGVkCiAgICBORkE6IDAgYWJzb3JiZWQsIDI1MCBza2lwcGVkIChsZW4gMS8xLzEuMCkKICAgIC0+ ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz01MDAuMDAg bG9vcHM9MSkKLSg5IHJvd3MpCisoMTAgcm93cykKIAogLS0gSGlnaCBza2lwIGNvdW50IHNjZW5h cmlvCiBDUkVBVEUgVklFVyBycHJfZXZfc2NhbGVfaGlnaF9za2lwIEFTCkBAIC00MDk0LDEzICs0 MTg1LDE0IEBAIFdJTkRPVyB3IEFTICgKICBXaW5kb3dBZ2cgKGFjdHVhbCByb3dzPTUwMC4wMCBs b29wcz0xKQogICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIgYyBkIGUKKyAgIE5hdiBNYXJrIExv b2tiYWNrOiAwCiAgICBTdG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogTmtCCiAgICBO RkEgU3RhdGVzOiAyIHBlYWssIDUwMSB0b3RhbCwgMCBtZXJnZWQKICAgIE5GQSBDb250ZXh0czog MyBwZWFrLCA1MDEgdG90YWwsIDQ5MCBwcnVuZWQKICAgIE5GQTogNSBtYXRjaGVkIChsZW4gNS81 LzUuMCksIDAgbWlzbWF0Y2hlZAogICAgTkZBOiAwIGFic29yYmVkLCA1IHNraXBwZWQgKGxlbiAx LzEvMS4wKQogICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVh bCByb3dzPTUwMC4wMCBsb29wcz0xKQotKDkgcm93cykKKygxMCByb3dzKQogCiAtLQogLS0gUGxh bm5lciBvcHRpbWl6YXRpb246IG9wdGltaXplX3dpbmRvd19jbGF1c2VzIG11c3Qgbm90IGFsdGVy IFJQUiBmcmFtZQpAQCAtNDE0OSwxMCArNDI0MSwxMSBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCAqIEZST00gcnByX2V2X29wdF93aXRoX3JwcjsKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAg ICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcy52IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAg IE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAg U29ydCBLZXk6IHMudgogICAgICAgICAgICAgICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJh dGVfc2VyaWVzIHMKLSg3IHJvd3MpCisoOCByb3dzKQogCiAtLQogLS0gUGxhbm5lciBvcHRpbWl6 YXRpb246IG5vbi1SUFIgYW5kIFJQUiB3aW5kb3dzIHRoYXQgc2hhcmUgdGhlIHNhbWUgYmFzZSBm cmFtZQpAQCAtNDE3OCwxMiArNDI3MSwxMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAq IEZST00gcnByX2V2X29wdF9taXhlZDsKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgIFdpbmRv dzogd19ycHIgQVMgKE9SREVSIEJZIHMudiBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKKyAgICAgICAgIE5hdiBN YXJrIExvb2tiYWNrOiAwCiAgICAgICAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICAgICAgICBX aW5kb3c6IHdfbm9ybWFsIEFTIChPUkRFUiBCWSBzLnYgUk9XUyBVTkJPVU5ERUQgUFJFQ0VESU5H KQogICAgICAgICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgICAgICAgIFNvcnQgS2V5 OiBzLnYKICAgICAgICAgICAgICAgICAgICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzCi0oOSByb3dzKQorKDEwIHJvd3MpCiAKIC0tCiAtLSBQbGFubmVyIG9wdGltaXph dGlvbjogZmluZF93aW5kb3dfcnVuX2NvbmRpdGlvbnMgbXVzdCBub3QgcHVzaCBkb3duCkBAIC00 MjQyLDggKzQzMzYsMTMzIEBAIFNFTEVDVCAqIEZST00gKAogICAgLT4gIFdpbmRvd0FnZwogICAg ICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBzLnYgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAg ICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAg ICBTb3J0IEtleTogcy52CiAgICAgICAgICAgICAgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5l cmF0ZV9zZXJpZXMgcwotKDggcm93cykKKyg5IHJvd3MpCisKKy0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gTmF2IE1hcmsg TG9va2JhY2sgVGVzdHMKKy0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQgbmF2aWdhdGlvbiBv ZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KKy0tIExvb2tiYWNrOiBob3cgZmFyIGJhY2sgZnJv bSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBQcmVwYXJlIHN0YXRlbWVudCBm b3IgaG9zdCB2YXJpYWJsZSBvZmZzZXQgdGVzdCBiZWxvdworUFJFUEFSRSBycHJfbmF2X29mZnNl dF9wcmVwKGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgdiA+IFBSRVYodiwgJDEpCispOworLS0gTm8gbmF2aWdhdGlvbiBmdW5jdGlvbjogb2Zm c2V0IDAKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQor ICAgIERFRklORSBBIEFTIHYgPiAwCispOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRv d0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAw CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKwor LS0gTkVYVCBvbmx5OiBubyBiYWNrd2FyZCBuYXZpZ2F0aW9uLCBvZmZzZXQgMAorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg diA8IE5FWFQodikKKyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBX aW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIC0+ICBG dW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBQUkVWKHYp OiBpbXBsaWNpdCBvZmZzZXQgMQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodikKKyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAg TmF2IE1hcmsgTG9va2JhY2s6IDEKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nl cmllcyBzCisoNSByb3dzKQorCistLSBQUkVWKHYsIDMpOiBleHBsaWNpdCBjb25zdGFudCBvZmZz ZXQgMworRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodiwgMykKKyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1hcmsgTG9v a2JhY2s6IDMKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSBy b3dzKQorCistLSBUd28gUFJFViB3aXRoIGRpZmZlcmVudCBvZmZzZXRzOiBtYXgoMSwgNSkgPSA1 CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBQUkVWKHYsIDEpIDwgdiBBTkQgUFJFVih2LCA1KSA8IHYKKyk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgor ICAgTmF2IE1hcmsgTG9va2JhY2s6IDUKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRl X3NlcmllcyBzCisoNSByb3dzKQorCistLSBIb3N0IHZhcmlhYmxlIG9mZnNldDogY3VzdG9tIHBs YW4gcmVzb2x2ZXMgJDE9MiB0byBjb25zdGFudCAyCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5k b3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsiCisgICBOYXYgTWFyayBMb29rYmFjazog MgorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMKKyg1IHJvd3MpCisK Ky0tIEZvcmNlIGdlbmVyaWMgcGxhbjogb2Zmc2V0IGJlY29tZXMgInJ1bnRpbWUiIChQYXJhbSBu b2RlKQorU0VUIHBsYW5fY2FjaGVfbW9kZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBycHJfbmF2X29mZnNldF9wcmVwKDIpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIKKyAgIE5h diBNYXJrIExvb2tiYWNrOiBydW50aW1lCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcworKDUgcm93cykKIAorUkVTRVQgcGxhbl9jYWNoZV9tb2RlOworREVBTExPQ0FU RSBycHJfbmF2X29mZnNldF9wcmVwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJf aW50ZWdyYXRpb24ub3V0CmluZGV4IGY5ZjcwYTgxNGNhLi45ZGJmMGY0M2M4ZiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfaW50ZWdyYXRpb24ub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2ludGVncmF0aW9uLm91dApAQCAtNjcsMTAgKzY3 LDExIEBAIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisgICBOYXYgTWFyayBMb29rYmFjazogMQogICAg LT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBpZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHJwcl9pbnRlZwotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gQTIuIFJ1biBjb25k aXRpb24gcHVzaGRvd24gYnlwYXNzCkBAIC0xMTcsMTAgKzExOCwxMSBAQCBTRUxFQ1QgKiBGUk9N ICgKICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnBy X2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RykKICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAx CiAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5p ZAogICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDggcm93cykKKyg5 IHJvd3MpCiAKIC0tIFZlcmlmeSB0aGF0IHRoZSBSUFIgcXVlcnkgc3RpbGwgcmV0dXJucyBldmVy eSByb3cgd2hvc2UgbWF0Y2ggY291bnQgaXMKIC0tIGdyZWF0ZXIgdGhhbiB6ZXJvLCBjb25maXJt aW5nIHRoZSBmaWx0ZXIgaXMgZXZhbHVhdGVkIGFib3ZlIHRoZQpAQCAtMTkwLDEwICsxOTIsMTEg QEAgRlJPTSBycHJfaW50ZWc7CiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcx IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAgICBOYXYgTWFyayBMb29r YmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBpZAog ICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDggcm93cykKKyg5IHJv d3MpCiAKIC0tIFZlcmlmeSB0aGF0IHRoZSB0d28gd2luZG93cyByZXR1cm4gaW5kZXBlbmRlbnQg Y291bnRzIHBlciByb3csCiAtLSBjb25maXJtaW5nIHRoZXkgd2VyZSBub3QgbWVyZ2VkIGludG8g YSBzaW5nbGUgV2luZG93QWdnLgpAQCAtMjUwLDEwICsyNTMsMTEgQEAgRlJPTSBycHJfaW50ZWc7 CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcxIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisg ICBOYXYgTWFyayBMb29rYmFjazogMQogICAgLT4gIFNvcnQKICAgICAgICAgIFNvcnQgS2V5OiBp ZAogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwotKDYgcm93cykKKyg3IHJvd3Mp CiAKIC0tIFR3byBpbmxpbmUgUlBSIHdpbmRvd3Mgd2l0aCB0aGUgc2FtZSBQQVRURVJOIGJ1dCBv cHBvc2l0ZSBERUZJTkUKIC0tIGNvbmRpdGlvbnMgbXVzdCByZW1haW4gYXMgc2VwYXJhdGUgV2lu ZG93QWdnIG5vZGVzLgpAQCAtMjczLDEzICsyNzcsMTUgQEAgRlJPTSBycHJfaW50ZWc7CiAgV2lu ZG93QWdnCiAgICBXaW5kb3c6IHcyIEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICBQYXR0ZXJuOiBhIGIrCisgICBOYXYg TWFyayBMb29rYmFjazogMQogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3MSBB UyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAgICAgTmF2IE1hcmsgTG9va2Jh Y2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAgICBTb3J0IEtleTogaWQKICAg ICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg5IHJvd3MpCisoMTEgcm93 cykKIAogLS0gVmVyaWZ5IHRoYXQgdGhlIHR3byB3aW5kb3dzIHJldHVybiBkaWZmZXJlbnQgY291 bnRzIHBlciByb3csCiAtLSBjb25maXJtaW5nIHRoZSBERUZJTkUgY29uZGl0aW9ucyB3ZXJlIG5v dCBjb2xsYXBzZWQgYnkgZGVkdXAuCkBAIC0zMzYsOCArMzQyLDkgQEAgU0VMRUNUIGNvdW50KCop IEZST00gKAogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2luZG93OiB3IEFTIChST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0 ZXJuOiBhKyIKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU2Vx IFNjYW4gb24gcnByX2ludGVnCi0oNSByb3dzKQorKDYgcm93cykKIAogU0VMRUNUIGNvdW50KCop IEZST00gKAogICAgIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfaW50ZWcKQEAgLTM2 OSw4ICszNzYsOSBAQCBTRUxFQ1QgY291bnQoKiksIHN1bShjKSBGUk9NICgKICAgIC0+ICBXaW5k b3dBZ2cKICAgICAgICAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSsiCisgICAgICAgICBO YXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwot KDUgcm93cykKKyg2IHJvd3MpCiAKIFNFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAogICAg IFNFTEVDVCBjb3VudCgqKSBPVkVSIHcgQVMgYyBGUk9NIHJwcl9pbnRlZwpAQCAtNDAxLDggKzQw OSw5IEBAIFNFTEVDVCBjb3VudCgqKSwgc3VtKGMpIEZST00gKAogICAgLT4gIFdpbmRvd0FnZwog ICAgICAgICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9V TkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhKyIKKyAgICAgICAgIE5hdiBNYXJr IExvb2tiYWNrOiAwCiAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0oNSByb3dz KQorKDYgcm93cykKIAogU0VMRUNUIGNvdW50KCopLCBzdW0oYykgRlJPTSAoCiAgICAgU0VMRUNU IGNvdW50KCopIE9WRVIgdyBBUyBjIEZST00gcnByX2ludGVnCkBAIC00NDEsMTAgKzQ1MCwxMSBA QCBTRUxFQ1QgY291bnQoKikgRlJPTSAoCiAgICAtPiAgV2luZG93QWdnCiAgICAgICAgICBXaW5k b3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICBQYXR0ZXJuOiBhIGIrCisgICAgICAg ICBOYXYgTWFyayBMb29rYmFjazogMQogICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAg IFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKICAgICAgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBy cHJfaW50ZWcKLSg3IHJvd3MpCisoOCByb3dzKQogCiBTRUxFQ1QgY291bnQoKikgRlJPTSAoCiAg ICAgU0VMRUNUIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX2ludGVnCkBAIC01NTUsMTAg KzU2NSwxMSBAQCBXSEVSRSBjbnQgPiAwOwogICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgV2lu ZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgUGF0dGVybjogYSBiKworICAgICAg ICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgIC0+ICBTb3J0CiAgICAgICAgICAgICAg ICBTb3J0IEtleTogcnByX2ludGVnLmlkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24g cnByX2ludGVnCi0oOCByb3dzKQorKDkgcm93cykKIAogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBBOS4gREVGSU5FIGV4 cHJlc3Npb24gbm9uLXByb3BhZ2F0aW9uCkBAIC01OTUsMTIgKzYwNiwxMyBAQCBXSU5ET1cKICAg ICAgICAgIE91dHB1dDogaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3X3JwcgogICAgICAgICAgV2lu ZG93OiB3X3JwciBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAg ICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU29ydAogICAgICAgICAg ICAgICAgT3V0cHV0OiBpZCwgdmFsCiAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVn LmlkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLnJwcl9pbnRlZwogICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiBpZCwgdmFsCi0oMTIgcm93cykKKygxMyByb3dzKQog CiAtLSBFeGVjdXRpbmcgdGhlIHNhbWUgcXVlcnkgc2hvd3MgdGhlIGNsaWVudCByZXN1bHQgaXMg bGltaXRlZCB0bwogLS0gdGhlIHR3byBwcm9qZWN0ZWQgY29sdW1uczsgImlkIiBhbmQgInZhbCIg dGhhdCBhcHBlYXJlZCBpbiB0aGUKQEAgLTY1NCwxMCArNjY2LDExIEBAIExJTUlUIDU7CiAgICAt PiAgV2luZG93QWdnCiAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgIFBhdHRl cm46IGEgYisKKyAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAtPiAgU29y dAogICAgICAgICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX2ludGVnCi0oNyByb3dzKQorKDggcm93cykKIAogLS0gUmVmZXJlbmNlOiB1bi1M SU1JVGVkIHJlc3VsdCBhZ2FpbnN0IHdoaWNoIHRoZSBMSU1JVCA1IHJlc3VsdCBpcwogLS0gY29t cGFyZWQuCkBAIC03NDgsMTAgKzc2MSwxMSBAQCBTRUxFQ1QgaWQsIHZhbCwgY250IEZST00gcnBy X3Jlc3VsdCBPUkRFUiBCWSBpZDsKICBXaW5kb3dBZ2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIg QlkgcnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAt PiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9pbnRlZwotKDYgcm93cykKKyg3IHJvd3MpCiAKIC0tIFJlc3VsdCBtdXN0 IG1hdGNoIHRoZSBiYXNlbGluZSByb3ctZm9yLXJvdy4KIFdJVEggcnByX3Jlc3VsdCBBUyAoCkBA IC04MDIsNiArODE2LDcgQEAgT1JERVIgQlkgcjEuaWQ7CiAgICAgIC0+ICBXaW5kb3dBZ2cKICAg ICAgICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgICBQYXR0ZXJu OiBhIGIrCisgICAgICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAgIC0+ICBT b3J0CiAgICAgICAgICAgICAgICAgIFNvcnQgS2V5OiBycHJfaW50ZWcuaWQKICAgICAgICAgICAg ICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwpAQCAtODEzLDcgKzgyOCw3IEBAIE9SREVS IEJZIHIxLmlkOwogICAgICAgICAgU29ydCBLZXk6IHIxLmlkLCByMS5jbnQKICAgICAgICAgIC0+ ICBDVEUgU2NhbiBvbiBycHJfcmVzdWx0IHIxCiAgICAgICAgICAgICAgICBGaWx0ZXI6IChjbnQg PiAwKQotKDE3IHJvd3MpCisoMTggcm93cykKIAogLS0gUmVzdWx0OiBib3RoIHJlZmVyZW5jZXMg c2VlIHRoZSBzYW1lIG1hdGNoIGNvdW50cywgc28gdGhlIHNlbGYtam9pbgogLS0gcHJlc2VydmVz IGFsbCBtYXRjaGVkIHJvd3MgZnJvbSB0aGUgYmFzZWxpbmUuCkBAIC04OTYsMTMgKzkxMSwxNCBA QCBPUkRFUiBCWSByLmlkOwogICAgICAgICAgLT4gIFdpbmRvd0FnZwogICAgICAgICAgICAgICAg V2luZG93OiB3IEFTIChPUkRFUiBCWSBycHJfaW50ZWcuaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgICAgICAgICAgICAgUGF0dGVybjogYSBi KworICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6IDEKICAgICAgICAgICAgICAgIC0+ ICBTb3J0CiAgICAgICAgICAgICAgICAgICAgICBTb3J0IEtleTogcnByX2ludGVnLmlkCiAgICAg ICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnCiAgICAtPiAgU29ydAog ICAgICAgICAgU29ydCBLZXk6IGouaWQKICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBycHJfaW50 ZWcyIGoKLSgxMyByb3dzKQorKDE0IHJvd3MpCiAKIC0tIFJlc3VsdDogbWF0Y2hlZCBSUFIgcm93 cyBhbGlnbiB3aXRoIGRpbWVuc2lvbiByb3dzIG9uIGlkLCBzaG93aW5nCiAtLSB0aGUgam9pbiBj b3JyZWN0bHkgcGFpcnMgcGVyLXJvdyBtYXRjaCBjb3VudHMgd2l0aCB0aGVpciBsYWJlbHMuCkBA IC05NjEsNiArOTc3LDcgQEAgT1JERVIgQlkgc291cmNlLCBpZDsKICAgICAgICAgICAgICAgIC0+ ICBXaW5kb3dBZ2cKICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkg cnByX2ludGVnLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORykKICAgICAgICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAg ICAgICAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU29y dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwpAQCAtOTY5 LDcgKzk4Niw3IEBAIE9SREVSIEJZIHNvdXJjZSwgaWQ7CiAgICAgICAgICAgICAgICAtPiAgU29y dAogICAgICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZ18xLmlkCiAgICAgICAg ICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX2ludGVnIHJwcl9pbnRlZ18xCi0oMTYg cm93cykKKygxNyByb3dzKQogCiAtLSBSZXN1bHQ6IHJvd3MgZnJvbSBib3RoIGJyYW5jaGVzIGFy ZSBwcmVzZW50IGluIHRoZSB1bmlvbmVkIG91dHB1dC4KIC0tIFRoZSBSUFIgYnJhbmNoIGVtaXRz IG9ubHkgbWF0Y2hlZCByb3dzIChjbnQgPiAwKSwgd2hpbGUgdGhlCkBAIC0xMDM0LDEwICsxMDUx LDExIEBAIEVYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSBycHJfcHJldigxKTsKICBXaW5kb3dB Z2cKICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQogICAgUGF0dGVybjogYSBiKworICAgTmF2IE1hcmsg TG9va2JhY2s6IDEKICAgIC0+ICBTb3J0CiAgICAgICAgICBTb3J0IEtleTogaWQKICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiBycHJfaW50ZWcKLSg2IHJvd3MpCisoNyByb3dzKQogCiBFWEVDVVRF IHJwcl9wcmV2KDEpOwogIGlkIHwgdmFsIHwgY250IApAQCAtMTA2NCwxMCArMTA4MiwxMSBAQCBF WFBMQUlOIChDT1NUUyBPRkYpIEVYRUNVVEUgcnByX3ByZXYoMSk7CiAgV2luZG93QWdnCiAgICBX aW5kb3c6IHcgQVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNr OiBydW50aW1lCiAgICAtPiAgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkCiAgICAgICAgICAt PiAgU2VxIFNjYW4gb24gcnByX2ludGVnCi0oNiByb3dzKQorKDcgcm93cykKIAogRVhFQ1VURSBy cHJfcHJldigxKTsKICBpZCB8IHZhbCB8IGNudCAKQEAgLTExMTUsMTIgKzExMzQsMTMgQEAgT1JE RVIgQlkgaWQ7CiAgV2luZG93QWdnCiAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9wYXJ0 LmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAg IFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCiAgICAtPiAgU29ydAogICAg ICAgICAgU29ydCBLZXk6IHJwcl9wYXJ0LmlkCiAgICAgICAgICAtPiAgQXBwZW5kCiAgICAgICAg ICAgICAgICAtPiAgU2VxIFNjYW4gb24gcnByX3BhcnRfMQogICAgICAgICAgICAgICAgLT4gIFNl cSBTY2FuIG9uIHJwcl9wYXJ0XzIKLSg4IHJvd3MpCisoOSByb3dzKQogCiAtLSBCYXNlbGluZTog dGhlIHNhbWUgcXVlcnkgYWdhaW5zdCB0aGUgbm9uLXBhcnRpdGlvbmVkIHJwcl9pbnRlZwogLS0g cHJvZHVjZXMgdGhlIHBlci1yb3cgcmVmZXJlbmNlIG91dHB1dC4KQEAgLTEyMDgsMTEgKzEyMjgs MTIgQEAgT1JERVIgQlkgby5pZCwgci5pZDsKICAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cK ICAgICAgICAgICAgICAgICAgICAgIFdpbmRvdzogdyBBUyAoT1JERVIgQlkgcnByX2ludGVnLmlk IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAg ICAgICAgICAgICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgICAgIE5hdiBN YXJrIExvb2tiYWNrOiAxCiAgICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgU29ydCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHJwcl9pbnRlZwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPD0gby5pZCkKLSgxNCByb3dzKQorKDE1IHJvd3Mp CiAKIC0tIFJlc3VsdDogZm9yIGVhY2ggb2YgdGhlIHR3byBvdXRlciBpZHMgKDUgYW5kIDEwKSwg dGhlIExBVEVSQUwKIC0tIHN1YnF1ZXJ5IHByb2R1Y2VzIFJQUiBtYXRjaCBjb3VudHMgb3ZlciB0 aGUgcmVzdHJpY3RlZCBpbnB1dC4KQEAgLTEyNzksMTMgKzEzMDAsMTQgQEAgU0VMRUNUIGlkLCB2 YWwsIGNudCBGUk9NIHNlcSBPUkRFUiBCWSBpZDsKICAgICAgICAgICAgLT4gIFdpbmRvd0FnZwog ICAgICAgICAgICAgICAgICBXaW5kb3c6IHcgQVMgKE9SREVSIEJZIHJwcl9pbnRlZy5pZCBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCiAgICAgICAgICAg ICAgICAgIFBhdHRlcm46IGEgYisKKyAgICAgICAgICAgICAgICAgTmF2IE1hcmsgTG9va2JhY2s6 IDEKICAgICAgICAgICAgICAgICAgLT4gIFNvcnQKICAgICAgICAgICAgICAgICAgICAgICAgU29y dCBLZXk6IHJwcl9pbnRlZy5pZAogICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNjYW4g b24gcnByX2ludGVnCiAgICAgICAgICAgIC0+ICBXb3JrVGFibGUgU2NhbiBvbiBzZXEgc2VxXzEK ICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoaWQgPCAzKQogICAgLT4gIENURSBTY2FuIG9uIHNl cQotKDEzIHJvd3MpCisoMTQgcm93cykKIAogLS0gUmVzdWx0OiB0aGUgYmFzZSBsZWcgY29udHJp YnV0ZXMgdGhlIFJQUiBtYXRjaCBjb3VudHM7IHRoZQogLS0gcmVjdXJzaXZlIGxlZyBwcm9wYWdh dGVzIHRob3NlIGNvdW50cyB3aXRoIHNoaWZ0ZWQgaWRzLgpAQCAtMTM0MywxMSArMTM2NSwxMiBA QCBXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQsIHZhbAogIFdpbmRvd0FnZwogICAgV2luZG93OiB3 IEFTIChPUkRFUiBCWSBpZCwgdmFsIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VO REVEIEZPTExPV0lORykKICAgIFBhdHRlcm46IGEgYisKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAx CiAgICAtPiAgSW5jcmVtZW50YWwgU29ydAogICAgICAgICAgU29ydCBLZXk6IGlkLCB2YWwKICAg ICAgICAgIFByZXNvcnRlZCBLZXk6IGlkCiAgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBy cHJfaW50ZWdfaWRfaWR4IG9uIHJwcl9pbnRlZwotKDcgcm93cykKKyg4IHJvd3MpCiAKIC0tIFJl c3VsdDogUlBSIG92ZXIgdGhlIGluY3JlbWVudGFsbHkgc29ydGVkIHN0cmVhbSBwcm9kdWNlcyBt YXRjaAogLS0gY291bnRzIHBlciByb3cuCkBAIC0xNDQ5LDExICsxNDcyLDEyIEBAIE9SREVSIEJZ IG8uaWQ7CiAgICAgICAgICAgICAgICAgIC0+ICBXaW5kb3dBZ2cKICAgICAgICAgICAgICAgICAg ICAgICAgV2luZG93OiB3IEFTIChPUkRFUiBCWSBpLmlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKICAgICAgICAgICAgICAgICAgICAgICAgUGF0dGVy bjogYSBiKworICAgICAgICAgICAgICAgICAgICAgICBOYXYgTWFyayBMb29rYmFjazogMQogICAg ICAgICAgICAgICAgICAgICAgICAtPiAgU29ydAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTb3J0IEtleTogaS5pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiAgU2VxIFNj YW4gb24gcnByX2ludGVnIGkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmls dGVyOiAoaWQgPD0gby5pZCkKLSgxMiByb3dzKQorKDEzIHJvd3MpCiAKIC0tIFJlc3VsdDogZWFj aCBvdXRlciByb3cgcmVjZWl2ZXMgdGhlIGZpcnN0X2NudCBmcm9tIGl0cyBvd24KIC0tIGNvcnJl bGF0ZWQgUlBSIHN1YnF1ZXJ5LgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy X2V4cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4 IGUzMzllZGQ3ZTkxLi41MDgyY2MyYjVkZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWlu LnNxbApAQCAtMzYsNiArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25z CiAtLSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2NhbGUgU3Rh dGlzdGljcyBWZXJpZmljYXRpb24KKy0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxlc3RvcmUg dHJpbSkKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogCiAtLSBGaWx0ZXIgZnVuY3Rpb24gdG8gbm9ybWFsaXplIHBsYXRmb3Jt LWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3QgTkZBIHN0YXRpc3RpY3MpLgpAQCAtMjQ3Niwz ICsyNDc3LDczIEBAIFNFTEVDVCAqIEZST00gKAogICAgICkKICkgdCBXSEVSRSBjbnQgPiAwOwog CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tIE5hdiBNYXJrIExvb2tiYWNrIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVy LWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0IGZvciB0dXBsZXN0b3JlIHRyaW0uCistLSBMb29r YmFjazogaG93IGZhciBiYWNrIGZyb20gY3VycmVudHBvcyAoUFJFVi9MQVNUKS4KKy0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor CistLSBQcmVwYXJlIHN0YXRlbWVudCBmb3IgaG9zdCB2YXJpYWJsZSBvZmZzZXQgdGVzdCBiZWxv dworUFJFUEFSRSBycHJfbmF2X29mZnNldF9wcmVwKGludDgpIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IFBSRVYodiwgJDEpCispOworCistLSBO byBuYXZpZ2F0aW9uIGZ1bmN0aW9uOiBvZmZzZXQgMAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgdiA+IDAKKyk7CisKKy0t IE5FWFQgb25seTogbm8gYmFja3dhcmQgbmF2aWdhdGlvbiwgb2Zmc2V0IDAKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwx MCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYg PCBORVhUKHYpCispOworCistLSBQUkVWKHYpOiBpbXBsaWNpdCBvZmZzZXQgMQorRVhQTEFJTiAo Q09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg diA+IFBSRVYodikKKyk7CisKKy0tIFBSRVYodiwgMyk6IGV4cGxpY2l0IGNvbnN0YW50IG9mZnNl dCAzCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyB2ID4gUFJFVih2LCAzKQorKTsKKworLS0gVHdvIFBSRVYgd2l0aCBkaWZm ZXJlbnQgb2Zmc2V0czogbWF4KDEsIDUpID0gNQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg Y291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cg dyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2LCAxKSA8IHYgQU5E IFBSRVYodiwgNSkgPCB2CispOworCistLSBIb3N0IHZhcmlhYmxlIG9mZnNldDogY3VzdG9tIHBs YW4gcmVzb2x2ZXMgJDE9MiB0byBjb25zdGFudCAyCitFWFBMQUlOIChDT1NUUyBPRkYpIEVYRUNV VEUgcnByX25hdl9vZmZzZXRfcHJlcCgyKTsKKworLS0gRm9yY2UgZ2VuZXJpYyBwbGFuOiBvZmZz ZXQgYmVjb21lcyAicnVudGltZSIgKFBhcmFtIG5vZGUpCitTRVQgcGxhbl9jYWNoZV9tb2RlID0g Zm9yY2VfZ2VuZXJpY19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZf b2Zmc2V0X3ByZXAoMik7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9DQVRFIHJwcl9u YXZfb2Zmc2V0X3ByZXA7CisKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="UTF-8"; name="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Disposition: attachment; filename="nocfbot-0024-Implement-FIRST-LAST-navigation-for-RPR.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trd6w23 RnJvbSA2MTU3MWU3NDViNzZjODY0MTU4YzdjNTc0MTM2ZTEzYzE5MTNjNTE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBTdW4sIDUgQXByIDIwMjYgMDA6NTY6MjAgKzA5MDAKU3ViamVjdDogW1BBVENIXSBJbXBsZW1l bnQgRklSU1QvTEFTVCBhbmQgY29tcG91bmQgbmF2aWdhdGlvbiBmb3IgUlBSCgpBZGQgRklSU1Qo ZXhwciBbLCBvZmZzZXRdKSBhbmQgTEFTVChleHByIFssIG9mZnNldF0pIG5hdmlnYXRpb24KZnVu Y3Rpb25zIGZvciBERUZJTkUgY2xhdXNlcy4gIEZJUlNUIHJlZmVyZW5jZXMgdGhlIG1hdGNoIHN0 YXJ0IHJvdywKTEFTVCByZWZlcmVuY2VzIHRoZSBjdXJyZW50IHJvdy4gIEluY2x1ZGVzIHNsb3Qg c3dhcCBlbGlzaW9uLApwZXItY29udGV4dCBERUZJTkUgcmUtZXZhbHVhdGlvbiBmb3IgbWF0Y2hf c3RhcnQtZGVwZW5kZW50IHZhcmlhYmxlcywKYW5kIHBsYW5uZXItbGV2ZWwgYWJzb3JwdGlvbiBk aXNhYmxpbmcgd2hlbiBGSVJTVCBvciBMQVNULXdpdGgtb2Zmc2V0CmlzIHByZXNlbnQuCgpBZGQg Y29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCgpKSwgTkVYVChGSVJTVCgpKSwKUFJFVihM QVNUKCkpLCBORVhUKExBU1QoKSkgcGVyIFNRTCBzdGFuZGFyZCA1LjYuNC4gIFRoZSBwYXJzZXIK ZmxhdHRlbnMgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZSBjb21wb3VuZCBub2RlIHdp dGggdHdvCm9mZnNldHMuICBUaGUgZXhlY3V0b3IgY29tcHV0ZXMgdGhlIHRhcmdldCBwb3NpdGlv biBpbiB0d28gc3RlcHMKd2l0aCByYW5nZSB2YWxpZGF0aW9uIGF0IGVhY2ggc3RlcC4gIHJ1bGV1 dGlscyByZXN0b3JlcyB0aGUgbmVzdGVkCnN5bnRheCBmb3IgZGVwYXJzaW5nLgoKRXh0ZW5kIHR1 cGxlc3RvcmUgdHJpbSB0byBoYW5kbGUgRklSU1QgbmF2aWdhdGlvbiB2aWEKaGFzRmlyc3ROYXYv bmF2Rmlyc3RPZmZzZXQsIGFsbG93aW5nIG1hcmsgYWR2YW5jZSBiYXNlZCBvbgpvbGRlc3QgYWN0 aXZlIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93LiAgQ29tcG91bmQgb2Zmc2V0cyBhcmUKY29tcHV0 ZWQgYnkgdGhlIHVuaWZpZWQgbmF2X29mZnNldF93YWxrZXIgaW4gYSBzaW5nbGUgZXhwcmVzc2lv bgp0cmVlIHdhbGsuICBBZGQgIk5hdiBNYXJrIExvb2thaGVhZCIgdG8gRVhQTEFJTiBmb3IgRklS U1QtYmFzZWQKbmF2aWdhdGlvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5z Z21sICAgICAgICB8ICA1MyArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jICAgICAg ICAgICAgfCAgNjggKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAg ICB8ICA1NSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgfCAx NTUgKysrKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyAgICAgICAgICAgIHwgMTUy ICsrKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgICB8IDM0MyAr KysrKysrKystLS0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgIHwgMzg3ICsr KysrKysrKysrLS0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jICAgICAgICAgIHwg ICA2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICB8ICA3MCAr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYyAgICAgICAgICAgIHwgMTEyICsrKy0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgIHwgIDgxICsrLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMgICAgICAgfCAgNTYgKysKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgIHwgICA4ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCAgICAgICAgICAgICB8ICAxMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICAgICAgICAgICAgfCAgMTcgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5o ICAgICAgICAgICAgIHwgIDMwICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAg ICAgICAgICB8ICAzNyArLQogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAgICAgICAgICAg ICAgfCAgMTIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCAgICAgICAgIHwg NjUyICsrKysrKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnBy X2Jhc2Uub3V0ICAgIHwgMjU3ICsrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y cHJfZXhwbGFpbi5vdXQgfCA0MjUgKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Jwci5zcWwgICAgICAgICAgICAgIHwgMzc0ICsrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Jwcl9iYXNlLnNxbCAgICAgICAgIHwgMTM2ICsrKystCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9ycHJfZXhwbGFpbi5zcWwgICAgICB8IDI0MiArKysrKysrLQogc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgIDUgKwogMjcgZmlsZXMgY2hhbmdlZCwgMzUw OSBpbnNlcnRpb25zKCspLCAyNTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93 LnNnbWwKaW5kZXggMWI5Yjk5M2E4MTcuLmFiODA2OTBmN2JlIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMt d2luZG93LnNnbWwKQEAgLTMzNywxMCArMzM3LDYzIEBACiAgICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgICA8L3Jvdz4KIAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190 YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0 ZXJtPgorICAgICAgICAgPHByaW1hcnk+Zmlyc3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+Zmlyc3Q8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFs dWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4gWywgPHBhcmFtZXRlcj5vZmZz ZXQ8L3BhcmFtZXRlcj4gPHR5cGU+YmlnaW50PC90eXBlPiBdICkKKyAgICAgICAgPHJldHVybnZh bHVlPmFueWVsZW1lbnQ8L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgUmV0dXJucyB0aGUgY29sdW1uIHZhbHVlIGF0IHRoZSByb3cgPHBhcmFtZXRl cj5vZmZzZXQ8L3BhcmFtZXRlcj4KKyAgICAgICAgcm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQg cm93OworICAgICAgICByZXR1cm5zIE5VTEwgaWYgdGhlIHRhcmdldCByb3cgaXMgYmV5b25kIHRo ZSBjdXJyZW50IHJvdy4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVm YXVsdHMgdG8gMCBpZiBvbWl0dGVkLCByZWZlcnJpbmcgdG8gdGhlCisgICAgICAgIG1hdGNoIHN0 YXJ0IHJvdyBpdHNlbGYuCisgICAgICAgIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11 c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlci4KKyAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8 L3BhcmFtZXRlcj4gbXVzdCBub3QgYmUgTlVMTC4KKyAgICAgICAgQ2FuIG9ubHkgYmUgdXNlZCBp biBhIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLgorICAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1 bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGlu ZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5Pmxhc3Q8L3ByaW1hcnk+CisgICAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgICA8ZnVuY3Rpb24+bGFzdDwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52 YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiBbLCA8cGFyYW1ldGVyPm9m ZnNldDwvcGFyYW1ldGVyPiA8dHlwZT5iaWdpbnQ8L3R5cGU+IF0gKQorICAgICAgICA8cmV0dXJu dmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhlIHJvdyA8cGFyYW1l dGVyPm9mZnNldDwvcGFyYW1ldGVyPgorICAgICAgICByb3dzIGJlZm9yZSB0aGUgY3VycmVudCBy b3cgd2l0aGluIHRoZSBtYXRjaDsKKyAgICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQg cm93IGlzIGJlZm9yZSB0aGUgbWF0Y2ggc3RhcnQgcm93LgorICAgICAgICA8cGFyYW1ldGVyPm9m ZnNldDwvcGFyYW1ldGVyPiBkZWZhdWx0cyB0byAwIGlmIG9taXR0ZWQsIHJlZmVycmluZyB0byB0 aGUKKyAgICAgICAgY3VycmVudCByb3cgaXRzZWxmLgorICAgICAgICA8cGFyYW1ldGVyPm9mZnNl dDwvcGFyYW1ldGVyPiBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXIuCisgICAgICAgIDxw YXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IG11c3Qgbm90IGJlIE5VTEwuCisgICAgICAgIENh biBvbmx5IGJlIHVzZWQgaW4gYSA8bGl0ZXJhbD5ERUZJTkU8L2xpdGVyYWw+IGNsYXVzZS4KKyAg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgIDwvdGJvZHk+CiAgICAg PC90Z3JvdXA+CiAgICA8L3RhYmxlPgogCisgICA8cGFyYT4KKyAgICA8ZnVuY3Rpb24+UFJFVjwv ZnVuY3Rpb24+IGFuZCA8ZnVuY3Rpb24+TkVYVDwvZnVuY3Rpb24+IG1heSB3cmFwCisgICAgPGZ1 bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4gb3IgPGZ1bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPiBmb3Ig Y29tcG91bmQKKyAgICBuYXZpZ2F0aW9uLiBGb3IgZXhhbXBsZSwKKyAgICA8bGl0ZXJhbD5QUkVW KEZJUlNUKHZhbCwgMiksIDMpPC9saXRlcmFsPiBmZXRjaGVzIHRoZSB2YWx1ZSBhdAorICAgIDMg cm93cyBiZWZvcmUgdGhlIHJvdyB0aGF0IGlzIDIgcm93cyBhZnRlciB0aGUgbWF0Y2ggc3RhcnQu CisgICAgVGhlIHJldmVyc2UgbmVzdGluZyAoPGZ1bmN0aW9uPkZJUlNUPC9mdW5jdGlvbj4vPGZ1 bmN0aW9uPkxBU1Q8L2Z1bmN0aW9uPgorICAgIHdyYXBwaW5nIDxmdW5jdGlvbj5QUkVWPC9mdW5j dGlvbj4vPGZ1bmN0aW9uPk5FWFQ8L2Z1bmN0aW9uPikgaXMgbm90CisgICAgcGVybWl0dGVkLiBT YW1lLWNhdGVnb3J5IG5lc3RpbmcgKGUuZy4sCisgICAgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9u PiBpbnNpZGUgPGZ1bmN0aW9uPlBSRVY8L2Z1bmN0aW9uPikgaXMgYWxzbworICAgIHByb2hpYml0 ZWQuCisgICA8L3BhcmE+CisKICAgPG5vdGU+CiAgICA8cGFyYT4KICAgICBUaGUgU1FMIHN0YW5k YXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5G Uk9NIExBU1Q8L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBs YWluLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggMTg0OGRlOWRlN2Eu LjIyMWQ5YTQ5ZTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0zMjU1LDE0ICszMjU1LDY2 IEBAIHNob3dfd2luZG93X2RlZihXaW5kb3dBZ2dTdGF0ZSAqcGxhbnN0YXRlLCBMaXN0ICphbmNl c3RvcnMsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJCQlwZnJlZShwYXR0ZXJuU3RyKTsKIAkJfQogCi0J CS8qIFNob3cgbmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8KLQkJaWYg KHdhZ2ctPm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMKQotCQkJRXhw bGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2JhY2siLCAicmV0YWluIGFsbCIsIGVzKTsK LQkJZWxzZSBpZiAod2FnZy0+bmF2TWF4T2Zmc2V0ID09IFJQUl9OQVZfT0ZGU0VUX05FRURTX0VW QUwpCi0JCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFyayBMb29rYmFjayIsICJydW50aW1l IiwgZXMpOwotCQllbHNlCi0JCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFyayBMb29r YmFjayIsIE5VTEwsCi0JCQkJCQkJCSAgIHdhZ2ctPm5hdk1heE9mZnNldCwgZXMpOworCQkvKgor CQkgKiBTaG93IG5hdmlnYXRpb24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLiAgRm9yIEVY UExBSU4gQU5BTFlaRSwKKwkJICogdXNlIHRoZSBleGVjdXRvci1yZXNvbHZlZCB2YWx1ZXMgKHdo aWNoIG1heSBkaWZmZXIgZnJvbSB0aGUgcGxhbgorCQkgKiB3aGVuIE5FRURTX0VWQUwgd2FzIHJl c29sdmVkIHRvIEZJWEVEIG9yIFJFVEFJTl9BTEwgYXQgaW5pdCkuCisJCSAqLworCQl7CisJCQlS UFJOYXZPZmZzZXRLaW5kIG1heEtpbmQgPSB3YWdnLT5uYXZNYXhPZmZzZXRLaW5kOworCQkJaW50 NjQJCW1heE9mZnNldCA9IHdhZ2ctPm5hdk1heE9mZnNldDsKKwkJCVJQUk5hdk9mZnNldEtpbmQg Zmlyc3RLaW5kID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJaW50NjQJCWZpcnN0T2Zm c2V0ID0gd2FnZy0+bmF2Rmlyc3RPZmZzZXQ7CisKKwkJCWlmIChlcy0+YW5hbHl6ZSkKKwkJCXsK KwkJCQltYXhLaW5kID0gcGxhbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5kOworCQkJCW1heE9mZnNl dCA9IHBsYW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OworCQkJCWZpcnN0S2luZCA9IHBsYW5zdGF0ZS0+ bmF2Rmlyc3RPZmZzZXRLaW5kOworCQkJCWZpcnN0T2Zmc2V0ID0gcGxhbnN0YXRlLT5uYXZGaXJz dE9mZnNldDsKKwkJCX0KKworCQkJc3dpdGNoIChtYXhLaW5kKQorCQkJeworCQkJCWNhc2UgUlBS X05BVl9PRkZTRVRfTkVFRFNfRVZBTDoKKwkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1h cmsgTG9va2JhY2siLCAicnVudGltZSIsIGVzKTsKKwkJCQkJYnJlYWs7CisJCQkJY2FzZSBSUFJf TkFWX09GRlNFVF9SRVRBSU5fQUxMOgorCQkJCQlFeHBsYWluUHJvcGVydHlUZXh0KCJOYXYgTWFy ayBMb29rYmFjayIsICJyZXRhaW4gYWxsIiwgZXMpOworCQkJCQlicmVhazsKKwkJCQljYXNlIFJQ Ul9OQVZfT0ZGU0VUX0ZJWEVEOgorCQkJCQlFeHBsYWluUHJvcGVydHlJbnRlZ2VyKCJOYXYgTWFy ayBMb29rYmFjayIsIE5VTEwsCisJCQkJCQkJCQkJICAgbWF4T2Zmc2V0LCBlcyk7CisJCQkJCWJy ZWFrOworCQkJCWRlZmF1bHQ6CisJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5h diBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJIG1heEtpbmQpOworCQkJCQlicmVhazsKKwkJCX0K KworCQkJaWYgKHdhZ2ctPmhhc0ZpcnN0TmF2KQorCQkJeworCQkJCXN3aXRjaCAoZmlyc3RLaW5k KQorCQkJCXsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOgorCQkJCQkJRXhw bGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFkIiwgInJ1bnRpbWUiLAorCQkJCQkJ CQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX09GRlNFVF9SRVRBSU5f QUxMOgorCQkJCQkJRXhwbGFpblByb3BlcnR5VGV4dCgiTmF2IE1hcmsgTG9va2FoZWFkIiwgInJl dGFpbiBhbGwiLAorCQkJCQkJCQkJCQllcyk7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJf TkFWX09GRlNFVF9GSVhFRDoKKwkJCQkJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIk5hdiBNYXJr IExvb2thaGVhZCIsIE5VTEwsCisJCQkJCQkJCQkJCSAgIGZpcnN0T2Zmc2V0LCBlcyk7CisJCQkJ CQlicmVhazsKKwkJCQkJZGVmYXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQg UlBSIG5hdiBvZmZzZXQga2luZDogJWQiLAorCQkJCQkJCSBmaXJzdEtpbmQpOworCQkJCQkJYnJl YWs7CisJCQkJfQorCQkJfQorCQl9CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRl eCBkYmVkNGY0OGEwZi4uNjM0OWE1NjRhOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAt MTIyNSwxMiArMTIyNSwxNiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRl ICpzdGF0ZSwKIAkJY2FzZSBUX1JQUk5hdkV4cHI6CiAJCQl7CiAJCQkJLyoKLQkJCQkgKiBSUFIg bmF2aWdhdGlvbiBmdW5jdGlvbnMgKFBSRVYvTkVYVCkgYXJlIGNvbXBpbGVkIGludG8KLQkJCQkg KiBFRU9QX1JQUl9OQVZfU0VUIC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bjb2RlcyBpbnN0ZWFk IG9mCi0JCQkJICogYSBub3JtYWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlIHN3YXBz Ci0JCQkJICogZWN4dF9vdXRlcnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQg ZXhwcmVzc2lvbgotCQkJCSAqIGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBz d2FwcGVkIHNsb3QpLCBhbmQgdGhlCi0JCQkJICogUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhl IG9yaWdpbmFsIHNsb3QuCisJCQkJICogUlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQUkVWL05F WFQvRklSU1QvTEFTVCkgYXJlCisJCQkJICogY29tcGlsZWQgaW50byBFRU9QX1JQUl9OQVZfU0VU IC8gRUVPUF9SUFJfTkFWX1JFU1RPUkUKKwkJCQkgKiBvcGNvZGVzIGluc3RlYWQgb2YgYSBub3Jt YWwgZnVuY3Rpb24gY2FsbC4gIFRoZSBTRVQgb3Bjb2RlCisJCQkJICogc3dhcHMgZWN4dF9vdXRl cnR1cGxlIHRvIHRoZSB0YXJnZXQgcm93LCB0aGUgYXJndW1lbnQKKwkJCQkgKiBleHByZXNzaW9u IGlzIGNvbXBpbGVkIG5vcm1hbGx5IChyZWFkcyBmcm9tIHRoZSBzd2FwcGVkCisJCQkJICogc2xv dCksIGFuZCB0aGUgUkVTVE9SRSBvcGNvZGUgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIHNsb3QuCisJ CQkJICoKKwkJCQkgKiBEZWZhdWx0IG9mZnNldCB3aGVuIG9mZnNldF9hcmcgaXMgTlVMTDogUFJF Vi9ORVhUOiAxCisJCQkJICogKHBoeXNpY2FsIG9mZnNldCBmcm9tIGN1cnJlbnRwb3MpIEZJUlNU L0xBU1Q6IDAgKGxvZ2ljYWwKKwkJCQkgKiBvZmZzZXQgZnJvbSBtYXRjaCBib3VuZGFyeSkKIAkJ CQkgKi8KIAkJCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwogCQkJCVdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKQEAgLTEyNDMsMjUgKzEyNDcsNTIgQEAgRXhlY0luaXRF eHByUmVjKEV4cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJc2NyYXRjaC5kLnJwcl9u YXYud2luc3RhdGUgPSB3aW5zdGF0ZTsKIAkJCQlzY3JhdGNoLmQucnByX25hdi5raW5kID0gbmF2 LT5raW5kOwogCi0JCQkJaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCWlmIChuYXYt PmtpbmQgPj0gUlBSX05BVl9QUkVWX0ZJUlNUKQogCQkJCXsKIAkJCQkJLyoKLQkJCQkJICogQWxs b2NhdGUgc3RvcmFnZSBmb3IgdGhlIHJ1bnRpbWUgb2Zmc2V0IHZhbHVlLiAgVGhlCi0JCQkJCSAq IG9mZnNldCBleHByZXNzaW9uIGlzIGNvbXBpbGVkIGJlbG93IHNvIGl0IHJ1bnMgYmVmb3JlCi0J CQkJCSAqIEVFT1BfUlBSX05BVl9TRVQuCisJCQkJCSAqIENvbXBvdW5kIG5hdmlnYXRpb246IGFs bG9jYXRlIGFycmF5IG9mIDIgZm9yIGlubmVyIFswXQorCQkJCQkgKiBhbmQgb3V0ZXIgWzFdIG9m ZnNldHMuCiAJCQkJCSAqLworCQkJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlcyA9IHBhbGxvY19h cnJheShEYXR1bSwgMik7CisJCQkJCWJvb2wJICAgKm9mZnNldF9pc251bGxzID0gcGFsbG9jX2Fy cmF5KGJvb2wsIDIpOworCisJCQkJCS8qIElubmVyIG9mZnNldCAoZGVmYXVsdCAwIGZvciBGSVJT VC9MQVNUKSAqLworCQkJCQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCQlFeGVj SW5pdEV4cHJSZWMobmF2LT5vZmZzZXRfYXJnLCBzdGF0ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3Zh bHVlc1swXSwgJm9mZnNldF9pc251bGxzWzBdKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlv ZmZzZXRfdmFsdWVzWzBdID0gSW50NjRHZXREYXR1bSgwKTsKKwkJCQkJCW9mZnNldF9pc251bGxz WzBdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQkvKiBPdXRlciBvZmZzZXQgKGRlZmF1bHQgMSBm b3IgUFJFVi9ORVhUKSAqLworCQkJCQlpZiAobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnICE9IE5V TEwpCisJCQkJCQlFeGVjSW5pdEV4cHJSZWMobmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCBzdGF0 ZSwKKwkJCQkJCQkJCQkmb2Zmc2V0X3ZhbHVlc1sxXSwgJm9mZnNldF9pc251bGxzWzFdKTsKKwkJ CQkJZWxzZQorCQkJCQl7CisJCQkJCQlvZmZzZXRfdmFsdWVzWzFdID0gSW50NjRHZXREYXR1bSgx KTsKKwkJCQkJCW9mZnNldF9pc251bGxzWzFdID0gZmFsc2U7CisJCQkJCX0KKworCQkJCQlzY3Jh dGNoLmQucnByX25hdi5vZmZzZXRfdmFsdWUgPSBvZmZzZXRfdmFsdWVzOworCQkJCQlzY3JhdGNo LmQucnByX25hdi5vZmZzZXRfaXNudWxsID0gb2Zmc2V0X2lzbnVsbHM7CisJCQkJfQorCQkJCWVs c2UgaWYgKG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCXsKKwkJCQkJLyogU2ltcGxlIG5h dmlnYXRpb24gd2l0aCBleHBsaWNpdCBvZmZzZXQgKi8KIAkJCQkJRGF0dW0JICAgKm9mZnNldF92 YWx1ZSA9IHBhbGxvY19vYmplY3QoRGF0dW0pOwogCQkJCQlib29sCSAgICpvZmZzZXRfaXNudWxs ID0gcGFsbG9jX29iamVjdChib29sKTsKIAotCQkJCQkvKiBDb21waWxlIHRoZSBvZmZzZXQgZXhw cmVzc2lvbiBpbnRvIHRoZSB0ZW1wIHN0b3JhZ2UgKi8KIAkJCQkJRXhlY0luaXRFeHByUmVjKG5h di0+b2Zmc2V0X2FyZywgc3RhdGUsCiAJCQkJCQkJCQlvZmZzZXRfdmFsdWUsIG9mZnNldF9pc251 bGwpOwotCiAJCQkJCXNjcmF0Y2guZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSA9IG9mZnNldF92YWx1 ZTsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IG9mZnNldF9pc251bGw7 CiAJCQkJfQogCQkJCWVsc2UKIAkJCQl7CisJCQkJCS8qIFNpbXBsZSBuYXZpZ2F0aW9uIHdpdGgg ZGVmYXVsdCBvZmZzZXQgKi8KIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X3ZhbHVlID0g TlVMTDsKIAkJCQkJc2NyYXRjaC5kLnJwcl9uYXYub2Zmc2V0X2lzbnVsbCA9IE5VTEw7CiAJCQkJ fQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggZTQxZmFhOTViZTMuLjJl YzU3OTczMmNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVy cC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU5NDIs NyArNTk0MiwzNSBAQCBFeGVjQWdnUGxhaW5UcmFuc0J5UmVmKEFnZ1N0YXRlICphZ2dzdGF0ZSwg QWdnU3RhdGVQZXJUcmFucyBwZXJ0cmFucywKIH0KIAogLyoKLSAqIEV2YWx1YXRlIFJQUiBQUkVW L05FWFQgbmF2aWdhdGlvbjogc3dhcCBzbG90IHRvIHRhcmdldCByb3cuCisgKiBFeHRyYWN0IGNv bXBvdW5kIChvdXRlcikgb2Zmc2V0IGZyb20gc3RlcCBkYXRhLgorICogRm9yIGNvbXBvdW5kIG5h diwgb2Zmc2V0X3ZhbHVlIGlzIGFuIGFycmF5OiBbMF09aW5uZXIsIFsxXT1vdXRlci4KKyAqIFJl dHVybnMgdGhlIG91dGVyIG9mZnNldDsgZXJyb3JzIG9uIE5VTEwgb3IgbmVnYXRpdmUuCisgKiBE ZWZhdWx0IGlzIDEgKGxpa2UgUFJFVi9ORVhUIGltcGxpY2l0IG9mZnNldCkuCisgKi8KK3N0YXRp YyBpbnQ2NAorcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KEV4cHJFdmFsU3RlcCAqb3ApCit7 CisJaW50NjQJCXZhbDsKKworCUFzc2VydChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAhPSBO VUxMKTsKKworCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGxbMV0pCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJ CQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxs IikpKTsKKworCXZhbCA9IERhdHVtR2V0SW50NjQob3AtPmQucnByX25hdi5vZmZzZXRfdmFsdWVb MV0pOworCisJaWYgKHZhbCA8IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJIGVycm1zZygicm93IHBhdHRlcm4g bmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUiKSkpOworCisJcmV0dXJuIHZh bDsKK30KKworLyoKKyAqIEV2YWx1YXRlIFJQUiBuYXZpZ2F0aW9uIChQUkVWL05FWFQvRklSU1Qv TEFTVCk6IHN3YXAgc2xvdCB0byB0YXJnZXQgcm93LgogICoKICAqIFNhdmVzIHRoZSBjdXJyZW50 IG91dGVydHVwbGUgaW50byB3aW5zdGF0ZSBmb3IgbGF0ZXIgcmVzdG9yZSwgY29tcHV0ZXMKICAq IHRoZSB0YXJnZXQgcm93IHBvc2l0aW9uLCBmZXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHNsb3Qg ZnJvbSB0aGUKQEAgLTU5NjMsMjcgKzU5OTEsMzUgQEAgRXhlY0V2YWxSUFJOYXZTZXQoRXhwclN0 YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250ZXh0KQogCXdp bnN0YXRlLT5uYXZfc2F2ZWRfb3V0ZXJ0dXBsZSA9IGVjb250ZXh0LT5lY3h0X291dGVydHVwbGU7 CiAKIAkvKgotCSAqIERldGVybWluZSB0aGUgdW5zaWduZWQgb2Zmc2V0LiAgRm9yIDItYXJnIFBS RVYvTkVYVCB0aGUgb2Zmc2V0Ci0JICogZXhwcmVzc2lvbiBoYXMgYWxyZWFkeSBiZWVuIGV2YWx1 YXRlZCBpbnRvIG9mZnNldF92YWx1ZS4gIE5VTEwgb3IKLQkgKiBuZWdhdGl2ZSBvZmZzZXRzIGFy ZSBlcnJvcnMgcGVyIHRoZSBTUUwgc3RhbmRhcmQgKElTTy9JRUMgOTA3NS0yLAotCSAqIFN1YmNs YXVzZSA1LjYuMikuCisJICogRGV0ZXJtaW5lIHRoZSBpbm5lciBvZmZzZXQuICBOVUxMIG9yIG5l Z2F0aXZlIG9mZnNldHMgYXJlIGVycm9ycyBwZXIKKwkgKiB0aGUgU1FMIHN0YW5kYXJkLgorCSAq CisJICogRGVmYXVsdCBvZmZzZXQgd2hlbiBvZmZzZXRfYXJnIGlzIE5VTEw6IFBSRVYvTkVYVDog MSAoc3RhbmRhcmQgNS42LjIpCisJICogRklSU1QvTEFTVCBhbmQgY29tcG91bmQ6IDAgZm9yIGlu bmVyLCAxIGZvciBvdXRlcgogCSAqLwogCWlmIChvcC0+ZC5ycHJfbmF2Lm9mZnNldF92YWx1ZSAh PSBOVUxMKQogCXsKIAkJaWYgKCpvcC0+ZC5ycHJfbmF2Lm9mZnNldF9pc251bGwpCiAJCQllcmVw b3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQp LAotCQkJCQkgZXJybXNnKCJQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwiKSkpOwor CQkJCQkgZXJybXNnKCJyb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBu dWxsIikpKTsKIAogCQlvZmZzZXQgPSBEYXR1bUdldEludDY0KCpvcC0+ZC5ycHJfbmF2Lm9mZnNl dF92YWx1ZSk7CiAKIAkJaWYgKG9mZnNldCA8IDApCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKLQkJCQkJIGVycm1zZygi UFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZSIpKSk7CisJCQkJCSBlcnJtc2co InJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlIikpKTsK IAl9CiAJZWxzZQotCQlvZmZzZXQgPSAxOworCXsKKwkJLyogRGVmYXVsdCBvZmZzZXQ6IDEgZm9y IHNpbXBsZSBQUkVWL05FWFQsIDAgb3RoZXJ3aXNlICovCisJCWlmIChvcC0+ZC5ycHJfbmF2Lmtp bmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQlvcC0+ZC5ycHJfbmF2LmtpbmQgPT0gUlBSX05BVl9O RVhUKQorCQkJb2Zmc2V0ID0gMTsKKwkJZWxzZQorCQkJb2Zmc2V0ID0gMDsKKwl9CiAKIAkvKgog CSAqIENhbGN1bGF0ZSB0YXJnZXQgcG9zaXRpb24gYmFzZWQgb24gbmF2aWdhdGlvbiBkaXJlY3Rp b24uICBPbiBvdmVyZmxvdywKQEAgLTU5OTksOCArNjAzNSwxMDcgQEAgRXhlY0V2YWxSUFJOYXZT ZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVjb250 ZXh0KQogCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2luc3RhdGUtPmN1cnJlbnRwb3MsIG9m ZnNldCwgJnRhcmdldF9wb3MpKQogCQkJCXRhcmdldF9wb3MgPSAtMTsKIAkJCWJyZWFrOworCQlj YXNlIFJQUl9OQVZfRklSU1Q6CisJCQkvKiBGSVJTVDogb2Zmc2V0IGZyb20gbWF0Y2hfc3RhcnQs IGNsYW1wZWQgdG8gY3VycmVudHBvcyAqLworCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3cod2lu c3RhdGUtPm5hdl9tYXRjaF9zdGFydCwgb2Zmc2V0LCAmdGFyZ2V0X3BvcykpCisJCQkJdGFyZ2V0 X3BvcyA9IC0xOworCQkJZWxzZSBpZiAodGFyZ2V0X3BvcyA+IHdpbnN0YXRlLT5jdXJyZW50cG9z KQorCQkJCXRhcmdldF9wb3MgPSAtMTsJLyogYmV5b25kIGN1cnJlbnQgbWF0Y2ggcmFuZ2UgKi8K KwkJCWJyZWFrOworCQljYXNlIFJQUl9OQVZfTEFTVDoKKwkJCS8qIExBU1Q6IG9mZnNldCBiYWNr d2FyZCBmcm9tIGN1cnJlbnRwb3MsIGNsYW1wZWQgdG8gbWF0Y2hfc3RhcnQgKi8KKwkJCWlmIChw Z19zdWJfczY0X292ZXJmbG93KHdpbnN0YXRlLT5jdXJyZW50cG9zLCBvZmZzZXQsICZ0YXJnZXRf cG9zKSkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CisJCQllbHNlIGlmICh0YXJnZXRfcG9zIDwgd2lu c3RhdGUtPm5hdl9tYXRjaF9zdGFydCkKKwkJCQl0YXJnZXRfcG9zID0gLTE7CS8qIGJlZm9yZSBt YXRjaF9zdGFydCAqLworCQkJYnJlYWs7CisKKwkJY2FzZSBSUFJfTkFWX1BSRVZfRklSU1Q6CisJ CWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJeworCQkJCWludDY0CQljb21wb3VuZF9vZmZz ZXQ7CisJCQkJaW50NjQJCWlubmVyX3BvczsKKworCQkJCS8qIElubmVyOiBtYXRjaF9zdGFydCAr IG9mZnNldCAqLworCQkJCWlmIChwZ19hZGRfczY0X292ZXJmbG93KHdpbnN0YXRlLT5uYXZfbWF0 Y2hfc3RhcnQsIG9mZnNldCwgJmlubmVyX3BvcykpCisJCQkJeworCQkJCQl0YXJnZXRfcG9zID0g LTE7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlpZiAoaW5uZXJfcG9zID4gd2luc3RhdGUtPmN1 cnJlbnRwb3MgfHwgaW5uZXJfcG9zIDwgMCkKKwkJCQl7CisJCQkJCXRhcmdldF9wb3MgPSAtMTsK KwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJLyogT3V0ZXIgb2Zmc2V0ICovCisJCQkJY29tcG91 bmRfb2Zmc2V0ID0gcnByX25hdl9nZXRfY29tcG91bmRfb2Zmc2V0KG9wKTsKKworCQkJCS8qIEFw cGx5IG91dGVyOiBQUkVWIHN1YnRyYWN0cywgTkVYVCBhZGRzICovCisJCQkJaWYgKG9wLT5kLnJw cl9uYXYua2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCisJCQkJeworCQkJCQlpZiAocGdfc3Vi X3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9wb3MpKQor CQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlpZiAo cGdfYWRkX3M2NF9vdmVyZmxvdyhpbm5lcl9wb3MsIGNvbXBvdW5kX29mZnNldCwgJnRhcmdldF9w b3MpKQorCQkJCQkJdGFyZ2V0X3BvcyA9IC0xOworCQkJCX0KKwkJCX0KKwkJCWJyZWFrOworCisJ CWNhc2UgUlBSX05BVl9QUkVWX0xBU1Q6CisJCWNhc2UgUlBSX05BVl9ORVhUX0xBU1Q6CisJCQl7 CisJCQkJaW50NjQJCWNvbXBvdW5kX29mZnNldDsKKwkJCQlpbnQ2NAkJaW5uZXJfcG9zOworCisJ CQkJLyogSW5uZXI6IGN1cnJlbnRwb3MgLSBvZmZzZXQgKi8KKwkJCQlpZiAocGdfc3ViX3M2NF9v dmVyZmxvdyh3aW5zdGF0ZS0+Y3VycmVudHBvcywgb2Zmc2V0LCAmaW5uZXJfcG9zKSkKKwkJCQl7 CisJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCQkJCWlmIChpbm5l cl9wb3MgPCB3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0KQorCQkJCXsKKwkJCQkJdGFyZ2V0X3Bv cyA9IC0xOworCQkJCQlicmVhazsKKwkJCQl9CisKKwkJCQkvKiBPdXRlciBvZmZzZXQgKi8KKwkJ CQljb21wb3VuZF9vZmZzZXQgPSBycHJfbmF2X2dldF9jb21wb3VuZF9vZmZzZXQob3ApOworCisJ CQkJLyogQXBwbHkgb3V0ZXI6IFBSRVYgc3VidHJhY3RzLCBORVhUIGFkZHMgKi8KKwkJCQlpZiAo b3AtPmQucnByX25hdi5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCXsKKwkJCQkJaWYg KHBnX3N1Yl9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZzZXQsICZ0YXJnZXRf cG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXJfcG9zLCBjb21wb3VuZF9vZmZzZXQsICZ0 YXJnZXRfcG9zKSkKKwkJCQkJCXRhcmdldF9wb3MgPSAtMTsKKwkJCQl9CisJCQl9CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5hdmlnYXRp b24ga2luZDogJWQiLAorCQkJCSBvcC0+ZC5ycHJfbmF2LmtpbmQpOworCQkJYnJlYWs7CiAJfQog CisJLyoKKwkgKiBTbG90IHN3YXAgZWxpc2lvbjogaWYgdGFyZ2V0X3BvcyBpcyB0aGUgY3VycmVu dCByb3csIHNraXAgdGhlCisJICogdHVwbGVzdG9yZSBmZXRjaCBhbmQgc2xvdCBzd2FwIGVudGly ZWx5LiAgVGhpcyBiZW5lZml0cyBMQVNUKGV4cHIpLAorCSAqIFBSRVYoZXhwciwgMCksIE5FWFQo ZXhwciwgMCksIGFuZCBzaW1pbGFyIGNhc2VzLgorCSAqCisJICogV2UgbXVzdCBzdGlsbCBzZXQg bmF2X3NhdmVkX291dGVydHVwbGUgKGRvbmUgYWJvdmUpIHNvIHRoYXQKKwkgKiBFRU9QX1JQUl9O QVZfUkVTVE9SRSBpcyBhIGhhcm1sZXNzIG5vLW9wLgorCSAqLworCWlmICh0YXJnZXRfcG9zID09 IHdpbnN0YXRlLT5jdXJyZW50cG9zKQorCQlyZXR1cm47CisKIAkvKiBGZXRjaCB0YXJnZXQgcm93 IHNsb3QgKHJldHVybnMgbmF2X251bGxfc2xvdCBpZiBvdXQgb2YgcmFuZ2UpICovCiAJdGFyZ2V0 X3Nsb3QgPSBFeGVjUlBSTmF2R2V0U2xvdCh3aW5zdGF0ZSwgdGFyZ2V0X3Bvcyk7CiAKQEAgLTYw MTUsOSArNjE1MCwxMSBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0YXRlLCBFeHBy RXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiB9CiAKIC8qCi0gKiBFdmFsdWF0 ZSBSUFIgUFJFVi9ORVhUIG5hdmlnYXRpb246IHJlc3RvcmUgc2xvdCB0byBvcmlnaW5hbCByb3cu CisgKiBFdmFsdWF0ZSBSUFIgbmF2aWdhdGlvbjogcmVzdG9yZSBzbG90IHRvIG9yaWdpbmFsIHJv dy4KICAqCiAgKiBSZXN0b3JlcyBlY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlIGZyb20gdGhlIHNh dmVkIHNsb3QgaW4gd2luc3RhdGUuCisgKiBXaGVuIHNsb3Qgc3dhcCB3YXMgZWxpZGVkICh0YXJn ZXQgPT0gY3VycmVudHBvcyksIHRoaXMgaXMgYSBoYXJtbGVzcworICogbm8tb3Agc2luY2Ugc2F2 ZWQgYW5kIGN1cnJlbnQgc2xvdHMgYXJlIGlkZW50aWNhbC4KICAqIFRoZSBjYWxsZXIgaXMgcmVz cG9uc2libGUgZm9yIHVwZGF0aW5nIGFueSBsb2NhbCBzbG90IGNhY2hlLgogICovCiB2b2lkCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjUlBSLmMKaW5kZXggNTQyOGQwZThmYzQuLjAxZGYyYTExZTBhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1JQUi5jCkBAIC00OCw2ICs0OCw3IEBACiAgKiAgICAgLSBzcmMvaW5jbHVkZS9u b2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgKHBsYW4gbm9kZSBkZWZpbml0aW9ucykKICAqICAg ICAtIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAoZXhlY3V0aW9uIHN0 YXRlIGRlZmluaXRpb25zKQogICogICAgIC0gc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oICAg ICAgICAgICAgICh0eXBlcyBhbmQgY29uc3RhbnRzKQorICogICAgIC0gc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIChuYXYgb2Zmc2V0IGNvbXB1dGF0aW9uKQogICoKICAq ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC02MDksMjIgKzYxMCw2OSBAQAogICogICAgICAg cmVzdWx0ID0gRXhlY0V2YWxFeHByKGRlZmluZUNsYXVzZVtpXSkKICAqICAgICAgIHZhck1hdGNo ZWRbaV0gPSAobm90IG51bGwgYW5kIHRydWUpCiAgKgotICogVG8gc3VwcG9ydCByb3cgbmF2aWdh dGlvbiBvcGVyYXRvcnMgc3VjaCBhcyBQUkVWKCkgYW5kIE5FWFQoKSwKKyAqIFRvIHN1cHBvcnQg cm93IG5hdmlnYXRpb24gb3BlcmF0b3JzIChQUkVWLCBORVhULCBGSVJTVCwgTEFTVCksCiAgKiBh IDEtc2xvdCBtb2RlbCBpcyB1c2VkOiBvbmx5IGVjeHRfb3V0ZXJ0dXBsZSBpcyBzZXQgdG8gdGhl IGN1cnJlbnQKLSAqIHJvdy4gIFBSRVYvTkVYVCBuYXZpZ2F0aW9uIGlzIGhhbmRsZWQgYnkgRUVP UF9SUFJfTkFWX1NFVC9SRVNUT1JFCi0gKiBvcGNvZGVzIGVtaXR0ZWQgZHVyaW5nIERFRklORSBl eHByZXNzaW9uIGNvbXBpbGF0aW9uOgorICogcm93LiAgTmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5 IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCisgKiBlbWl0dGVkIGR1cmluZyBERUZJ TkUgZXhwcmVzc2lvbiBjb21waWxhdGlvbjoKICAqCiAgKiAgIE5BVl9TRVQ6ICAgICBzYXZlIGVj eHRfb3V0ZXJ0dXBsZSwgc3dhcCBpbiB0YXJnZXQgcm93IHZpYSBuYXZfc2xvdAogICogICAoZXZh bHVhdGUpOiAgYXJndW1lbnQgZXhwcmVzc2lvbiByZWFkcyBmcm9tIHN3YXBwZWQgc2xvdAogICog ICBOQVZfUkVTVE9SRTogcmVzdG9yZSBvcmlnaW5hbCBlY3h0X291dGVydHVwbGUKICAqCisgKiBD b21wb3VuZCBuYXZpZ2F0aW9uIChQUkVWKEZJUlNUKCkpLCBORVhUKEZJUlNUKCkpLCBQUkVWKExB U1QoKSksCisgKiBORVhUKExBU1QoKSkpIGlzIGZsYXR0ZW5lZCBieSB0aGUgcGFyc2VyIGludG8g YSBzaW5nbGUgUlBSTmF2RXhwcgorICogd2l0aCBhIGNvbXBvdW5kIGtpbmQgKFJQUl9OQVZfUFJF Vl9GSVJTVCwgZXRjLikuICBUaGUgZXhlY3V0b3IKKyAqIGNvbXB1dGVzIHRoZSB0YXJnZXQgcG9z aXRpb24gaW4gdHdvIHN0ZXBzOiBmaXJzdCB0aGUgaW5uZXIgcmVmZXJlbmNlCisgKiBwb2ludCAo bWF0Y2hfc3RhcnQgKyBOIG9yIGN1cnJlbnRwb3MgLSBOKSB3aXRoIG1hdGNoLXJhbmdlIHZhbGlk YXRpb24sCisgKiB0aGVuIHRoZSBvdXRlciBhZGp1c3RtZW50ICjCsSBNKSB3aXRoIHBhcnRpdGlv bi1yYW5nZSB2YWxpZGF0aW9uLgorICogSWYgZWl0aGVyIHN0ZXAgaXMgb3V0IG9mIHJhbmdlLCB0 aGUgcmVzdWx0IGlzIE5VTEwuCisgKgogICogbmF2X3Nsb3QgY2FjaGVzIHRoZSBsYXN0IGZldGNo ZWQgcG9zaXRpb24gKG5hdl9zbG90X3BvcykgdG8gYXZvaWQKLSAqIHJlZHVuZGFudCB0dXBsZXN0 b3JlIGxvb2t1cHMgd2hlbiBtdWx0aXBsZSBQUkVWL05FWFQgY2FsbHMgdGFyZ2V0CisgKiByZWR1 bmRhbnQgdHVwbGVzdG9yZSBsb29rdXBzIHdoZW4gbXVsdGlwbGUgbmF2aWdhdGlvbiBjYWxscyB0 YXJnZXQKICAqIHRoZSBzYW1lIHJvdy4KICAqCiAgKiBUaGUgdmFyTWF0Y2hlZCBhcnJheSBpcyBy ZWZlcmVuY2VkIGxhdGVyIGluIFBoYXNlIDEgKE1hdGNoKS4KICAqCi0gKiBWSS00LiBFeGVjUlBS UHJvY2Vzc1JvdygpOiAzLVBoYXNlIFByb2Nlc3NpbmcKKyAqIFZJLTQuIFBlci1Db250ZXh0IFJl LWV2YWx1YXRpb24gKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCB2YXJpYWJsZXMpCisgKgorICogREVG SU5FIHZhcmlhYmxlcyB0aGF0IGRlcGVuZCBvbiBtYXRjaF9zdGFydCAodGhvc2UgY29udGFpbmlu ZyBGSVJTVCwKKyAqIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVY VF9GSVJTVC9QUkVWX0xBU1QvTkVYVF9MQVNUKQorICogYXJlIGlkZW50aWZpZWQgYXQgcGxhbiB0 aW1lIHZpYSBkZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50LiAgVGhlIHNoYXJlZAorICogZXZhbHVh dGlvbiBpbiBuZmFfZXZhbHVhdGVfcm93KCkgdXNlcyB0aGUgaGVhZCBjb250ZXh0J3MgbWF0Y2hT dGFydFJvdworICogZm9yIEZJUlNUL0xBU1QgYmFzZSBwb3NpdGlvbi4KKyAqCisgKiBXaGVuIHBy b2Nlc3NpbmcgYSBjb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBz aGFyZWQKKyAqIHZhbHVlLCBuZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFy aWx5IHNldHMgbmF2X21hdGNoX3N0YXJ0CisgKiB0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0 Um93IGFuZCByZS1ldmFsdWF0ZXMgb25seSB0aGUgZGVwZW5kZW50CisgKiB2YXJpYWJsZXMuICBO byByZXN0b3JlIGlzIG5lZWRlZCBiZWNhdXNlIGNvbnRleHRzIGFyZSBvcmRlcmVkIGJ5CisgKiBt YXRjaFN0YXJ0Um93IChhc2NlbmRpbmcpLCBzbyBubyBsYXRlciBjb250ZXh0IHNoYXJlcyB0aGUg aGVhZCdzIHZhbHVlLgorICoKKyAqIFZJLTUuIFR1cGxlc3RvcmUgTWFyayBhbmQgVHJpbSAobm9k ZVdpbmRvd0FnZy5jKQorICoKKyAqIE5hdmlnYXRpb24gZnVuY3Rpb25zIHJlcXVpcmUgYWNjZXNz IHRvIHBhc3Qgcm93cyB2aWEgdGhlIHR1cGxlc3RvcmUuCisgKiBUbyBhbGxvdyB0dXBsZXN0b3Jl X3RyaW0oKSB0byBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZSwKKyAqIHRo ZSBwbGFubmVyIGNvbXB1dGVzIHR3byBvZmZzZXRzIChzZWUgY29tcHV0ZV9uYXZfb2Zmc2V0cyk6 CisgKgorICogICBuYXZNYXhPZmZzZXQgKE5hdiBNYXJrIExvb2tiYWNrKToKKyAqICAgICBNYXhp bXVtIGJhY2t3YXJkIHJlYWNoIGZyb20gY3VycmVudHBvcy4gIENvbnRyaWJ1dGVkIGJ5IFBSRVYs CisgKiAgICAgTEFTVC13aXRoLW9mZnNldCwgYW5kIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xB U1QuCisgKiAgICAgTWFyayBwb3NpdGlvbjogY3VycmVudHBvcyAtIG5hdk1heE9mZnNldC4KKyAq CisgKiAgIG5hdkZpcnN0T2Zmc2V0IChOYXYgTWFyayBMb29rYWhlYWQpOgorICogICAgIE1pbmlt dW0gZm9yd2FyZCBvZmZzZXQgZnJvbSBtYXRjaF9zdGFydC4gIENvbnRyaWJ1dGVkIGJ5IEZJUlNU CisgKiAgICAgYW5kIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4gIENhbiBiZSBuZWdh dGl2ZSB3aGVuCisgKiAgICAgY29tcG91bmQgUFJFVl9GSVJTVCBsb29rcyBiZWZvcmUgbWF0Y2hf c3RhcnQuCisgKiAgICAgTWFyayBwb3NpdGlvbjogb2xkZXN0X2NvbnRleHQtPm1hdGNoU3RhcnRS b3cgKyBuYXZGaXJzdE9mZnNldC4KKyAqCisgKiBUaGUgYWN0dWFsIG1hcmsgaXMgc2V0IHRvOiBt aW4obG9va2JhY2tfbWFyaywgbG9va2FoZWFkX21hcmspLgorICogVGhpcyBlbnN1cmVzIGFsbCBy b3dzIHJlYWNoYWJsZSBieSBhbnkgbmF2aWdhdGlvbiBmdW5jdGlvbiBhcmUgcmV0YWluZWQuCisg KgorICogV2hlbiBvZmZzZXRzIGNvbnRhaW4gbm9uLWNvbnN0YW50IGV4cHJlc3Npb25zIChQYXJh bSksIHRoZSBwbGFubmVyIHNldHMKKyAqIG5hdk1heE9mZnNldEtpbmQvbmF2Rmlyc3RPZmZzZXRL aW5kIHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwgYW5kIHRoZQorICogZXhlY3V0b3IgZXZh bHVhdGVzIHRoZW0gYXQgaW5pdCB0aW1lLiAgT24gb3ZlcmZsb3csIHRoZSBraW5kIGlzIHNldCB0 bworICogUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTCwgZGlzYWJsaW5nIHRyaW0gZm9yIHRoYXQg ZGltZW5zaW9uLgorICoKKyAqIFZJLTYuIEV4ZWNSUFJQcm9jZXNzUm93KCk6IDMtUGhhc2UgUHJv Y2Vzc2luZwogICoKICAqIE5GQSBwcm9jZXNzaW5nIGZvciBhIHNpbmdsZSByb3cgaXMgZGl2aWRl ZCBpbnRvIHRocmVlIHBoYXNlczoKICAqCkBAIC03MDcsNiArNzU1LDIxIEBACiAgKgogICogVklJ SS0zLiBBYnNvcnB0aW9uIENvbmRpdGlvbnMKICAqCisgKiBQbGFubmVyLXRpbWUgcHJlcmVxdWlz aXRlcyAoYWxsIG11c3QgaG9sZCBmb3IgYWJzb3JwdGlvbiB0byBiZSBlbmFibGVkKToKKyAqCisg KiAgIChhKSBTS0lQIFBBU1QgTEFTVCBST1cuICBTS0lQIFRPIE5FWFQgUk9XIGNyZWF0ZXMgb3Zl cmxhcHBpbmcKKyAqICAgICAgIGNvbnRleHRzIHRoYXQgY2Fubm90IGJlIHNhZmVseSBhYnNvcmJl ZC4KKyAqICAgKGIpIFVuYm91bmRlZCBmcmFtZSAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQKKyAqICAgICAgIEZPTExPV0lORykuICBMaW1pdGVkIGZyYW1lcyBhcHBseSBk aWZmZXJlbnRseSB0byBlYWNoIGNvbnRleHQsCisgKiAgICAgICBicmVha2luZyB0aGUgbW9ub3Rv bmljaXR5IHByaW5jaXBsZS4KKyAqICAgKGMpIE5vIG1hdGNoX3N0YXJ0LWRlcGVuZGVudCBuYXZp Z2F0aW9uIGluIERFRklORS4gIEZJUlNULAorICogICAgICAgTEFTVC13aXRoLW9mZnNldCwgYW5k IGNvbXBvdW5kIG5hdmlnYXRpb24gcmVmZXJlbmNpbmcgbWF0Y2hfc3RhcnQKKyAqICAgICAgIChQ UkVWX0ZJUlNULCBORVhUX0ZJUlNULCBQUkVWX0xBU1QvTkVYVF9MQVNUIHdpdGggb2Zmc2V0KQor ICogICAgICAgY2F1c2UgZGlmZmVyZW50IGNvbnRleHRzIHRvIGV2YWx1YXRlIHRvIGRpZmZlcmVu dCB2YWx1ZXMgZm9yIHRoZQorICogICAgICAgc2FtZSByb3csIGJyZWFraW5nIG1vbm90b25pY2l0 eS4KKyAqCisgKiBSdW50aW1lIGNvbmRpdGlvbnMgKGV2YWx1YXRlZCBwZXIgY29udGV4dCBwYWly KToKKyAqCiAgKiAgICgxKSBUaGUgcGF0dGVybiBpcyBtYXJrZWQgYXMgaXNBYnNvcmJhYmxlIChz ZWUgSVYtNSkKICAqICAgKDIpIGFsbFN0YXRlc0Fic29yYmFibGUgb2YgdGhlIHRhcmdldCBjb250 ZXh0IGlzIHRydWUKICAqICAgKDMpIEFuIGVhcmxpZXIgY29udGV4dCAiY292ZXJzIiBhbGwgc3Rh dGVzIG9mIHRoZSB0YXJnZXQKQEAgLTk3OSw2ICsxMDQyLDE5IEBACiAgKiAgIE9ubHkgSU5JVElB TCBpcyBzdXBwb3J0ZWQsIHNlYXJjaGluZyBvbmx5IGZvciBtYXRjaGVzIHN0YXJ0aW5nIGF0IGVh Y2gKICAqICAgcm93IHBvc2l0aW9uIHBvcy4KICAqCisgKiBYLTQuIEJvdW5kZWQgRnJhbWUgSGFu ZGxpbmcKKyAqCisgKiAgIFdoZW4gdGhlIGZyYW1lIGlzIGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgNQorICogICBGT0xMT1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1Jv dyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBhbmQKKyAqICAgZnJhbWVPZmZzZXQgaW5k aWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBBZnRlciB0aGUgYWR2YW5jZSBwaGFzZSwKKyAqICAg YW55IGNvbnRleHQgd2hvc2UgbWF0Y2ggaGFzIGV4Y2VlZGVkIHRoZSBmcmFtZSBib3VuZGFyeQor ICogICAoY3VycmVudFBvcyAtIG1hdGNoU3RhcnRSb3cgPj0gZnJhbWVPZmZzZXQgKyAxKSBpcyBm aW5hbGl6ZWQgZWFybHkuCisgKiAgIFRoaXMgcHJldmVudHMgbWF0Y2hlcyBmcm9tIGV4dGVuZGlu ZyBiZXlvbmQgdGhlIHdpbmRvdyBmcmFtZS4KKyAqCisgKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZy YW1lcyBhbHNvIGRpc2FibGUgY29udGV4dCBhYnNvcnB0aW9uIGF0IHRoZQorICogICBwbGFubmVy IGxldmVsIChzZWUgVklJSS0zKGIpKSwgc2luY2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0 aGUKKyAqICAgbW9ub3RvbmljaXR5IGFzc3VtcHRpb24gcmVxdWlyZWQgZm9yIGNvcnJlY3QgYWJz b3JwdGlvbi4KKyAqCiAgKiBDaGFwdGVyIFhJICBXb3JrZWQgRXhhbXBsZTogRnVsbCBFeGVjdXRp b24gVHJhY2UKICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAqCkBAIC0xMzMwLDYgKzE0MDYsMTQg QEAKICAqICAgbmZhX2FkdmFuY2VfdmFyICAgICAgICAgICAgICAgZXhlY1JQUi5jICAgICAgICAg ICAgIFZBUiBoYW5kbGluZwogICogICBuZmFfYWRkX3N0YXRlX3VuaXF1ZSAgICAgICAgICBleGVj UlBSLmMgICAgICAgICAgICAgRGVkdXBsaWNhdGlvbgogICogICBuZmFfc3RhdGVzX2NvdmVyZWQg ICAgICAgICAgICBleGVjUlBSLmMgICAgICAgICAgICAgQWJzb3JwdGlvbiBjaGVjaworICogICBu ZmFfcmVldmFsdWF0ZV9kZXBlbmRlbnRfdmFycyBleGVjUlBSLmMgICAgICAgICAgICAgUGVyLWNv bnRleHQgcmUtZXZhbAorICogICBFeGVjUlBSR2V0SGVhZENvbnRleHQgICAgICAgICBleGVjUlBS LmMgICAgICAgICAgICAgQ29udGV4dCBsb29rdXAKKyAqICAgRXhlY1JQUkZyZWVDb250ZXh0ICAg ICAgICAgICAgZXhlY1JQUi5jICAgICAgICAgICAgIENvbnRleHQgZGVhbGxvY2F0aW9uCisgKiAg IEV4ZWNSUFJDbGVhbnVwRGVhZENvbnRleHRzICAgIGV4ZWNSUFIuYyAgICAgICAgICAgICBEZWFk IGNvbnRleHQgY2xlYW51cAorICogICBFeGVjUlBSRmluYWxpemVBbGxDb250ZXh0cyAgICBleGVj UlBSLmMgICAgICAgICAgICAgUGFydGl0aW9uLWVuZCBmaW5hbGl6ZQorICogICBFeGVjUlBSUmVj b3JkQ29udGV4dFN1Y2Nlc3MgICBleGVjUlBSLmMgICAgICAgICAgICAgU3RhdHM6IG1hdGNoIHN1 Y2Nlc3MKKyAqICAgRXhlY1JQUlJlY29yZENvbnRleHRGYWlsdXJlICAgZXhlY1JQUi5jICAgICAg ICAgICAgIFN0YXRzOiBtYXRjaCBmYWlsdXJlCisgKiAgIGNvbXB1dGVfbmF2X29mZnNldHMgICAg ICAgICAgIGNyZWF0ZXBsYW4uYyAgICAgICAgICBUcmltIG9mZnNldCBjb21wdXRhdGlvbgogICoK ICAqIEFwcGVuZGl4IEIuIERhdGEgU3RydWN0dXJlIFJlbGF0aW9uc2hpcCBEaWFncmFtCiAgKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CkBAIC0yOTg5LDYgKzMwNzMsNTYgQEAgRXhlY1JQUlJlY29yZENv bnRleHRGYWlsdXJlKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgZmFpbGVkTGVuKQog CX0KIH0KIAorLyoKKyAqIG5mYV9yZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzCisgKgkJUmUtZXZh bHVhdGUgbWF0Y2hfc3RhcnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgZm9yIGEgc3BlY2lm aWMKKyAqCQljb250ZXh0IHdob3NlIG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFy ZWQgZXZhbHVhdGlvbidzCisgKgkJbmF2X21hdGNoX3N0YXJ0LgorICoKKyAqIE9ubHkgdmFyaWFi bGVzIGluIGRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQgYXJlIHJlLWV2YWx1YXRlZC4gIFRoZQor ICogY3VycmVudCByb3cncyBzbG90IChlY3h0X291dGVydHVwbGUpIG11c3QgYWxyZWFkeSBiZSBz ZXQgdXAgYnkKKyAqIG5mYV9ldmFsdWF0ZV9yb3coKS4KKyAqLworc3RhdGljIHZvaWQKK25mYV9y ZWV2YWx1YXRlX2RlcGVuZGVudF92YXJzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSTkZB Q29udGV4dCAqY3R4LAorCQkJCQkJCSAgaW50NjQgY3VycmVudFBvcykKK3sKKwlFeHByQ29udGV4 dCAqZWNvbnRleHQgPSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CisJaW50NjQJCXNh dmVkX21hdGNoX3N0YXJ0ID0gd2luc3RhdGUtPm5hdl9tYXRjaF9zdGFydDsKKwlpbnQ2NAkJc2F2 ZWRfcG9zID0gd2luc3RhdGUtPmN1cnJlbnRwb3M7CisJaW50CQkJdmFySWR4ID0gMDsKKwlMaXN0 Q2VsbCAgICpsYzsKKworCS8qIFRlbXBvcmFyaWx5IHNldCBuYXZfbWF0Y2hfc3RhcnQgYW5kIGN1 cnJlbnRwb3MgZm9yIEZJUlNUL0xBU1QgKi8KKwl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0g Y3R4LT5tYXRjaFN0YXJ0Um93OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gY3VycmVudFBvczsK KworCS8qIEludmFsaWRhdGUgbmF2X3Nsb3QgY2FjaGUgc2luY2UgbWF0Y2hfc3RhcnQgY2hhbmdl ZCAqLworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKKworCWZvcmVhY2gobGMsIHdpbnN0 YXRlLT5kZWZpbmVDbGF1c2VMaXN0KQorCXsKKwkJaWYgKGJtc19pc19tZW1iZXIodmFySWR4LCB3 aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERlcGVuZGVudCkpCisJCXsKKwkJCUV4cHJTdGF0ZSAg KmV4cHJTdGF0ZSA9IChFeHByU3RhdGUgKikgbGZpcnN0KGxjKTsKKwkJCURhdHVtCQlyZXN1bHQ7 CisJCQlib29sCQlpc251bGw7CisKKwkJCXJlc3VsdCA9IEV4ZWNFdmFsRXhwcihleHByU3RhdGUs IGVjb250ZXh0LCAmaXNudWxsKTsKKwkJCXdpbnN0YXRlLT5uZmFWYXJNYXRjaGVkW3ZhcklkeF0g PSAoIWlzbnVsbCAmJiBEYXR1bUdldEJvb2wocmVzdWx0KSk7CisJCX0KKworCQl2YXJJZHgrKzsK KwkJaWYgKHZhcklkeCA+PSBsaXN0X2xlbmd0aCh3aW5zdGF0ZS0+ZGVmaW5lVmFyaWFibGVMaXN0 KSkKKwkJCWJyZWFrOworCX0KKworCS8qIFJlc3RvcmUgb3JpZ2luYWwgbWF0Y2hfc3RhcnQsIGN1 cnJlbnRwb3MsIGFuZCBpbnZhbGlkYXRlIGNhY2hlICovCisJd2luc3RhdGUtPm5hdl9tYXRjaF9z dGFydCA9IHNhdmVkX21hdGNoX3N0YXJ0OworCXdpbnN0YXRlLT5jdXJyZW50cG9zID0gc2F2ZWRf cG9zOworCXdpbnN0YXRlLT5uYXZfc2xvdF9wb3MgPSAtMTsKK30KKwogLyoKICAqIEV4ZWNSUFJQ cm9jZXNzUm93CiAgKgpAQCAtMzAwMyw2ICszMTM3LDcgQEAgRXhlY1JQUlByb2Nlc3NSb3coV2lu ZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBjdXJyZW50UG9zLAogewogCVJQUk5GQUNvbnRl eHQgKmN0eDsKIAlib29sCSAgICp2YXJNYXRjaGVkID0gd2luc3RhdGUtPm5mYVZhck1hdGNoZWQ7 CisJYm9vbAkJaGFzRGVwZW5kZW50ID0gIWJtc19pc19lbXB0eSh3aW5zdGF0ZS0+ZGVmaW5lTWF0 Y2hTdGFydERlcGVuZGVudCk7CiAKIAkvKiBBbGxvdyBxdWVyeSBjYW5jZWxsYXRpb24gb25jZSBw ZXIgcm93IGZvciBzaW1wbGUvbG93LXN0YXRlIHBhdHRlcm5zICovCiAJQ0hFQ0tfRk9SX0lOVEVS UlVQVFMoKTsKQEAgLTMwMjksNiArMzE2NCwxMyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQb3MsCiAJCQl9CiAJCX0KIAorCQkvKgor CQkgKiBJZiB0aGlzIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3RhcnRSb3cgdGhhbiB0 aGUgb25lIHVzZWQgaW4KKwkJICogdGhlIHNoYXJlZCBldmFsdWF0aW9uLCByZS1ldmFsdWF0ZSBt YXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzCisJCSAqIHdpdGggdGhpcyBjb250ZXh0J3Mg bWF0Y2hTdGFydFJvdy4KKwkJICovCisJCWlmIChoYXNEZXBlbmRlbnQgJiYgY3R4LT5tYXRjaFN0 YXJ0Um93ICE9IHdpbnN0YXRlLT5uYXZfbWF0Y2hfc3RhcnQpCisJCQluZmFfcmVldmFsdWF0ZV9k ZXBlbmRlbnRfdmFycyh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKIAkJbmZhX21hdGNoKHdp bnN0YXRlLCBjdHgsIHZhck1hdGNoZWQpOwogCQljdHgtPmxhc3RQcm9jZXNzZWRSb3cgPSBjdXJy ZW50UG9zOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dB Z2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA5Nzg3ZWY3 NzU2Zi4uY2RiZTM1NmFiZDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVX aW5kb3dBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNz L2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJjYXRh bG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb25fZC5oIgpAQCAtMjQ1LDggKzI0Niw4IEBAIHN0 YXRpYyB2b2lkIHVwZGF0ZV9yZWR1Y2VkX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0 IHBvcyk7CiBzdGF0aWMgYm9vbCBuZmFfZXZhbHVhdGVfcm93KFdpbmRvd09iamVjdCB3aW5vYmos IGludDY0IHBvcywgYm9vbCAqdmFyTWF0Y2hlZCk7CiAKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25z IC0gbmF2aWdhdGlvbiBvZmZzZXQgZXZhbHVhdGlvbiAqLwotc3RhdGljIGJvb2wgY29sbGVjdF9w cmV2X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgTGlzdCAqKm9mZnNldHMpOwogc3RhdGljIHZv aWQgZXZhbF9uYXZfbWF4X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRl ZmluZUNsYXVzZSk7CitzdGF0aWMgdm9pZCBldmFsX25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdn U3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVDbGF1c2UpOwogCiAvKgogICogTm90IG51bGwg aW5mbyBiaXQgYXJyYXkgY29uc2lzdHMgb2YgMi1iaXQgaXRlbXMKQEAgLTkzMiwyOCArOTMzLDcg QEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAkgKiBo ZWFkLCBzbyB0aGF0IHR1cGxlc3RvcmUgY2FuIGRpc2NhcmQgdW5uZWNlc3Nhcnkgcm93cy4KIAkg Ki8KIAlpZiAoYWdnX3dpbm9iai0+bWFya3B0ciA+PSAwKQotCXsKLQkJaW50NjQJCW1hcmtwb3Mg PSB3aW5zdGF0ZS0+ZnJhbWVoZWFkcG9zOwotCi0JCWlmIChycHJfaXNfZGVmaW5lZCh3aW5zdGF0 ZSkpCi0JCXsKLQkJCS8qCi0JCQkgKiBJZiBSUFIgaXMgdXNlZCwgUFJFViBtYXkgbmVlZCB0byBs b29rIGF0IHJvd3MgYmVmb3JlIHRoZSBmcmFtZQotCQkJICogaGVhZC4gIEFkanVzdCBtYXJrIGJ5 IG5hdk1heE9mZnNldCBpZiBrbm93biwgb3RoZXJ3aXNlIHJldGFpbgotCQkJICogZnJvbSBwb3Np dGlvbiAwLgotCQkJICovCi0JCQlpZiAod2luc3RhdGUtPm5hdk1heE9mZnNldCA+PSAwKQotCQkJ ewotCQkJCWlmIChtYXJrcG9zID4gd2luc3RhdGUtPm5hdk1heE9mZnNldCkKLQkJCQkJbWFya3Bv cyAtPSB3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0OwotCQkJCWVsc2UKLQkJCQkJbWFya3BvcyA9IDA7 Ci0JCQl9Ci0JCQllbHNlCi0JCQkJbWFya3BvcyA9IDA7Ci0JCX0KLQkJV2luU2V0TWFya1Bvc2l0 aW9uKGFnZ193aW5vYmosIG1hcmtwb3MpOwotCX0KKwkJV2luU2V0TWFya1Bvc2l0aW9uKGFnZ193 aW5vYmosIHdpbnN0YXRlLT5mcmFtZWhlYWRwb3MpOwogCiAJLyoKIAkgKiBOb3cgcmVzdGFydCB0 aGUgYWdncmVnYXRlcyB0aGF0IHJlcXVpcmUgaXQuCkBAIC0xMjc5LDE1ICsxMjU5LDE1IEBAIHBy ZXBhcmVfdHVwbGVzdG9yZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAJaWYgKHdpbnN0YXRl LT5uYXZfd2lub2JqKQogCXsKIAkJLyoKLQkJICogQWxsb2NhdGUgbWFyayBhbmQgcmVhZCBwb2lu dGVycyBmb3IgUFJFVi9ORVhUIG5hdmlnYXRpb24uCisJCSAqIEFsbG9jYXRlIG1hcmsgYW5kIHJl YWQgcG9pbnRlcnMgZm9yIFJQUiBuYXZpZ2F0aW9uLgogCQkgKgotCQkgKiBJZiBuYXZNYXhPZmZz ZXQgPj0gMCwgd2UgYWR2YW5jZSB0aGUgbWFyayB0byAoY3VycmVudHBvcyAtCi0JCSAqIG5hdk1h eE9mZnNldCkgYXMgcm93cyBhcmUgcHJvY2Vzc2VkLCBhbGxvd2luZyB0dXBsZXN0b3JlX3RyaW0o KSB0bwotCQkgKiBmcmVlIHJvd3MgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlYWNoYWJsZS4KKwkJICog SWYgbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCwgd2UgYWR2YW5jZSB0 aGUgbWFyaworCQkgKiBiYXNlZCBvbiAoY3VycmVudHBvcyAtIG5hdk1heE9mZnNldCkgYW5kIG9w dGlvbmFsbHkKKwkJICogKG5mYUNvbnRleHQtPm1hdGNoU3RhcnRSb3cgKyBuYXZGaXJzdE9mZnNl dCksIGFsbG93aW5nCisJCSAqIHR1cGxlc3RvcmVfdHJpbSgpIHRvIGZyZWUgcm93cyB0aGF0IGFy ZSBubyBsb25nZXIgcmVhY2hhYmxlLgogCQkgKgotCQkgKiBJZiBuYXZNYXhPZmZzZXQgPCAwIChS UFJfTkFWX09GRlNFVF9ORUVEU19FVkFMIG9yCi0JCSAqIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9B TEwpLCB0aGUgbWFyayBzdGF5cyBhdCAwLCByZXRhaW5pbmcgdGhlCi0JCSAqIGVudGlyZSBwYXJ0 aXRpb24gaW4gdGhlIHR1cGxlc3RvcmUuCisJCSAqIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwg aXMgcmVzb2x2ZWQgYXQgZXhlY3V0b3IgaW5pdDsgYnkgdGhpcworCQkgKiBwb2ludCBpdCBpcyBl aXRoZXIgRklYRUQgb3IgUkVUQUlOX0FMTC4KIAkJICovCiAJCXdpbnN0YXRlLT5uYXZfd2lub2Jq LT5tYXJrcHRyID0KIAkJCXR1cGxlc3RvcmVfYWxsb2NfcmVhZF9wb2ludGVyKHdpbnN0YXRlLT5i dWZmZXIsIDApOwpAQCAtMjUyNywxOCArMjUwNyw0MCBAQCBFeGVjV2luZG93QWdnKFBsYW5TdGF0 ZSAqcHN0YXRlKQogCiAJCS8qCiAJCSAqIEFkdmFuY2UgUlBSIG5hdmlnYXRpb24gbWFyayBwb2lu dGVyIGlmIHBvc3NpYmxlLCBzbyB0aGF0Ci0JCSAqIHR1cGxlc3RvcmVfdHJpbSgpIGNhbiBmcmVl IHJvd3Mgbm8gbG9uZ2VyIHJlYWNoYWJsZSBieSBQUkVWLgorCQkgKiB0dXBsZXN0b3JlX3RyaW0o KSBjYW4gZnJlZSByb3dzIG5vIGxvbmdlciByZWFjaGFibGUgYnkgbmF2aWdhdGlvbi4KIAkJICov CiAJCWlmICh3aW5zdGF0ZS0+bmF2X3dpbm9iaiAmJgogCQkJd2luc3RhdGUtPnJwUGF0dGVybiAh PSBOVUxMICYmCi0JCQl3aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0ID49IDApCisJCQl3aW5zdGF0ZS0+ bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRCkKIAkJewogCQkJaW50NjQJ CW5hdm1hcmtwb3M7CiAKKwkJCS8qIEJhY2t3YXJkIHJlYWNoIGZyb20gUFJFVi9MQVNUL2NvbXBv dW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QgKi8KIAkJCWlmICh3aW5zdGF0ZS0+Y3VycmVudHBvcyA+ IHdpbnN0YXRlLT5uYXZNYXhPZmZzZXQpCiAJCQkJbmF2bWFya3BvcyA9IHdpbnN0YXRlLT5jdXJy ZW50cG9zIC0gd2luc3RhdGUtPm5hdk1heE9mZnNldDsKIAkJCWVsc2UKIAkJCQluYXZtYXJrcG9z ID0gMDsKKworCQkJLyoKKwkJCSAqIElmIEZJUlNUIGlzIHVzZWQsIGFsc28gY29uc2lkZXIgbWF0 Y2hfc3RhcnQgKyBuYXZGaXJzdE9mZnNldC4KKwkJCSAqIFRoZSBvbGRlc3QgYWN0aXZlIGNvbnRl eHQgKG5mYUNvbnRleHQpIGhhcyB0aGUgc21hbGxlc3QKKwkJCSAqIG1hdGNoU3RhcnRSb3cuCisJ CQkgKi8KKwkJCWlmICh3aW5zdGF0ZS0+aGFzRmlyc3ROYXYgJiYKKwkJCQl3aW5zdGF0ZS0+bmF2 Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEICYmCisJCQkJd2luc3RhdGUt Pm5mYUNvbnRleHQgIT0gTlVMTCkKKwkJCXsKKwkJCQlpbnQ2NAkJZmlyc3RyZWFjaDsKKworCQkJ CWlmICh3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPiAtd2luc3RhdGUtPm5mYUNvbnRleHQtPm1h dGNoU3RhcnRSb3cpCisJCQkJCWZpcnN0cmVhY2ggPSB3aW5zdGF0ZS0+bmZhQ29udGV4dC0+bWF0 Y2hTdGFydFJvdworCQkJCQkJKyB3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQ7CisJCQkJZWxzZQor CQkJCQlmaXJzdHJlYWNoID0gMDsKKwkJCQlpZiAoZmlyc3RyZWFjaCA8IG5hdm1hcmtwb3MpCisJ CQkJCW5hdm1hcmtwb3MgPSBmaXJzdHJlYWNoOworCQkJfQorCiAJCQlpZiAobmF2bWFya3BvcyA+ IHdpbnN0YXRlLT5uYXZfd2lub2JqLT5tYXJrcG9zKQogCQkJCVdpblNldE1hcmtQb3NpdGlvbih3 aW5zdGF0ZS0+bmF2X3dpbm9iaiwgbmF2bWFya3Bvcyk7CiAJCX0KQEAgLTI3NzksNiArMjc4MSw3 IEBAIEV4ZWNJbml0V2luZG93QWdnKFdpbmRvd0FnZyAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGlu dCBlZmxhZ3MpCiAJCXdpbnN0YXRlLT5uYXZfbnVsbF9zbG90ID0gRXhlY1N0b3JlQWxsTnVsbFR1 cGxlKHdpbnN0YXRlLT5uYXZfbnVsbF9zbG90KTsKIAogCQl3aW5zdGF0ZS0+bmF2X3NhdmVkX291 dGVydHVwbGUgPSBOVUxMOworCQl3aW5zdGF0ZS0+bmF2X21hdGNoX3N0YXJ0ID0gMDsKIAl9CiAK IAkvKgpAQCAtMjk4OCwxMCArMjk5MSwyMCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cg Km5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCXdpbnN0YXRlLT5ycFNraXBUbyA9 IG5vZGUtPnJwU2tpcFRvOwogCS8qIFNldCB1cCByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBQQVRU RVJOIGNsYXVzZSAoY29tcGlsZWQgTkZBKSAqLwogCXdpbnN0YXRlLT5ycFBhdHRlcm4gPSBub2Rl LT5ycFBhdHRlcm47Ci0JLyogU2V0IHVwIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0 cmltICovCisJLyogU2V0IHVwIG5hdiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gKi8KKwl3 aW5zdGF0ZS0+bmF2TWF4T2Zmc2V0S2luZCA9IG5vZGUtPm5hdk1heE9mZnNldEtpbmQ7CiAJd2lu c3RhdGUtPm5hdk1heE9mZnNldCA9IG5vZGUtPm5hdk1heE9mZnNldDsKLQlpZiAod2luc3RhdGUt Pm5hdk1heE9mZnNldCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQorCWlmICh3aW5zdGF0 ZS0+bmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMKQogCQlldmFs X25hdl9tYXhfb2Zmc2V0KHdpbnN0YXRlLCBub2RlLT5kZWZpbmVDbGF1c2UpOworCXdpbnN0YXRl LT5oYXNGaXJzdE5hdiA9IG5vZGUtPmhhc0ZpcnN0TmF2OworCXdpbnN0YXRlLT5uYXZGaXJzdE9m ZnNldEtpbmQgPSBub2RlLT5uYXZGaXJzdE9mZnNldEtpbmQ7CisJd2luc3RhdGUtPm5hdkZpcnN0 T2Zmc2V0ID0gbm9kZS0+bmF2Rmlyc3RPZmZzZXQ7CisJaWYgKHdpbnN0YXRlLT5oYXNGaXJzdE5h diAmJgorCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXRLaW5kID09IFJQUl9OQVZfT0ZGU0VUX05F RURTX0VWQUwpCisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldCh3aW5zdGF0ZSwgbm9kZS0+ZGVmaW5l Q2xhdXNlKTsKKworCS8qIENvcHkgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBiaXRtYXBzZXQgZm9y IHBlci1jb250ZXh0IGV2YWx1YXRpb24gKi8KKwl3aW5zdGF0ZS0+ZGVmaW5lTWF0Y2hTdGFydERl cGVuZGVudCA9IGJtc19jb3B5KG5vZGUtPmRlZmluZU1hdGNoU3RhcnREZXBlbmRlbnQpOwogCiAJ LyogQ2FsY3VsYXRlIE5GQSBzdGF0ZSBzaXplIGFuZCBhbGxvY2F0ZSBjeWNsZSBkZXRlY3Rpb24g Yml0bWFwICovCiAJaWYgKG5vZGUtPnJwUGF0dGVybiAhPSBOVUxMKQpAQCAtMzkwMyw4NCArMzkx NiwyNTQgQEAgcHV0X25vdG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3Ms IGludCBhcmdubywgYm9vbCBpc251bGwpCiB9CiAKIC8qCi0gKiBjb2xsZWN0X3ByZXZfb2Zmc2V0 X3dhbGtlcgotICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIHRvIGNvbGxlY3QgUFJFViBvZmZzZXRf YXJnIGV4cHJlc3Npb25zLgorICogZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcgorICoJCUV2YWx1YXRl IGFuIG9mZnNldCBleHByZXNzaW9uIGF0IGV4ZWN1dG9yIGluaXQgdGltZSBmb3IgdHJpbQorICoJ CW9wdGltaXphdGlvbi4gIFJldHVybnMgdGhlIG9mZnNldCB2YWx1ZSwgb3IgMCBmb3IgTlVMTC9u ZWdhdGl2ZQorICoJCSh0aGVzZSB3aWxsIGNhdXNlIGEgcnVudGltZSBlcnJvciBkdXJpbmcgYWN0 dWFsIG5hdmlnYXRpb24sIHNvIHRoZQorICoJCXRyaW0gdmFsdWUgaXMgaXJyZWxldmFudCkuCisg Ki8KK3N0YXRpYyBpbnQ2NAorZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihXaW5kb3dBZ2dTdGF0ZSAq d2luc3RhdGUsIEV4cHIgKm9mZnNldF9leHByLAorCQkJCQkgICBpbnQ2NCBkZWZhdWx0T2Zmc2V0 KQoreworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29u dGV4dDsKKwlFeHByU3RhdGUgICplc3RhdGU7CisJRGF0dW0JCXZhbDsKKwlib29sCQlpc251bGw7 CisJaW50NjQJCW9mZnNldDsKKworCWlmIChvZmZzZXRfZXhwciA9PSBOVUxMKQorCQlyZXR1cm4g ZGVmYXVsdE9mZnNldDsKKworCWVzdGF0ZSA9IEV4ZWNJbml0RXhwcihvZmZzZXRfZXhwciwgKFBs YW5TdGF0ZSAqKSB3aW5zdGF0ZSk7CisJdmFsID0gRXhlY0V2YWxFeHByU3dpdGNoQ29udGV4dChl c3RhdGUsIGVjb250ZXh0LCAmaXNudWxsKTsKKworCWlmIChpc251bGwpCisJCXJldHVybiAwOwor CisJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOworCWlmIChvZmZzZXQgPCAwKQorCQlyZXR1 cm4gMDsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3R5cGVkZWYgc3RydWN0Cit7CisJV2luZG93 QWdnU3RhdGUgKndpbnN0YXRlOworCWludDY0CQltYXhPZmZzZXQ7CisJYm9vbAkJb3ZlcmZsb3c7 CQkvKiB0cnVlIGlmIG92ZXJmbG93IGRldGVjdGVkICovCit9IEV2YWxOYXZNYXhDb250ZXh0Owor CisvKgorICogZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIKKyAqCQlXYWxrIGV4cHJlc3Npb24g dHJlZSBldmFsdWF0aW5nIGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgcnVudGltZS4KKyAqCisg KiBIYW5kbGVzIHNpbXBsZSBQUkVWLCBMQVNULXdpdGgtb2Zmc2V0LCBhbmQgY29tcG91bmQgUFJF Vl9MQVNUL05FWFRfTEFTVC4KICAqLwogc3RhdGljIGJvb2wKLWNvbGxlY3RfcHJldl9vZmZzZXRf d2Fsa2VyKE5vZGUgKm5vZGUsIExpc3QgKipvZmZzZXRzKQorZXZhbF9uYXZfbWF4X29mZnNldF93 YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQogeworCUV2YWxOYXZNYXhDb250ZXh0ICpjb250 ZXh0ID0gKEV2YWxOYXZNYXhDb250ZXh0ICopIGN0eDsKKwogCWlmIChub2RlID09IE5VTEwpCiAJ CXJldHVybiBmYWxzZTsKIAorCS8qIFNob3J0LWNpcmN1aXQgaWYgb3ZlcmZsb3cgYWxyZWFkeSBk ZXRlY3RlZCAqLworCWlmIChjb250ZXh0LT5vdmVyZmxvdykKKwkJcmV0dXJuIGZhbHNlOworCiAJ aWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKIAl7CiAJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJO YXZFeHByICopIG5vZGU7CisJCWludDY0CQlyZWFjaCA9IDA7CisKKwkJaWYgKG5hdi0+a2luZCA9 PSBSUFJfTkFWX1BSRVYpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihj b250ZXh0LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDEpOworCQl9 CisJCWVsc2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0xBU1QgJiYgbmF2LT5vZmZzZXRfYXJn ICE9IE5VTEwpCisJCXsKKwkJCXJlYWNoID0gZXZhbF9uYXZfb2Zmc2V0X2hlbHBlcihjb250ZXh0 LT53aW5zdGF0ZSwKKwkJCQkJCQkJCQkgICBuYXYtPm9mZnNldF9hcmcsIDApOworCQl9CisJCWVs c2UgaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfTEFTVCB8fAorCQkJCSBuYXYtPmtpbmQg PT0gUlBSX05BVl9ORVhUX0xBU1QpCisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29m ZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5vZmZz ZXRfYXJnLCAwKTsKKwkJCWludDY0CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29u dGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCAxKTsKIAotCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBuYXYtPm9mZnNldF9h cmcgIT0gTlVMTCkKLQkJCSpvZmZzZXRzID0gbGFwcGVuZCgqb2Zmc2V0cywgbmF2LT5vZmZzZXRf YXJnKTsKKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QpCisJCQl7CisJCQkJ aWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3coaW5uZXIsIG91dGVyLCAmcmVhY2gpKQorCQkJCXsKKwkJ CQkJY29udGV4dC0+b3ZlcmZsb3cgPSB0cnVlOworCQkJCQlyZXR1cm4gZmFsc2U7CisJCQkJfQor CQkJfQorCQkJZWxzZQorCQkJCXJlYWNoID0gKGlubmVyID4gb3V0ZXIpID8gaW5uZXIgLSBvdXRl ciA6IDA7CisJCX0KIAotCQkvKiBEb24ndCB3YWxrIGludG8gUlBSTmF2RXhwciBjaGlsZHJlbiAq LwotCQlyZXR1cm4gZmFsc2U7CisJCWlmIChyZWFjaCA+IGNvbnRleHQtPm1heE9mZnNldCkKKwkJ CWNvbnRleHQtPm1heE9mZnNldCA9IHJlYWNoOworCisJCXJldHVybiBmYWxzZTsJCQkvKiBkb24n dCB3YWxrIGludG8gY2hpbGRyZW4gKi8KIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dh bGtlcihub2RlLCBjb2xsZWN0X3ByZXZfb2Zmc2V0X3dhbGtlciwgb2Zmc2V0cyk7CisJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgZXZhbF9uYXZfbWF4X29mZnNldF93YWxrZXIs IGN0eCk7CiB9CiAKIC8qCiAgKiBldmFsX25hdl9tYXhfb2Zmc2V0Ci0gKgkJRXZhbHVhdGUgbm9u LWNvbnN0YW50IFBSRVYgb2Zmc2V0cyBhdCBleGVjdXRvciBpbml0IHRpbWUuCisgKgkJRXZhbHVh dGUgbm9uLWNvbnN0YW50IGJhY2t3YXJkLXJlYWNoIG9mZnNldHMgYXQgZXhlY3V0b3IgaW5pdCB0 aW1lLgorICoKKyAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXRLaW5k IHRvIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwKKyAqIGJlY2F1c2Ugc29tZSBvZmZzZXQgaW4g UFJFViwgTEFTVC13aXRoLW9mZnNldCwgb3IgY29tcG91bmQgUFJFVl9MQVNULworICogTkVYVF9M QVNUIGNvbnRhaW5zIGEgcGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgogICoK LSAqIENhbGxlZCB3aGVuIHRoZSBwbGFubmVyIHNldCBuYXZNYXhPZmZzZXQgdG8gUlBSX05BVl9P RkZTRVRfTkVFRFNfRVZBTAotICogYmVjYXVzZSBzb21lIFBSRVYgb2Zmc2V0IGNvbnRhaW5zIGEg cGFyYW1ldGVyIG9yIG5vbi1mb2xkYWJsZSBleHByZXNzaW9uLgotICogV2Fsa3MgdGhlIG9yaWdp bmFsIGRlZmluZUNsYXVzZSBleHByZXNzaW9uIHRyZWVzLCBjb21waWxlcyBhbmQgZXZhbHVhdGVz Ci0gKiBlYWNoIFBSRVYgb2Zmc2V0X2FyZywgYW5kIHN0b3JlcyB0aGUgbWF4aW11bSBpbiB3aW5z dGF0ZS0+bmF2TWF4T2Zmc2V0LgorICogT24gb3ZlcmZsb3csIHNldHMgbmF2TWF4T2Zmc2V0S2lu ZCB0byBSUFJfTkFWX09GRlNFVF9SRVRBSU5fQUxMIHNvIHRoYXQKKyAqIHR1cGxlc3RvcmUgdHJp bSBpcyBkaXNhYmxlZCBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbi4KICAqLwogc3RhdGljIHZvaWQK IGV2YWxfbmF2X21heF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZp bmVDbGF1c2UpCiB7Ci0JRXhwckNvbnRleHQgKmVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBz X0V4cHJDb250ZXh0OwotCUxpc3QJICAgKm9mZnNldHMgPSBOSUw7CisJRXZhbE5hdk1heENvbnRl eHQgY3R4OwogCUxpc3RDZWxsICAgKmxjOwotCWludDY0CQltYXhPZmZzZXQgPSAwOwogCi0JLyog Q29sbGVjdCBhbGwgUFJFViBvZmZzZXQgZXhwcmVzc2lvbnMgZnJvbSBERUZJTkUgY2xhdXNlICov CisJY3R4LndpbnN0YXRlID0gd2luc3RhdGU7CisJY3R4Lm1heE9mZnNldCA9IDA7CisJY3R4Lm92 ZXJmbG93ID0gZmFsc2U7CisKIAlmb3JlYWNoKGxjLCBkZWZpbmVDbGF1c2UpCiAJewogCQlUYXJn ZXRFbnRyeSAqdGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxjKTsKIAotCQljb2xsZWN0X3By ZXZfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJm9mZnNldHMpOworCQlldmFsX25h dl9tYXhfb2Zmc2V0X3dhbGtlcigoTm9kZSAqKSB0ZS0+ZXhwciwgJmN0eCk7CiAJfQogCi0JLyog RXZhbHVhdGUgZWFjaCBvZmZzZXQgYW5kIGZpbmQgbWF4aW11bSAqLwotCWZvcmVhY2gobGMsIG9m ZnNldHMpCisJaWYgKGN0eC5vdmVyZmxvdykKIAl7Ci0JCUV4cHIJICAgKm9mZnNldF9leHByID0g KEV4cHIgKikgbGZpcnN0KGxjKTsKLQkJRXhwclN0YXRlICAqZXN0YXRlOwotCQlEYXR1bQkJdmFs OwotCQlib29sCQlpc251bGw7Ci0JCWludDY0CQlvZmZzZXQ7CisJCXdpbnN0YXRlLT5uYXZNYXhP ZmZzZXRLaW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJd2luc3RhdGUtPm5hdk1h eE9mZnNldCA9IDA7CisJfQorCWVsc2UKKwl7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXRLaW5k ID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCXdpbnN0YXRlLT5uYXZNYXhPZmZzZXQgPSBjdHgu bWF4T2Zmc2V0OworCX0KK30KIAotCQllc3RhdGUgPSBFeGVjSW5pdEV4cHIob2Zmc2V0X2V4cHIs IChQbGFuU3RhdGUgKikgd2luc3RhdGUpOwotCQl2YWwgPSBFeGVjRXZhbEV4cHJTd2l0Y2hDb250 ZXh0KGVzdGF0ZSwgZWNvbnRleHQsICZpc251bGwpOwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlXaW5k b3dBZ2dTdGF0ZSAqd2luc3RhdGU7CisJaW50NjQJCW1pbk9mZnNldDsKKwlib29sCQlmb3VuZDsK K30gRXZhbE5hdkZpcnN0Q29udGV4dDsKIAotCQkvKgotCQkgKiBOVUxMIG9yIG5lZ2F0aXZlIG9m ZnNldHMgd2lsbCBjYXVzZSBhIHJ1bnRpbWUgZXJyb3Igd2hlbiBQUkVWIGlzCi0JCSAqIGFjdHVh bGx5IGV2YWx1YXRlZC4gIEZvciB0cmltIHB1cnBvc2VzLCB0cmVhdCB0aGVtIGFzIDAuCi0JCSAq LwotCQlpZiAoaXNudWxsKQotCQkJY29udGludWU7CisvKgorICogZXZhbF9uYXZfZmlyc3Rfb2Zm c2V0X3dhbGtlcgorICoJCVdhbGsgZXhwcmVzc2lvbiB0cmVlIGV2YWx1YXRpbmcgZm9yd2FyZC1m cm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMuCisgKgorICogSGFuZGxlcyBzaW1wbGUgRklSU1QgYW5k IGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVC4KKyAqLworc3RhdGljIGJvb2wKK2V2YWxf bmF2X2ZpcnN0X29mZnNldF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY3R4KQoreworCUV2YWxO YXZGaXJzdENvbnRleHQgKmNvbnRleHQgPSAoRXZhbE5hdkZpcnN0Q29udGV4dCAqKSBjdHg7CiAK LQkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQ2NCh2YWwpOwotCQlpZiAob2Zmc2V0IDwgMCkKLQkJCWNv bnRpbnVlOworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKworCWlmIChJc0Eo bm9kZSwgUlBSTmF2RXhwcikpCisJeworCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAq KSBub2RlOworCQlpbnQ2NAkJY29tYmluZWQgPSBJTlQ2NF9NQVg7CiAKLQkJaWYgKG9mZnNldCA+ IG1heE9mZnNldCkKLQkJCW1heE9mZnNldCA9IG9mZnNldDsKKwkJaWYgKG5hdi0+a2luZCA9PSBS UFJfTkFWX0ZJUlNUKQorCQl7CisJCQljb250ZXh0LT5mb3VuZCA9IHRydWU7CisJCQljb21iaW5l ZCA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJCQkJCQkJ CSAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJfQorCQllbHNlIGlmIChuYXYtPmtpbmQgPT0gUlBS X05BVl9QUkVWX0ZJUlNUIHx8CisJCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfRklSU1Qp CisJCXsKKwkJCWludDY0CQlpbm5lciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+ d2luc3RhdGUsCisJCQkJCQkJCQkJCQkJICAgbmF2LT5vZmZzZXRfYXJnLCAwKTsKKwkJCWludDY0 CQlvdXRlciA9IGV2YWxfbmF2X29mZnNldF9oZWxwZXIoY29udGV4dC0+d2luc3RhdGUsCisJCQkJ CQkJCQkJCQkJICAgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJnLCAxKTsKKworCQkJY29udGV4dC0+ Zm91bmQgPSB0cnVlOworCQkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX1BSRVZfRklSU1QpCisJ CQl7CisJCQkJLyoKKwkJCQkgKiBjb21iaW5lZCA9IGlubmVyIC0gb3V0ZXIuICBCb3RoIGFyZSBu b24tbmVnYXRpdmUsIHNvIHRoZQorCQkJCSAqIHJlc3VsdCA+PSAtSU5UNjRfTUFYLCB3aGljaCBj YW5ub3QgdW5kZXJmbG93IGludDY0LgorCQkJCSAqLworCQkJCWNvbWJpbmVkID0gaW5uZXIgLSBv dXRlcjsKKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQkvKgorCQkJCSAqIE5FWFRfRklSU1Q6IGNv bWJpbmVkID0gaW5uZXIgKyBvdXRlci4gIFRoaXMgY2FuIG92ZXJmbG93LAorCQkJCSAqIGJ1dCB0 aGUgcmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdCBuZXZlciB1cGRhdGVzCisJCQkJICogbWlu T2Zmc2V0ICh3aGljaCB0cmFja3MgdGhlIG1pbmltdW0pLiAgQ2xhbXAgdG8gSU5UNjRfTUFYCisJ CQkJICogb24gb3ZlcmZsb3cuCisJCQkJICovCisJCQkJaWYgKHBnX2FkZF9zNjRfb3ZlcmZsb3co aW5uZXIsIG91dGVyLCAmY29tYmluZWQpKQorCQkJCQljb21iaW5lZCA9IElOVDY0X01BWDsKKwkJ CX0KKwkJfQorCisJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPm1pbk9mZnNldCkKKwkJCWNvbnRl eHQtPm1pbk9mZnNldCA9IGNvbWJpbmVkOworCisJCXJldHVybiBmYWxzZTsKIAl9CiAKLQl3aW5z dGF0ZS0+bmF2TWF4T2Zmc2V0ID0gbWF4T2Zmc2V0OworCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsIGV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIsIGN0eCk7Cit9CisKKy8q CisgKiBldmFsX25hdl9maXJzdF9vZmZzZXQKKyAqCQlFdmFsdWF0ZSBub24tY29uc3RhbnQgZm9y d2FyZC1mcm9tLW1hdGNoX3N0YXJ0IG9mZnNldHMgYXQgZXhlY3V0b3IKKyAqCQlpbml0IHRpbWUu CisgKgorICogQ2FsbGVkIHdoZW4gdGhlIHBsYW5uZXIgc2V0IG5hdkZpcnN0T2Zmc2V0S2luZCB0 byBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMCisgKiBiZWNhdXNlIHNvbWUgb2Zmc2V0IGluIEZJ UlNUIG9yIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCBjb250YWlucworICogYSBwYXJh bWV0ZXIgb3Igbm9uLWZvbGRhYmxlIGV4cHJlc3Npb24uCisgKi8KK3N0YXRpYyB2b2lkCitldmFs X25hdl9maXJzdF9vZmZzZXQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBMaXN0ICpkZWZpbmVD bGF1c2UpCit7CisJRXZhbE5hdkZpcnN0Q29udGV4dCBjdHg7CisJTGlzdENlbGwgICAqbGM7CisK KwljdHgud2luc3RhdGUgPSB3aW5zdGF0ZTsKKwljdHgubWluT2Zmc2V0ID0gSU5UNjRfTUFYOwor CWN0eC5mb3VuZCA9IGZhbHNlOworCisJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQorCXsKKwkJ VGFyZ2V0RW50cnkgKnRlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQlsaXN0X2Zy ZWUob2Zmc2V0cyk7CisJCWV2YWxfbmF2X2ZpcnN0X29mZnNldF93YWxrZXIoKE5vZGUgKikgdGUt PmV4cHIsICZjdHgpOworCX0KKworCWlmIChjdHguZm91bmQgJiYgY3R4Lm1pbk9mZnNldCA8IElO VDY0X01BWCkKKwl7CisJCXdpbnN0YXRlLT5uYXZGaXJzdE9mZnNldEtpbmQgPSBSUFJfTkFWX09G RlNFVF9GSVhFRDsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0ID0gY3R4Lm1pbk9mZnNldDsK Kwl9CisJZWxzZQorCXsKKwkJd2luc3RhdGUtPm5hdkZpcnN0T2Zmc2V0S2luZCA9IFJQUl9OQVZf T0ZGU0VUX0ZJWEVEOworCQl3aW5zdGF0ZS0+bmF2Rmlyc3RPZmZzZXQgPSAwOworCX0KIH0KIAog LyoKQEAgLTQyMTAsOCArNDM5MywxNCBAQCB1cGRhdGVfcmVkdWNlZF9mcmFtZShXaW5kb3dPYmpl Y3Qgd2lub2JqLCBpbnQ2NCBwb3MpCiAKIAkJLyoKIAkJICogRXZhbHVhdGUgdmFyaWFibGVzIGZv ciB0aGlzIHJvdyAtIGRvbmUgb25seSBvbmNlLCBzaGFyZWQgYnkgYWxsCi0JCSAqIGNvbnRleHRz CisJCSAqIGNvbnRleHRzLgorCQkgKgorCQkgKiBTZXQgbmF2X21hdGNoX3N0YXJ0IHRvIHRoZSBo ZWFkIGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGZvcgorCQkgKiBGSVJTVC9MQVNUIG5hdmlnYXRp b24uICBNYXRjaF9zdGFydC1kZXBlbmRlbnQgdmFyaWFibGVzIChGSVJTVCwKKwkJICogTEFTVC13 aXRoLW9mZnNldCkgYXJlIHJlLWV2YWx1YXRlZCBwZXItY29udGV4dCBpbiBFeGVjUlBSUHJvY2Vz c1JvdworCQkgKiB3aGVuIG1hdGNoU3RhcnRSb3cgZGlmZmVycy4KIAkJICovCisJCXdpbnN0YXRl LT5uYXZfbWF0Y2hfc3RhcnQgPSB0YXJnZXRDdHgtPm1hdGNoU3RhcnRSb3c7CiAJCXJvd0V4aXN0 cyA9IG5mYV9ldmFsdWF0ZV9yb3cod2lub2JqLCBjdXJyZW50UG9zLCB3aW5zdGF0ZS0+bmZhVmFy TWF0Y2hlZCk7CiAKIAkJLyogTm8gbW9yZSByb3dzIGluIHBhcnRpdGlvbj8gRmluYWxpemUgYWxs IGNvbnRleHRzICovCkBAIC00Mjk5LDggKzQ0ODgsOCBAQCByZWdpc3Rlcl9yZXN1bHQ6CiAgKiB2 YXJNYXRjaGVkW2ldID0gdHJ1ZSBpZiB2YXJpYWJsZSBpIG1hdGNoZWQgYXQgY3VycmVudCByb3cu CiAgKgogICogVXNlcyAxLXNsb3QgbW9kZWw6IG9ubHkgZWN4dF9vdXRlcnR1cGxlIGlzIHNldCB0 byB0aGUgY3VycmVudCByb3cuCi0gKiBQUkVWL05FWFQgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5 IEVFT1BfUlBSX05BVl9TRVQvUkVTVE9SRSBvcGNvZGVzCi0gKiBkdXJpbmcgZXhwcmVzc2lvbiBl dmFsdWF0aW9uLCB3aGljaCB0ZW1wb3JhcmlseSBzd2FwIHRoZSBzbG90LgorICogUFJFVi9ORVhU L0ZJUlNUL0xBU1QgbmF2aWdhdGlvbiBpcyBoYW5kbGVkIGJ5IEVFT1BfUlBSX05BVl9TRVQvUkVT VE9SRQorICogb3Bjb2RlcyBkdXJpbmcgZXhwcmVzc2lvbiBldmFsdWF0aW9uLCB3aGljaCB0ZW1w b3JhcmlseSBzd2FwIHRoZSBzbG90LgogICovCiBzdGF0aWMgYm9vbAogbmZhX2V2YWx1YXRlX3Jv dyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsIGJvb2wgKnZhck1hdGNoZWQpCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCmluZGV4IGQyZjE5NTg0MDcwLi42NmQzN2I3ODg5OCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKQEAgLTIyMDcsNiArMjIwNyw4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1w bChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoZXhwci0+b2Zmc2V0X2Fy ZyAmJiBXQUxLKGV4cHItPm9mZnNldF9hcmcpKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAo ZXhwci0+Y29tcG91bmRfb2Zmc2V0X2FyZyAmJiBXQUxLKGV4cHItPmNvbXBvdW5kX29mZnNldF9h cmcpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNlIFRfU3Vic2Ny aXB0aW5nUmVmOgpAQCAtMzE0Niw2ICszMTQ4LDcgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3Jf aW1wbChOb2RlICpub2RlLAogCQkJCUZMQVRDT1BZKG5ld25vZGUsIG5hdiwgUlBSTmF2RXhwcik7 CiAJCQkJTVVUQVRFKG5ld25vZGUtPmFyZywgbmF2LT5hcmcsIEV4cHIgKik7CiAJCQkJTVVUQVRF KG5ld25vZGUtPm9mZnNldF9hcmcsIG5hdi0+b2Zmc2V0X2FyZywgRXhwciAqKTsKKwkJCQlNVVRB VEUobmV3bm9kZS0+Y29tcG91bmRfb2Zmc2V0X2FyZywgbmF2LT5jb21wb3VuZF9vZmZzZXRfYXJn LCBFeHByICopOwogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggOGVlM2NjZjZkMGQu LjAyZDUxMTI2OWFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVh dGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBA IC0xNiw2ICsxNiw3IEBACiAgKi8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAi Y29tbW9uL2ludC5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCkBAIC0yOTIsNiAr MjkzLDcgQEAgc3RhdGljIFdpbmRvd0FnZyAqbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdp bmRvd0NsYXVzZSAqd2MsCiAJCQkJCQkJCSBMaXN0ICpydW5Db25kaXRpb24sIFJQU2tpcFRvIHJw U2tpcFRvLAogCQkJCQkJCQkgUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0ZXJuLAogCQkJCQkJCQkg TGlzdCAqZGVmaW5lQ2xhdXNlLAorCQkJCQkJCQkgQml0bWFwc2V0ICpkZWZpbmVNYXRjaFN0YXJ0 RGVwZW5kZW50LAogCQkJCQkJCQkgTGlzdCAqcXVhbCwgYm9vbCB0b3BXaW5kb3csCiAJCQkJCQkJ CSBQbGFuICpsZWZ0dHJlZSk7CiBzdGF0aWMgR3JvdXAgKm1ha2VfZ3JvdXAoTGlzdCAqdGxpc3Qs IExpc3QgKnF1YWwsIGludCBudW1Hcm91cENvbHMsCkBAIC0yNDYyLDE5ICsyNDY0LDcyIEBAIGNy ZWF0ZV9taW5tYXhhZ2dfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTWluTWF4QWdnUGF0aCAqYmVz dF9wYXRoKQogfQogCiAvKgotICogbmF2X21heF9vZmZzZXRfd2Fsa2VyCi0gKgkJV2FsayBleHBy ZXNzaW9uIHRyZWUgdG8gZmluZCB0aGUgbWF4aW11bSBQUkVWIG9mZnNldC4KKyAqIE5hdk9mZnNl dENvbnRleHQgLSBjb250ZXh0IGZvciBjb21wdXRlX25hdl9vZmZzZXRzIHdhbGtlci4KICAqCi0g KiBPbmx5IFBSRVYgaXMgcmVsZXZhbnQgZm9yIHR1cGxlc3RvcmUgdHJpbSBzaW5jZSBpdCBsb29r cyBiYWNrd2FyZDsKLSAqIE5FWFQgbG9va3MgZm9yd2FyZCBhbmQgbmV2ZXIgcmVmZXJlbmNlcyBh bHJlYWR5LXRyaW1tZWQgcm93cy4KKyAqIENvbGxlY3RzIGJvdGggYmFja3dhcmQgcmVhY2ggKFBS RVYsIExBU1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kCisgKiBQUkVWX0xBU1QvTkVYVF9MQVNUKSBh bmQgZm9yd2FyZC1mcm9tLW1hdGNoLXN0YXJ0IHJlYWNoIChGSVJTVCwKKyAqIGNvbXBvdW5kIFBS RVZfRklSU1QvTkVYVF9GSVJTVCkgaW4gYSBzaW5nbGUgdHJlZSB3YWxrLgorICovCit0eXBlZGVm IHN0cnVjdCBOYXZPZmZzZXRDb250ZXh0Cit7CisJaW50NjQJCW1heE9mZnNldDsJCS8qIG1heCBQ UkVWL0xBU1QgYmFja3dhcmQgb2Zmc2V0ICg+PSAwKSAqLworCWJvb2wJCW1heE5lZWRzRXZhbDsJ Lyogbm9uLWNvbnN0YW50IFBSRVYvTEFTVCBvZmZzZXQgZm91bmQgKi8KKwlib29sCQltYXhPdmVy ZmxvdzsJLyogY29uc3RhbnQgb2Zmc2V0IG92ZXJmbG93IGRldGVjdGVkICovCisJaW50NjQJCWZp cnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0ICg+PSAwKSwgb3IgLTEgaWYgbm9uZSAqLwor CWJvb2wJCWhhc0ZpcnN0OwkJLyogYW55IEZJUlNUIG5vZGUgZm91bmQgKi8KKwlib29sCQlmaXJz dE5lZWRzRXZhbDsgLyogbm9uLWNvbnN0YW50IEZJUlNUIG9mZnNldCBmb3VuZCAqLworfSBOYXZP ZmZzZXRDb250ZXh0OworCisvKgorICogSGVscGVyOiBleHRyYWN0IGNvbnN0YW50IG9mZnNldCBm cm9tIGFuIGV4cHJlc3Npb24sIGhhbmRsaW5nIE5VTEwvbmVnYXRpdmUuCisgKiBJZiBleHByIGlz IE5VTEwsIHJldHVybnMgZGVmYXVsdE9mZnNldC4KKyAqIFJldHVybnMgdHJ1ZSBpZiBjb25zdGFu dCwgZmFsc2UgaWYgbm9uLWNvbnN0YW50IChQYXJhbSwgY2FzdCwgZXRjLikuCisgKi8KK3N0YXRp YyBib29sCitleHRyYWN0X2NvbnN0X29mZnNldChFeHByICpleHByLCBpbnQ2NCBkZWZhdWx0T2Zm c2V0LCBpbnQ2NCAqcmVzdWx0KQoreworCWlmIChleHByID09IE5VTEwpCisJeworCQkqcmVzdWx0 ID0gZGVmYXVsdE9mZnNldDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKElzQShleHByLCBD b25zdCkpCisJeworCQlDb25zdAkgICAqYyA9IChDb25zdCAqKSBleHByOworCisJCWlmIChjLT5j b25zdGlzbnVsbCkKKwkJCSpyZXN1bHQgPSAwOwkJLyogcnVudGltZSBlcnJvcjsgc2FmZSBwbGFj ZWhvbGRlciAqLworCQllbHNlCisJCXsKKwkJCSpyZXN1bHQgPSBEYXR1bUdldEludDY0KGMtPmNv bnN0dmFsdWUpOworCQkJaWYgKCpyZXN1bHQgPCAwKQorCQkJCSpyZXN1bHQgPSAwOwkvKiBydW50 aW1lIGVycm9yOyBzYWZlIHBsYWNlaG9sZGVyICovCisJCX0KKwkJcmV0dXJuIHRydWU7CisJfQor CisJcmV0dXJuIGZhbHNlOwkJCQkvKiBub24tY29uc3RhbnQgKi8KK30KKworLyoKKyAqIG5hdl9v ZmZzZXRfd2Fsa2VyCisgKgkJRXhwcmVzc2lvbiB0cmVlIHdhbGtlciBmb3IgY29tcHV0ZV9uYXZf b2Zmc2V0cy4KKyAqCisgKiBGb3IgZWFjaCBSUFJOYXZFeHByIGZvdW5kLCBleHRyYWN0IGl0cyBj b25zdGFudCBvZmZzZXQocykgYW5kIHVwZGF0ZSB0aGUKKyAqIE5hdk9mZnNldENvbnRleHQgd2l0 aCB0aGUgbWF4aW11bSBiYWNrd2FyZCByZWFjaCAobWF4T2Zmc2V0KSBhbmQgbWluaW11bQorICog Zm9yd2FyZCByZWFjaCAoZmlyc3RPZmZzZXQpLiAgSGFuZGxlcyBzaW1wbGUgbmF2aWdhdGlvbiAo UFJFViwgTkVYVCwKKyAqIEZJUlNULCBMQVNUKSBhbmQgY29tcG91bmQgZm9ybXMgKFBSRVZfRklS U1QsIE5FWFRfRklSU1QsIFBSRVZfTEFTVCwKKyAqIE5FWFRfTEFTVCkgYnkgY29tYmluaW5nIGlu bmVyIGFuZCBvdXRlciBvZmZzZXRzLgogICoKLSAqIFJldHVybnMgdHJ1ZSAodG8gc3RvcCB3YWxr aW5nKSBpZiBhIG5vbi1jb25zdGFudCBQUkVWIG9mZnNldCBpcyBmb3VuZCwKLSAqIGluIHdoaWNo IGNhc2UgKm1heE9mZnNldCBpcyBzZXQgdG8gLTEuICBPdGhlcndpc2UgYWNjdW11bGF0ZXMgdGhl Ci0gKiBtYXhpbXVtIGNvbnN0YW50IG9mZnNldCB2YWx1ZS4KKyAqIE5vbi1jb25zdGFudCBvZmZz ZXRzIHNldCBtYXhOZWVkc0V2YWwgb3IgZmlyc3ROZWVkc0V2YWwuICBPdmVyZmxvdyBzZXRzCisg KiBtYXhPdmVyZmxvdyBvciBmaXJzdE92ZXJmbG93IGZvciBSRVRBSU5fQUxMIGZhbGxiYWNrLgog ICovCiBzdGF0aWMgYm9vbAotbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0 ICptYXhPZmZzZXQpCituYXZfb2Zmc2V0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjdHgpCiB7 CisJTmF2T2Zmc2V0Q29udGV4dCAqY29udGV4dCA9IChOYXZPZmZzZXRDb250ZXh0ICopIGN0eDsK KwogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtMjQ4Miw4MSArMjUz NywyOTQgQEAgbmF2X21heF9vZmZzZXRfd2Fsa2VyKE5vZGUgKm5vZGUsIGludDY0ICptYXhPZmZz ZXQpCiAJewogCQlSUFJOYXZFeHByICpuYXYgPSAoUlBSTmF2RXhwciAqKSBub2RlOwogCi0JCS8q IE9ubHkgUFJFViBsb29rcyBiYWNrd2FyZDsgTkVYVCBpcyBpcnJlbGV2YW50IGZvciB0cmltICov Ci0JCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWKQorCQkvKgorCQkgKiBTaW1wbGUgUFJF Vih2LCBOKSBhbmQgTEFTVCh2LCBOKTogYmFja3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zLgor CQkgKiBMQVNUIHdpdGhvdXQgb2Zmc2V0ID0gY3VycmVudHBvcywgbm8gYmFja3dhcmQgcmVhY2gu IE5FWFQ6IGZvcndhcmQKKwkJICogb25seSwgaXJyZWxldmFudCBmb3IgdHJpbS4KKwkJICovCisJ CWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkobmF2LT5raW5kID09IFJQUl9O QVZfTEFTVCAmJiBuYXYtPm9mZnNldF9hcmcgIT0gTlVMTCkpCiAJCXsKLQkJCWludDY0CQlvZmZz ZXQ7Ci0KLQkJCWlmIChuYXYtPm9mZnNldF9hcmcgPT0gTlVMTCkKKwkJCWlmICghY29udGV4dC0+ bWF4TmVlZHNFdmFsKQogCQkJewotCQkJCS8qIDEtYXJnIGZvcm06IGltcGxpY2l0IG9mZnNldCBv ZiAxICovCi0JCQkJb2Zmc2V0ID0gMTsKKwkJCQlpbnQ2NAkJb2Zmc2V0OworCisJCQkJaWYgKGV4 dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMSwgJm9mZnNldCkpCisJCQkJewor CQkJCQlpZiAob2Zmc2V0ID4gY29udGV4dC0+bWF4T2Zmc2V0KQorCQkJCQkJY29udGV4dC0+bWF4 T2Zmc2V0ID0gb2Zmc2V0OworCQkJCX0KKwkJCQllbHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRz RXZhbCA9IHRydWU7CiAJCQl9Ci0JCQllbHNlIGlmIChJc0EobmF2LT5vZmZzZXRfYXJnLCBDb25z dCkpCisJCX0KKworCQkvKgorCQkgKiBTaW1wbGUgRklSU1QodiwgTik6IGZvcndhcmQgcmVhY2gg ZnJvbSBtYXRjaF9zdGFydC4gU21hbGxlciBOIG1lYW5zCisJCSAqIG9sZGVyIHJvd3MgbmVlZGVk LgorCQkgKi8KKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFWX0ZJUlNUKQorCQl7CisJCQljb250 ZXh0LT5oYXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwp CiAJCQl7Ci0JCQkJQ29uc3QJICAgKmMgPSAoQ29uc3QgKikgbmF2LT5vZmZzZXRfYXJnOworCQkJ CWludDY0CQlvZmZzZXQ7CiAKLQkJCQlpZiAoYy0+Y29uc3Rpc251bGwpCisJCQkJaWYgKGV4dHJh Y3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJm9mZnNldCkpCiAJCQkJewotCQkJ CQkvKgotCQkJCQkgKiBOVUxMIG9mZnNldCBjYXVzZXMgYSBydW50aW1lIGVycm9yLCBzbyB0aGlz IHBhdGggaXMKLQkJCQkJICogbmV2ZXIgYWN0dWFsbHkgcmVhY2hlZCBkdXJpbmcgZXhlY3V0aW9u LiAgVXNlIDAgYXMgYQotCQkJCQkgKiBzYWZlIHBsYWNlaG9sZGVyIGZvciBwbGFubmluZyBwdXJw b3Nlcy4KLQkJCQkJICovCi0JCQkJCW9mZnNldCA9IDA7CisJCQkJCWlmIChvZmZzZXQgPCBjb250 ZXh0LT5maXJzdE9mZnNldCkKKwkJCQkJCWNvbnRleHQtPmZpcnN0T2Zmc2V0ID0gb2Zmc2V0Owog CQkJCX0KIAkJCQllbHNlCisJCQkJCWNvbnRleHQtPmZpcnN0TmVlZHNFdmFsID0gdHJ1ZTsKKwkJ CX0KKwkJfQorCisJCS8qCisJCSAqIENvbXBvdW5kIFBSRVZfTEFTVCAvIE5FWFRfTEFTVDogYmFz ZSA9IGN1cnJlbnRwb3MuIFBSRVZfTEFTVCh2LCBOLAorCQkgKiBNKTogdGFyZ2V0ID0gY3VycmVu dHBvcyAtIE4gLSBNIOKGkiBsb29rYmFjayA9IE4gKyBNIE5FWFRfTEFTVCh2LAorCQkgKiBOLCBN KTogdGFyZ2V0ID0gY3VycmVudHBvcyAtIE4gKyBNIOKGkiBsb29rYmFjayA9IG1heChOIC0gTSwg MCkKKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0xBU1QgfHwKKwkJCW5h di0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkKKwkJeworCQkJaWYgKCFjb250ZXh0LT5tYXhO ZWVkc0V2YWwpCisJCQl7CisJCQkJaW50NjQJCWlubmVyLAorCQkJCQkJCW91dGVyLAorCQkJCQkJ CWNvbWJpbmVkOworCisJCQkJaWYgKGV4dHJhY3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2Fy ZywgMCwgJmlubmVyKSAmJgorCQkJCQlleHRyYWN0X2NvbnN0X29mZnNldChuYXYtPmNvbXBvdW5k X29mZnNldF9hcmcsIDEsICZvdXRlcikpCiAJCQkJewotCQkJCQlvZmZzZXQgPSBEYXR1bUdldElu dDY0KGMtPmNvbnN0dmFsdWUpOwotCQkJCQlpZiAob2Zmc2V0IDwgMCkKLQkJCQkJCW9mZnNldCA9 IDA7IC8qIG5lZ2F0aXZlIG9mZnNldCBjYXVzZXMgcnVudGltZSBlcnJvciAqLworCQkJCQlpZiAo bmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9MQVNUKQorCQkJCQl7CisJCQkJCQlpZiAocGdfYWRk X3M2NF9vdmVyZmxvdyhpbm5lciwgb3V0ZXIsICZjb21iaW5lZCkpCisJCQkJCQl7CisJCQkJCQkJ Y29udGV4dC0+bWF4T3ZlcmZsb3cgPSB0cnVlOworCQkJCQkJCXJldHVybiBmYWxzZTsKKwkJCQkJ CX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCQljb21iaW5lZCA9IChpbm5lciA+IG91dGVyKSA/ IGlubmVyIC0gb3V0ZXIgOiAwOworCisJCQkJCWlmIChjb21iaW5lZCA+IGNvbnRleHQtPm1heE9m ZnNldCkKKwkJCQkJCWNvbnRleHQtPm1heE9mZnNldCA9IGNvbWJpbmVkOwogCQkJCX0KKwkJCQll bHNlCisJCQkJCWNvbnRleHQtPm1heE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9Ci0JCQllbHNlCisJ CX0KKworCQkvKgorCQkgKiBDb21wb3VuZCBQUkVWX0ZJUlNUIC8gTkVYVF9GSVJTVDogYmFzZSA9 IG1hdGNoX3N0YXJ0LiBQUkVWX0ZJUlNUKHYsCisJCSAqIE4sIE0pOiB0YXJnZXQgPSBtYXRjaF9z dGFydCArIE4gLSBNIE5FWFRfRklSU1QodiwgTiwgTSk6IHRhcmdldCA9CisJCSAqIG1hdGNoX3N0 YXJ0ICsgTiArIE0gVGhlIGNvbWJpbmVkIG9mZnNldCAoTsKxTSkgZnJvbSBtYXRjaF9zdGFydCBj YW4KKwkJICogYmUgbmVnYXRpdmUsIG1lYW5pbmcgcm93cyBiZWZvcmUgbWF0Y2hfc3RhcnQgYXJl IG5lZWRlZC4KKwkJICovCisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWX0ZJUlNUIHx8 CisJCQluYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUX0ZJUlNUKQorCQl7CisJCQljb250ZXh0LT5o YXNGaXJzdCA9IHRydWU7CisKKwkJCWlmICghY29udGV4dC0+Zmlyc3ROZWVkc0V2YWwpCiAJCQl7 Ci0JCQkJLyoKLQkJCQkgKiBOb24tY29uc3RhbnQgb2Zmc2V0IChQYXJhbSwgc3RhYmxlIGZ1bmN0 aW9uLCBldGMuKS4gVGhlCi0JCQkJICogcGFyc2VyIGd1YXJhbnRlZXMgb2Zmc2V0IGlzIGEgcnVu dGltZSBjb25zdGFudCwgc28gaXQgY2FuCi0JCQkJICogYmUgZXZhbHVhdGVkIGF0IGV4ZWN1dG9y IGluaXQgdGltZS4KLQkJCQkgKi8KLQkJCQkqbWF4T2Zmc2V0ID0gUlBSX05BVl9PRkZTRVRfTkVF RFNfRVZBTDsKLQkJCQlyZXR1cm4gdHJ1ZTsJLyogc3RvcCB3YWxraW5nICovCisJCQkJaW50NjQJ CWlubmVyLAorCQkJCQkJCW91dGVyLAorCQkJCQkJCWNvbWJpbmVkOworCisJCQkJaWYgKGV4dHJh Y3RfY29uc3Rfb2Zmc2V0KG5hdi0+b2Zmc2V0X2FyZywgMCwgJmlubmVyKSAmJgorCQkJCQlleHRy YWN0X2NvbnN0X29mZnNldChuYXYtPmNvbXBvdW5kX29mZnNldF9hcmcsIDEsICZvdXRlcikpCisJ CQkJeworCQkJCQlpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCkKKwkJCQkJewor CQkJCQkJLyoKKwkJCQkJCSAqIGNvbWJpbmVkID0gaW5uZXIgLSBvdXRlci4gIEJvdGggYXJlIG5v bi1uZWdhdGl2ZSwKKwkJCQkJCSAqIHNvIHRoZSByZXN1bHQgPj0gLUlOVDY0X01BWCwgd2hpY2gg Y2Fubm90IHVuZGVyZmxvdworCQkJCQkJICogaW50NjQuICBObyBvdmVyZmxvdyBjaGVjayBuZWVk ZWQuCisJCQkJCQkgKi8KKwkJCQkJCWNvbWJpbmVkID0gaW5uZXIgLSBvdXRlcjsKKwkJCQkJfQor CQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBORVhUX0ZJUlNUOiBjb21iaW5l ZCA9IGlubmVyICsgb3V0ZXIuICBUaGlzIGNhbgorCQkJCQkJICogb3ZlcmZsb3csIGJ1dCB0aGUg cmVzdWx0IGlzIGFsd2F5cyA+PSAwLCBzbyBpdAorCQkJCQkJICogbmV2ZXIgdXBkYXRlcyBmaXJz dE9mZnNldCAod2hpY2ggdHJhY2tzIHRoZQorCQkJCQkJICogbWluaW11bSkuICBDbGFtcCB0byBJ TlQ2NF9NQVggb24gb3ZlcmZsb3cuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChwZ19hZGRfczY0X292 ZXJmbG93KGlubmVyLCBvdXRlciwgJmNvbWJpbmVkKSkKKwkJCQkJCQljb21iaW5lZCA9IElOVDY0 X01BWDsKKwkJCQkJfQorCisJCQkJCWlmIChjb21iaW5lZCA8IGNvbnRleHQtPmZpcnN0T2Zmc2V0 KQorCQkJCQkJY29udGV4dC0+Zmlyc3RPZmZzZXQgPSBjb21iaW5lZDsKKwkJCQl9CisJCQkJZWxz ZQorCQkJCQljb250ZXh0LT5maXJzdE5lZWRzRXZhbCA9IHRydWU7CiAJCQl9CisJCX0KIAotCQkJ aWYgKG9mZnNldCA+ICptYXhPZmZzZXQpCi0JCQkJKm1heE9mZnNldCA9IG9mZnNldDsKKwkJLyog RG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gKi8KKwkJcmV0dXJuIGZhbHNlOwor CX0KKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIG5hdl9vZmZzZXRfd2Fs a2VyLCBjdHgpOworfQorCisvKgorICogY29tcHV0ZV9uYXZfb2Zmc2V0cworICoJCUNvbXB1dGUg bmF2aWdhdGlvbiBvZmZzZXRzIGZvciB0dXBsZXN0b3JlIHRyaW0gaW4gYSBzaW5nbGUgcGFzcy4K KyAqCisgKiBXYWxrcyBhbGwgREVGSU5FIGNsYXVzZSBleHByZXNzaW9ucyBvbmNlLCBjb21wdXRp bmc6CisgKiAgIC0gbWF4T2Zmc2V0OiBtYXggYmFja3dhcmQgcmVhY2ggZnJvbSBQUkVWLCBMQVNU LXdpdGgtb2Zmc2V0LAorICogICAgIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QKKyAqICAg LSBoYXNGaXJzdC9maXJzdE9mZnNldDogbWluIGZvcndhcmQtZnJvbS1tYXRjaC1zdGFydCByZWFj aCBmcm9tCisgKiAgICAgRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVAorICov CitzdGF0aWMgdm9pZAorY29tcHV0ZV9uYXZfb2Zmc2V0cyhMaXN0ICpkZWZpbmVDbGF1c2UsCisJ CQkJCVJQUk5hdk9mZnNldEtpbmQgKm1heEtpbmQsIGludDY0ICptYXhSZXN1bHQsCisJCQkJCWJv b2wgKmhhc0ZpcnN0LAorCQkJCQlSUFJOYXZPZmZzZXRLaW5kICpmaXJzdEtpbmQsIGludDY0ICpm aXJzdFJlc3VsdCkKK3sKKwlOYXZPZmZzZXRDb250ZXh0IGN0eDsKKwlMaXN0Q2VsbCAgICpsYzsK KworCWN0eC5tYXhPZmZzZXQgPSAwOworCWN0eC5tYXhOZWVkc0V2YWwgPSBmYWxzZTsKKwljdHgu bWF4T3ZlcmZsb3cgPSBmYWxzZTsKKwljdHguZmlyc3RPZmZzZXQgPSBJTlQ2NF9NQVg7CS8qIHNl bnRpbmVsOiBubyBGSVJTVCBmb3VuZCB5ZXQgKi8KKwljdHguaGFzRmlyc3QgPSBmYWxzZTsKKwlj dHguZmlyc3ROZWVkc0V2YWwgPSBmYWxzZTsKKworCWZvcmVhY2gobGMsIGRlZmluZUNsYXVzZSkK Kwl7CisJCVRhcmdldEVudHJ5ICp0ZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QobGMpOworCisJ CW5hdl9vZmZzZXRfd2Fsa2VyKChOb2RlICopIHRlLT5leHByLCAmY3R4KTsKKwl9CisKKwkvKiBN YXggYmFja3dhcmQgb2Zmc2V0ICovCisJaWYgKGN0eC5tYXhPdmVyZmxvdykKKwl7CisJCSptYXhL aW5kID0gUlBSX05BVl9PRkZTRVRfUkVUQUlOX0FMTDsKKwkJKm1heFJlc3VsdCA9IDA7CisJfQor CWVsc2UgaWYgKGN0eC5tYXhOZWVkc0V2YWwpCisJeworCQkqbWF4S2luZCA9IFJQUl9OQVZfT0ZG U0VUX05FRURTX0VWQUw7CisJCSptYXhSZXN1bHQgPSAwOworCX0KKwllbHNlCisJeworCQkqbWF4 S2luZCA9IFJQUl9OQVZfT0ZGU0VUX0ZJWEVEOworCQkqbWF4UmVzdWx0ID0gY3R4Lm1heE9mZnNl dDsKKwl9CisKKwkvKiBGaXJzdCBvZmZzZXQgKGNhbiBiZSBuZWdhdGl2ZSBmb3IgY29tcG91bmQg UFJFVl9GSVJTVCkgKi8KKwkqaGFzRmlyc3QgPSBjdHguaGFzRmlyc3Q7CisJaWYgKGN0eC5oYXNG aXJzdCkKKwl7CisJCWlmIChjdHguZmlyc3ROZWVkc0V2YWwpCisJCXsKKwkJCSpmaXJzdEtpbmQg PSBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOworCQkJKmZpcnN0UmVzdWx0ID0gMDsKKwkJfQor CQllbHNlIGlmIChjdHguZmlyc3RPZmZzZXQgPT0gSU5UNjRfTUFYKQorCQl7CisJCQkqZmlyc3RL aW5kID0gUlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSAwOwkvKiBvbmx5 IGltcGxpY2l0IEZJUlNUKHYpICovCisJCX0KKwkJZWxzZQorCQl7CisJCQkqZmlyc3RLaW5kID0g UlBSX05BVl9PRkZTRVRfRklYRUQ7CisJCQkqZmlyc3RSZXN1bHQgPSBjdHguZmlyc3RPZmZzZXQ7 IC8qIG1heSBiZSBuZWdhdGl2ZSAqLwogCQl9CisJfQorCWVsc2UKKwl7CisJCSpmaXJzdEtpbmQg PSBSUFJfTkFWX09GRlNFVF9GSVhFRDsKKwkJKmZpcnN0UmVzdWx0ID0gMDsKKwl9Cit9CiAKLQkJ LyogRG9uJ3Qgd2FsayBpbnRvIFJQUk5hdkV4cHIgY2hpbGRyZW4gLSBvZmZzZXRfYXJnIGFscmVh ZHkgaGFuZGxlZCAqLworLyoKKyAqIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5CisgKgkJQ2hl Y2sgaWYgYW4gZXhwcmVzc2lvbiB0cmVlIGNvbnRhaW5zIG5hdmlnYXRpb24gdGhhdCBkZXBlbmRz IG9uCisgKgkJbWF0Y2hfc3RhcnQ6IEZJUlNULCBMQVNULXdpdGgtb2Zmc2V0LCBvciBjb21wb3Vu ZCBQUkVWX0ZJUlNULworICoJCU5FWFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9m ZnNldC4gIFN1Y2ggZXhwcmVzc2lvbnMKKyAqCQlyZXF1aXJlIHBlci1jb250ZXh0IHJlLWV2YWx1 YXRpb24gZHVyaW5nIE5GQSBwcm9jZXNzaW5nLgorICoKKyAqIExBU1Qgd2l0aG91dCBvZmZzZXQg YWx3YXlzIHJlc29sdmVzIHRvIGN1cnJlbnRwb3MgYW5kIGlzCisgKiBtYXRjaF9zdGFydC1pbmRl cGVuZGVudC4KKyAqLworc3RhdGljIGJvb2wKK2hhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5KE5v ZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJu IGZhbHNlOworCisJaWYgKElzQShub2RlLCBSUFJOYXZFeHByKSkKKwl7CisJCVJQUk5hdkV4cHIg Km5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisKKwkJaWYgKG5hdi0+a2luZCA9PSBSUFJfTkFW X0ZJUlNUKQorCQkJcmV0dXJuIHRydWU7CisJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9MQVNU ICYmIG5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJLyogQ29t cG91bmQga2luZHMgd2l0aCBGSVJTVCBiYXNlIGRlcGVuZCBvbiBtYXRjaF9zdGFydCAqLworCQlp ZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFVl9GSVJTVCB8fAorCQkJbmF2LT5raW5kID09IFJQ Ul9OQVZfTkVYVF9GSVJTVCkKKwkJCXJldHVybiB0cnVlOworCisJCS8qCisJCSAqIFBSRVZfTEFT VC9ORVhUX0xBU1Q6IGlubmVyIGlzIExBU1QsIHdoaWNoIHVzZXMgY3VycmVudHBvcy4KKwkJICog bWF0Y2hfc3RhcnQtZGVwZW5kZW50IG9ubHkgaWYgaW5uZXIgaGFzIG9mZnNldCAoY2xhbXBlZCB0 bworCQkgKiBtYXRjaF9zdGFydCkuCisJCSAqLworCQlpZiAoKG5hdi0+a2luZCA9PSBSUFJfTkFW X1BSRVZfTEFTVCB8fAorCQkJIG5hdi0+a2luZCA9PSBSUFJfTkFWX05FWFRfTEFTVCkgJiYKKwkJ CW5hdi0+b2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJcmV0dXJuIHRydWU7CisKKwkJLyogQ2hlY2sg Y2hpbGRyZW4gKGFyZyBtYXkgY29udGFpbiBmdXJ0aGVyIG5hdiBleHByZXNzaW9ucykgKi8KKwkJ cmV0dXJuIGhhc19tYXRjaF9zdGFydF9kZXBlbmRlbmN5KChOb2RlICopIG5hdi0+YXJnLCBjb250 ZXh0KTsKIAl9CiAKLQlyZXR1cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBuYXZfbWF4 X29mZnNldF93YWxrZXIsIG1heE9mZnNldCk7CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxr ZXIobm9kZSwgaGFzX21hdGNoX3N0YXJ0X2RlcGVuZGVuY3ksIE5VTEwpOwogfQogCiAvKgotICog Y29tcHV0ZV9uYXZfbWF4X29mZnNldAotICoJCUNvbXB1dGUgdGhlIG1heGltdW0gUFJFViBvZmZz ZXQgZnJvbSBERUZJTkUgY2xhdXNlIGV4cHJlc3Npb25zLgorICogY29tcHV0ZV9tYXRjaF9zdGFy dF9kZXBlbmRlbnQKKyAqCQlCdWlsZCBhIEJpdG1hcHNldCBvZiBERUZJTkUgdmFyaWFibGUgaW5k aWNlcyB3aG9zZSBleHByZXNzaW9ucworICoJCWRlcGVuZCBvbiBtYXRjaF9zdGFydCAoY29udGFp biBGSVJTVCwgTEFTVC13aXRoLW9mZnNldCwgb3IKKyAqCQljb21wb3VuZCBQUkVWX0ZJUlNUL05F WFRfRklSU1QvUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkuCiAgKgotICogUmV0dXJu cyB0aGUgbWF4aW11bSBjb25zdGFudCBvZmZzZXQgZm91bmQsIG9yIC0xIGlmIGFueSBQUkVWIG9m ZnNldAotICogY2Fubm90IGJlIGRldGVybWluZWQgc3RhdGljYWxseS4gIE5FWFQgb2Zmc2V0cyBh cmUgaWdub3JlZCBzaW5jZSB0aGV5Ci0gKiBsb29rIGZvcndhcmQgYW5kIGRvbid0IGFmZmVjdCB0 dXBsZXN0b3JlIHRyaW0uCisgKiBWYXJpYWJsZXMgaW4gdGhpcyBzZXQgcmVxdWlyZSBwZXItY29u dGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBORkEKKyAqIHByb2Nlc3NpbmcsIGJlY2F1c2UgZGlm ZmVyZW50IGNvbnRleHRzIG1heSBoYXZlIGRpZmZlcmVudCBtYXRjaF9zdGFydAorICogdmFsdWVz LgogICovCi1zdGF0aWMgaW50NjQKLWNvbXB1dGVfbmF2X21heF9vZmZzZXQoTGlzdCAqZGVmaW5l Q2xhdXNlKQorc3RhdGljIEJpdG1hcHNldCAqCitjb21wdXRlX21hdGNoX3N0YXJ0X2RlcGVuZGVu dChMaXN0ICpkZWZpbmVDbGF1c2UpCiB7Ci0JaW50NjQJCW1heE9mZnNldCA9IDA7CisJQml0bWFw c2V0ICAqcmVzdWx0ID0gTlVMTDsKIAlMaXN0Q2VsbCAgICpsYzsKKwlpbnQJCQl2YXJJZHggPSAw OwogCiAJZm9yZWFjaChsYywgZGVmaW5lQ2xhdXNlKQogCXsKIAkJVGFyZ2V0RW50cnkgKnRlID0g KFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CiAKLQkJaWYgKG5hdl9tYXhfb2Zmc2V0X3dhbGtl cigoTm9kZSAqKSB0ZS0+ZXhwciwgJm1heE9mZnNldCkpCi0JCQlyZXR1cm4gbWF4T2Zmc2V0Owkv KiBORUVEU19FVkFMIG9yIFJFVEFJTl9BTEwgKi8KKwkJaWYgKGhhc19tYXRjaF9zdGFydF9kZXBl bmRlbmN5KChOb2RlICopIHRlLT5leHByLCBOVUxMKSkKKwkJCXJlc3VsdCA9IGJtc19hZGRfbWVt YmVyKHJlc3VsdCwgdmFySWR4KTsKKworCQl2YXJJZHgrKzsKIAl9CiAKLQlyZXR1cm4gbWF4T2Zm c2V0OworCXJldHVybiByZXN1bHQ7CiB9CiAKIC8qCkBAIC0yNTg2LDYgKzI4NTQsNyBAQCBjcmVh dGVfd2luZG93YWdnX3BsYW4oUGxhbm5lckluZm8gKnJvb3QsIFdpbmRvd0FnZ1BhdGggKmJlc3Rf cGF0aCkKIAlMaXN0CSAgICpkZWZpbmVWYXJpYWJsZUxpc3QgPSBOSUw7CiAJTGlzdAkgICAqZmls dGVyZWREZWZpbmVDbGF1c2UgPSBOSUw7CiAJUlBSUGF0dGVybiAqY29tcGlsZWRQYXR0ZXJuID0g TlVMTDsKKwlCaXRtYXBzZXQgICptYXRjaFN0YXJ0RGVwZW5kZW50ID0gTlVMTDsKIAogCiAJLyoK QEAgLTI2NDgsMTEgKzI5MTcsMTUgQEAgY3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZv ICpyb290LCBXaW5kb3dBZ2dQYXRoICpiZXN0X3BhdGgpCiAJCWJ1aWxkRGVmaW5lVmFyaWFibGVM aXN0KHdjLT5kZWZpbmVDbGF1c2UsICZkZWZpbmVWYXJpYWJsZUxpc3QpOwogCQlmaWx0ZXJlZERl ZmluZUNsYXVzZSA9IHdjLT5kZWZpbmVDbGF1c2U7CiAKKwkJLyogSWRlbnRpZnkgbWF0Y2hfc3Rh cnQtZGVwZW5kZW50IERFRklORSB2YXJpYWJsZXMgKi8KKwkJbWF0Y2hTdGFydERlcGVuZGVudCA9 IGNvbXB1dGVfbWF0Y2hfc3RhcnRfZGVwZW5kZW50KHdjLT5kZWZpbmVDbGF1c2UpOworCiAJCS8q IENvbXBpbGUgYW5kIG9wdGltaXplIFJQUiBwYXR0ZXJucyAqLwogCQljb21waWxlZFBhdHRlcm4g PSBidWlsZFJQUlBhdHRlcm4od2MtPnJwUGF0dGVybiwKIAkJCQkJCQkJCQkgIGRlZmluZVZhcmlh YmxlTGlzdCwKIAkJCQkJCQkJCQkgIHdjLT5ycFNraXBUbywKLQkJCQkJCQkJCQkgIHdjLT5mcmFt ZU9wdGlvbnMpOworCQkJCQkJCQkJCSAgd2MtPmZyYW1lT3B0aW9ucywKKwkJCQkJCQkJCQkgICFi bXNfaXNfZW1wdHkobWF0Y2hTdGFydERlcGVuZGVudCkpOwogCX0KIAogCS8qIEFuZCBmaW5hbGx5 IHdlIGNhbiBtYWtlIHRoZSBXaW5kb3dBZ2cgbm9kZSAqLwpAQCAtMjY3MCw2ICsyOTQzLDcgQEAg Y3JlYXRlX3dpbmRvd2FnZ19wbGFuKFBsYW5uZXJJbmZvICpyb290LCBXaW5kb3dBZ2dQYXRoICpi ZXN0X3BhdGgpCiAJCQkJCQkgIHdjLT5ycFNraXBUbywKIAkJCQkJCSAgY29tcGlsZWRQYXR0ZXJu LAogCQkJCQkJICBmaWx0ZXJlZERlZmluZUNsYXVzZSwKKwkJCQkJCSAgbWF0Y2hTdGFydERlcGVu ZGVudCwKIAkJCQkJCSAgYmVzdF9wYXRoLT5xdWFsLAogCQkJCQkJICBiZXN0X3BhdGgtPnRvcHdp bmRvdywKIAkJCQkJCSAgc3VicGxhbik7CkBAIC02NzQyLDYgKzcwMTYsNyBAQCBtYWtlX3dpbmRv d2FnZyhMaXN0ICp0bGlzdCwgV2luZG93Q2xhdXNlICp3YywKIAkJCSAgIExpc3QgKnJ1bkNvbmRp dGlvbiwgUlBTa2lwVG8gcnBTa2lwVG8sCiAJCQkgICBSUFJQYXR0ZXJuICpjb21waWxlZFBhdHRl cm4sCiAJCQkgICBMaXN0ICpkZWZpbmVDbGF1c2UsCisJCQkgICBCaXRtYXBzZXQgKmRlZmluZU1h dGNoU3RhcnREZXBlbmRlbnQsCiAJCQkgICBMaXN0ICpxdWFsLCBib29sIHRvcFdpbmRvdywgUGxh biAqbGVmdHRyZWUpCiB7CiAJV2luZG93QWdnICAqbm9kZSA9IG1ha2VOb2RlKFdpbmRvd0FnZyk7 CkBAIC02Nzc2LDggKzcwNTEsMTQgQEAgbWFrZV93aW5kb3dhZ2coTGlzdCAqdGxpc3QsIFdpbmRv d0NsYXVzZSAqd2MsCiAKIAlub2RlLT5kZWZpbmVDbGF1c2UgPSBkZWZpbmVDbGF1c2U7CiAKLQkv KiBDb21wdXRlIG1heCBQUkVWIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltIG9wdGltaXphdGlv biAqLwotCW5vZGUtPm5hdk1heE9mZnNldCA9IGNvbXB1dGVfbmF2X21heF9vZmZzZXQoZGVmaW5l Q2xhdXNlKTsKKwkvKiBTdG9yZSBwcmUtY29tcHV0ZWQgbWF0Y2hfc3RhcnQgZGVwZW5kZW5jeSBi aXRtYXBzZXQgKi8KKwlub2RlLT5kZWZpbmVNYXRjaFN0YXJ0RGVwZW5kZW50ID0gZGVmaW5lTWF0 Y2hTdGFydERlcGVuZGVudDsKKworCS8qIENvbXB1dGUgbmF2IG9mZnNldHMgZm9yIHR1cGxlc3Rv cmUgdHJpbSBvcHRpbWl6YXRpb24gKi8KKwljb21wdXRlX25hdl9vZmZzZXRzKGRlZmluZUNsYXVz ZSwKKwkJCQkJCSZub2RlLT5uYXZNYXhPZmZzZXRLaW5kLCAmbm9kZS0+bmF2TWF4T2Zmc2V0LAor CQkJCQkJJm5vZGUtPmhhc0ZpcnN0TmF2LAorCQkJCQkJJm5vZGUtPm5hdkZpcnN0T2Zmc2V0S2lu ZCwgJm5vZGUtPm5hdkZpcnN0T2Zmc2V0KTsKIAogCXBsYW4tPnRhcmdldGxpc3QgPSB0bGlzdDsK IAlwbGFuLT5sZWZ0dHJlZSA9IGxlZnR0cmVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vcnByLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwppbmRl eCBjMGU5ZDEzNGFhOS4uNzY3YTIxNDAxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jCkBA IC0xODkzLDcgKzE4OTMsOCBAQCBidWlsZERlZmluZVZhcmlhYmxlTGlzdChMaXN0ICpkZWZpbmVD bGF1c2UsIExpc3QgKipkZWZpbmVWYXJpYWJsZUxpc3QpCiAgKi8KIFJQUlBhdHRlcm4gKgogYnVp bGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJs ZUxpc3QsCi0JCQkJUlBTa2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMpCisJCQkJUlBT a2lwVG8gcnBTa2lwVG8sIGludCBmcmFtZU9wdGlvbnMsCisJCQkJYm9vbCBoYXNNYXRjaFN0YXJ0 RGVwZW5kZW50KQogewogCVJQUlBhdHRlcm4gKnJlc3VsdDsKIAlSUFJQYXR0ZXJuTm9kZSAqb3B0 aW1pemVkOwpAQCAtMTk0Nyw3ICsxOTQ4LDggQEAgYnVpbGRSUFJQYXR0ZXJuKFJQUlBhdHRlcm5O b2RlICpwYXR0ZXJuLCBMaXN0ICpkZWZpbmVWYXJpYWJsZUxpc3QsCiAJaGFzTGltaXRlZEZyYW1l ID0gKGZyYW1lT3B0aW9ucyAmIEZSQU1FT1BUSU9OX1JPV1MpICYmCiAJCSEoZnJhbWVPcHRpb25z ICYgRlJBTUVPUFRJT05fRU5EX1VOQk9VTkRFRF9GT0xMT1dJTkcpOwogCi0JaWYgKHJwU2tpcFRv ID09IFNUX1BBU1RfTEFTVF9ST1cgJiYgIWhhc0xpbWl0ZWRGcmFtZSkKKwlpZiAocnBTa2lwVG8g PT0gU1RfUEFTVF9MQVNUX1JPVyAmJiAhaGFzTGltaXRlZEZyYW1lICYmCisJCSFoYXNNYXRjaFN0 YXJ0RGVwZW5kZW50KQogCXsKIAkJLyogUnVudGltZSBjb25kaXRpb25zIG1ldCAtIGNoZWNrIHN0 cnVjdHVyYWwgYWJzb3JiYWJpbGl0eSAqLwogCQljb21wdXRlQWJzb3JiYWJpbGl0eShyZXN1bHQp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggZTE0ZmY0ZGM0OTQuLmFhNDVhOTg3MTNmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTc1NywzNSArNzU3LDc5IEBAIFBhcnNlRnVuY09y Q29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAog CWlmIChyZXRzZXQpCiAJCWNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChwc3RhdGUsIGxhc3Rfc3Jm LCBsb2NhdGlvbik7CiAKLQkvKiBuZXh0KCkgYW5kIHByZXYoKSBhcmUgb25seSBhbGxvd2VkIGlu IGEgV0lORE9XIERFRklORSBjbGF1c2UgKi8KKwkvKgorCSAqIFJQUiBuYXZpZ2F0aW9uIGZ1bmN0 aW9ucyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIGFyZSBvbmx5IG1lYW5pbmdmdWwKKwkgKiBpbnNp ZGUgYSBXSU5ET1cgREVGSU5FIGNsYXVzZS4KKwkgKgorCSAqIE91dHNpZGUgREVGSU5FLCB0aGVz ZSBwb2x5bW9ycGhpYyBwbGFjZWhvbGRlcnMgY2FuIHNoYWRvdyBjb2x1bW4gYWNjZXNzCisJICog dmlhIGZ1bmN0aW9uYWwgbm90YXRpb24gKGUuZy4sIGxhc3QoZikgbWVhbmluZyBmLmxhc3QpLiBG b3IgdGhlIDEtYXJnCisJICogZm9ybSwgdHJ5IGNvbHVtbiBwcm9qZWN0aW9uIGZpcnN0OyBpZiB0 aGF0IHN1Y2NlZWRzLCB1c2UgaXQgaW5zdGVhZC4KKwkgKiBPdGhlcndpc2UsIHJlcG9ydCBhIGNs ZWFyIHBhcnNlciBlcnJvci4KKwkgKi8KIAlpZiAoZmRyZXN1bHQgPT0gRlVOQ0RFVEFJTF9OT1JN QUwgJiYKIAkJcHN0YXRlLT5wX2V4cHJfa2luZCAhPSBFWFBSX0tJTkRfUlBSX0RFRklORSAmJgog CQkoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9PSBGX05FWFRfQU5ZRUxF TUVOVCB8fAotCQkgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwgZnVuY2lkID09 IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpKQorCQkgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5U X0lOVDggfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDggfHwKKwkJIGZ1bmNpZCA9 PSBGX0ZJUlNUX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTEFTVF9BTllFTEVNRU5UIHx8CisJ CSBmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UX0lOVDggfHwgZnVuY2lkID09IEZfTEFTVF9B TllFTEVNRU5UX0lOVDgpKQorCXsKKwkJLyogMS1hcmcgZm9ybTogdHJ5IGNvbHVtbiBwcm9qZWN0 aW9uIGJlZm9yZSBlcnJvcmluZyBvdXQgKi8KKwkJaWYgKG5hcmdzID09IDEgJiYgIWFnZ19zdGFy ICYmICFhZ2dfZGlzdGluY3QgJiYgb3ZlciA9PSBOVUxMICYmCisJCQlsaXN0X2xlbmd0aChmdW5j bmFtZSkgPT0gMSkKKwkJeworCQkJTm9kZQkgICAqcHJvamVjdGlvbjsKKworCQkJcHJvamVjdGlv biA9IFBhcnNlQ29tcGxleFByb2plY3Rpb24ocHN0YXRlLAorCQkJCQkJCQkJCQkJc3RyVmFsKGxp bml0aWFsKGZ1bmNuYW1lKSksCisJCQkJCQkJCQkJCQlsaW5pdGlhbChmYXJncyksCisJCQkJCQkJ CQkJCQlsb2NhdGlvbik7CisJCQlpZiAocHJvamVjdGlvbikKKwkJCQlyZXR1cm4gcHJvamVjdGlv bjsKKwkJfQorCisJCS8qIE5vdCBhIGNvbHVtbiBwcm9qZWN0aW9uIOKAlCByZXBvcnQgZXJyb3Ig Ki8KIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CiAJCQkJIGVycm1zZygiJXMgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiLAog CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFtZSkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRp b24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CiAKIAkvKiBidWlsZCB0aGUgYXBwcm9wcmlhdGUg b3V0cHV0IHN0cnVjdHVyZSAqLwogCWlmIChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX05PUk1BTCAm JgorCQlwc3RhdGUtPnBfZXhwcl9raW5kID09IEVYUFJfS0lORF9SUFJfREVGSU5FICYmCiAJCShm dW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5U IHx8Ci0JCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9O RVhUX0FOWUVMRU1FTlRfSU5UOCkpCisJCSBmdW5jaWQgPT0gRl9QUkVWX0FOWUVMRU1FTlRfSU5U OCB8fCBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCB8fAorCQkgZnVuY2lkID09IEZf RklSU1RfQU5ZRUxFTUVOVCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVMRU1FTlQgfHwKKwkJIGZ1 bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8fCBmdW5jaWQgPT0gRl9MQVNUX0FOWUVM RU1FTlRfSU5UOCkpCiAJewogCQkvKgotCQkgKiBQUkVWKCkgYW5kIE5FWFQoKSBhcmUgY29tcGls ZWQgaW50byBFRU9QX1JQUl9OQVZfU0VUIC8KLQkJICogRUVPUF9SUFJfTkFWX1JFU1RPUkUgb3Bj b2RlcyBpbnN0ZWFkIG9mIGEgbm9ybWFsIGZ1bmN0aW9uIGNhbGwuCi0JCSAqIFJlcHJlc2VudCB0 aGVtIGFzIFJQUk5hdkV4cHIgbm9kZXMgc28gdGhhdCBsYXRlciBzdGFnZXMgY2FuCi0JCSAqIGlk ZW50aWZ5IHRoZW0gd2l0aG91dCByZWx5aW5nIG9uIGZ1bmNpZCBjb21wYXJpc29ucy4KKwkJICog UlBSIG5hdmlnYXRpb24gZnVuY3Rpb25zIChQUkVWL05FWFQvRklSU1QvTEFTVCkgYXJlIGNvbXBp bGVkIGludG8KKwkJICogRUVPUF9SUFJfTkFWX1NFVCAvIEVFT1BfUlBSX05BVl9SRVNUT1JFIG9w Y29kZXMgaW5zdGVhZCBvZiBhIG5vcm1hbAorCQkgKiBmdW5jdGlvbiBjYWxsLiAgUmVwcmVzZW50 IHRoZW0gYXMgUlBSTmF2RXhwciBub2RlcyBzbyB0aGF0IGxhdGVyCisJCSAqIHN0YWdlcyBjYW4g aWRlbnRpZnkgdGhlbSB3aXRob3V0IHJlbHlpbmcgb24gZnVuY2lkIGNvbXBhcmlzb25zLgogCQkg Ki8KLQkJYm9vbAkJaXNfbmV4dCA9IChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQgfHwKLQkJ CQkJCQkgICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCWJvb2wJCWhhc19v ZmZzZXQgPSAoZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKLQkJCQkJCQkJICBm dW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlRfSU5UOCk7Ci0JCVJQUk5hdkV4cHIgKm5hdmV4cHIg PSBtYWtlTm9kZShSUFJOYXZFeHByKTsKKwkJUlBSTmF2S2luZAlraW5kOworCQlib29sCQloYXNf b2Zmc2V0OworCQlSUFJOYXZFeHByICpuYXZleHByOworCisJCWlmIChmdW5jaWQgPT0gRl9QUkVW X0FOWUVMRU1FTlQgfHwgZnVuY2lkID09IEZfUFJFVl9BTllFTEVNRU5UX0lOVDgpCisJCQlraW5k ID0gUlBSX05BVl9QUkVWOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9ORVhUX0FOWUVMRU1FTlQg fHwgZnVuY2lkID09IEZfTkVYVF9BTllFTEVNRU5UX0lOVDgpCisJCQlraW5kID0gUlBSX05BVl9O RVhUOworCQllbHNlIGlmIChmdW5jaWQgPT0gRl9GSVJTVF9BTllFTEVNRU5UIHx8IGZ1bmNpZCA9 PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCkKKwkJCWtpbmQgPSBSUFJfTkFWX0ZJUlNUOworCQll bHNlCisJCQlraW5kID0gUlBSX05BVl9MQVNUOworCisJCWhhc19vZmZzZXQgPSAoZnVuY2lkID09 IEZfUFJFVl9BTllFTEVNRU5UX0lOVDggfHwKKwkJCQkJICBmdW5jaWQgPT0gRl9ORVhUX0FOWUVM RU1FTlRfSU5UOCB8fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0ZJUlNUX0FOWUVMRU1FTlRfSU5UOCB8 fAorCQkJCQkgIGZ1bmNpZCA9PSBGX0xBU1RfQU5ZRUxFTUVOVF9JTlQ4KTsKKworCQluYXZleHBy ID0gbWFrZU5vZGUoUlBSTmF2RXhwcik7CiAKLQkJbmF2ZXhwci0+a2luZCA9IGlzX25leHQgPyBS UFJfTkFWX05FWFQgOiBSUFJfTkFWX1BSRVY7CisJCW5hdmV4cHItPmtpbmQgPSBraW5kOwogCQlu YXZleHByLT5hcmcgPSAoRXhwciAqKSBsaW5pdGlhbChmYXJncyk7CiAJCW5hdmV4cHItPm9mZnNl dF9hcmcgPSBoYXNfb2Zmc2V0ID8gKEV4cHIgKikgbHNlY29uZChmYXJncykgOiBOVUxMOwogCQlu YXZleHByLT5yZXN1bHR0eXBlID0gcmV0dHlwZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCBk MWUwMmU1MmU1My4uMDUwNzBjYjA0YmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTMzOSw4 ICszMzksOCBAQCB0cmFuc2Zvcm1EZWZpbmVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5k b3dDbGF1c2UgKndjLCBXaW5kb3dEZWYgKndpbmRlZiwKIAkJLyoKIAkJICogVHJhbnNmb3JtIHRo ZSBERUZJTkUgZXhwcmVzc2lvbi4gIFdlIG11c3QgTk9UIGFkZCB0aGUgd2hvbGUKIAkJICogZXhw cmVzc2lvbiB0byB0aGUgcXVlcnkgdGFyZ2V0bGlzdCwgYmVjYXVzZSBpdCBtYXkgY29udGFpbgot CQkgKiBSUFJOYXZFeHByIG5vZGVzIChQUkVWL05FWFQpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVh dGVkIGluc2lkZSB0aGUKLQkJICogb3duaW5nIFdpbmRvd0FnZy4KKwkJICogUlBSTmF2RXhwciBu b2RlcyAoUFJFVi9ORVhUL0ZJUlNUL0xBU1QpIHRoYXQgY2FuIG9ubHkgYmUgZXZhbHVhdGVkCisJ CSAqIGluc2lkZSB0aGUgb3duaW5nIFdpbmRvd0FnZy4KIAkJICoKIAkJICogSW5zdGVhZCwgd2Ug dHJhbnNmb3JtIHRoZSBleHByZXNzaW9uIGRpcmVjdGx5IGFuZCBvbmx5IGVuc3VyZSB0aGF0CiAJ CSAqIHRoZSBpbmRpdmlkdWFsIFZhciBub2RlcyBpdCByZWZlcmVuY2VzIGFyZSBwcmVzZW50IGlu IHRoZQpAQCAtNDI5LDE0ICs0MjksMjEgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAvKgogICog Y2hlY2tfcnByX25hdl9leHByCiAgKgkJVmFsaWRhdGUgYSBzaW5nbGUgUlBSTmF2RXhwciBub2Rl IGJ5IHdhbGtpbmcgaXRzIGFyZyBhbmQgb2Zmc2V0X2FyZwotICoJCXN1YnRyZWVzIGluIGEgc2lu Z2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgbmVzdGVkIFBSRVYvTkVYVCwgbWlzc2luZworICoJ CXN1YnRyZWVzIGluIGEgc2luZ2xlIHBhc3MgZWFjaC4gIENoZWNrcyBmb3IgaWxsZWdhbCBuZXN0 aW5nLCBtaXNzaW5nCiAgKgkJY29sdW1uIHJlZmVyZW5jZXMsIGFuZCBub24tY29uc3RhbnQgb2Zm c2V0IGV4cHJlc3Npb25zLgorICoKKyAqIE5lc3RpbmcgcnVsZXMgKFNRTCBzdGFuZGFyZCA1LjYu NCk6CisgKiAgIC0gUFJFVi9ORVhUIHdyYXBwaW5nIEZJUlNUL0xBU1Q6IGFsbG93ZWQgKGNvbXBv dW5kIG5hdmlnYXRpb24pCisgKiAgIC0gRklSU1QvTEFTVCB3cmFwcGluZyBQUkVWL05FWFQ6IHBy b2hpYml0ZWQKKyAqICAgLSBTYW1lLWNhdGVnb3J5IG5lc3RpbmcgKFBSRVYgaW5zaWRlIFBSRVYs IEZJUlNUIGluc2lkZSBGSVJTVCwgZXRjLik6CisgKiAgICAgcHJvaGliaXRlZAogICovCiB0eXBl ZGVmIHN0cnVjdAogewotCWJvb2wJCWhhc19uYXY7CQkvKiBSUFJOYXZFeHByIGZvdW5kIChuZXN0 aW5nKSAqLworCWludAkJCW5hdl9jb3VudDsJCS8qIG51bWJlciBvZiBSUFJOYXZFeHByIG5vZGVz IGZvdW5kICovCiAJYm9vbAkJaGFzX2NvbHVtbl9yZWY7IC8qIFZhciBmb3VuZCAqLwotfQkJCU5h dkNoZWNrUmVzdWx0OworCVJQUk5hdktpbmQJaW5uZXJfa2luZDsJCS8qIGtpbmQgb2YgZmlyc3Qg KG91dGVybW9zdCkgbmVzdGVkIFJQUk5hdkV4cHIgKi8KK30gTmF2Q2hlY2tSZXN1bHQ7CiAKIHN0 YXRpYyBib29sCiBuYXZfY2hlY2tfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCkBA IC00NDYsNyArNDUzLDExIEBAIG5hdl9jaGVja193YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29u dGV4dCkKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKElzQShub2Rl LCBSUFJOYXZFeHByKSkKLQkJcmVzdWx0LT5oYXNfbmF2ID0gdHJ1ZTsKKwl7CisJCWlmIChyZXN1 bHQtPm5hdl9jb3VudCA9PSAwKQorCQkJcmVzdWx0LT5pbm5lcl9raW5kID0gKChSUFJOYXZFeHBy ICopIG5vZGUpLT5raW5kOworCQlyZXN1bHQtPm5hdl9jb3VudCsrOworCX0KIAlpZiAoSXNBKG5v ZGUsIFZhcikpCiAJCXJlc3VsdC0+aGFzX2NvbHVtbl9yZWYgPSB0cnVlOwogCkBAIC00NTcsMTYg KzQ2OCw5MyBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcnByX25hdl9leHByKFJQUk5hdkV4cHIgKm5h diwgUGFyc2VTdGF0ZSAqcHN0YXRlKQogewogCU5hdkNoZWNrUmVzdWx0IHJlc3VsdDsKKwlib29s CQlvdXRlcl9pc19waHlzaWNhbCA9IChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJ CQkJCQkgbmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCk7CiAKIAkvKiBDaGVjayBhcmcgc3VidHJl ZTogbmVzdGluZyArIGNvbHVtbiByZWZlcmVuY2UgaW4gb25lIHdhbGsgKi8KIAltZW1zZXQoJnJl c3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOwogCSh2b2lkKSBuYXZfY2hlY2tfd2Fsa2VyKChOb2Rl ICopIG5hdi0+YXJnLCAmcmVzdWx0KTsKIAotCWlmIChyZXN1bHQuaGFzX25hdikKLQkJZXJlcG9y dChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0J CQkJIGVycm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkIiksCi0JCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJaWYgKHJlc3VsdC5uYXZf Y291bnQgPiAwKQorCXsKKwkJYm9vbAkJaW5uZXJfaXNfcGh5c2ljYWwgPSAocmVzdWx0LmlubmVy X2tpbmQgPT0gUlBSX05BVl9QUkVWIHx8CisJCQkJCQkJCQkJIHJlc3VsdC5pbm5lcl9raW5kID09 IFJQUl9OQVZfTkVYVCk7CisKKwkJaWYgKG91dGVyX2lzX3BoeXNpY2FsICYmICFpbm5lcl9pc19w aHlzaWNhbCkKKwkJeworCQkJLyoKKwkJCSAqIFBSRVYvTkVYVCB3cmFwcGluZyBGSVJTVC9MQVNU OiBjb21wb3VuZCBuYXZpZ2F0aW9uIHBlciBTUUwKKwkJCSAqIHN0YW5kYXJkIDUuNi40LiAgRmxh dHRlbiB0aGUgbmVzdGVkIFJQUk5hdkV4cHIgaW50byBhIHNpbmdsZQorCQkJICogY29tcG91bmQg bm9kZS4gIFRoZSBpbm5lciBSUFJOYXZFeHByIG11c3QgYmUgdGhlIGRpcmVjdCBhcmcgb2YKKwkJ CSAqIHRoZSBvdXRlcjsgZXhwcmVzc2lvbnMgbGlrZSBQUkVWKHZhbCArIEZJUlNUKHYpKSBhcmUg bm90IHZhbGlkCisJCQkgKiBjb21wb3VuZCBuYXZpZ2F0aW9uLgorCQkJICovCisJCQlSUFJOYXZF eHByICppbm5lcjsKKworCQkJLyogUmVqZWN0IHRyaXBsZS1vci1kZWVwZXIgbmVzdGluZyAoZS5n LiBQUkVWKEZJUlNUKFBSRVYoeCkpKSkgKi8KKwkJCWlmIChyZXN1bHQubmF2X2NvdW50ID4gMSkK KwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3QgYmUgbmVzdGVk IG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAiKSwKKwkJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYo RklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBj b21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24o cHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCisJCQlpZiAoIUlzQShuYXYtPmFyZywgUlBSTmF2 RXhwcikpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFY X0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb3BlcmF0aW9u IG11c3QgYmUgYSBkaXJlY3QgYXJndW1lbnQgb2YgdGhlIG91dGVyIG5hdmlnYXRpb24iKSwKKwkJ CQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJT VCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBuYXYtPmxvY2F0aW9uKSkpOworCQkJaW5u ZXIgPSAoUlBSTmF2RXhwciAqKSBuYXYtPmFyZzsKKworCQkJLyogRGV0ZXJtaW5lIGNvbXBvdW5k IGtpbmQgKi8KKwkJCWlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9QUkVWICYmIGlubmVyLT5raW5k ID09IFJQUl9OQVZfRklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0ZJUlNUOwor CQkJZWxzZSBpZiAobmF2LT5raW5kID09IFJQUl9OQVZfUFJFViAmJiBpbm5lci0+a2luZCA9PSBS UFJfTkFWX0xBU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9QUkVWX0xBU1Q7CisJCQllbHNl IGlmIChuYXYtPmtpbmQgPT0gUlBSX05BVl9ORVhUICYmIGlubmVyLT5raW5kID09IFJQUl9OQVZf RklSU1QpCisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0ZJUlNUOworCQkJZWxzZSBpZiAo bmF2LT5raW5kID09IFJQUl9OQVZfTkVYVCAmJiBpbm5lci0+a2luZCA9PSBSUFJfTkFWX0xBU1Qp CisJCQkJbmF2LT5raW5kID0gUlBSX05BVl9ORVhUX0xBU1Q7CisKKwkJCS8qIE1vdmUgb3V0ZXIg b2Zmc2V0IHRvIGNvbXBvdW5kX29mZnNldF9hcmcgKi8KKwkJCW5hdi0+Y29tcG91bmRfb2Zmc2V0 X2FyZyA9IG5hdi0+b2Zmc2V0X2FyZzsKKworCQkJLyogTW92ZSBpbm5lciBvZmZzZXQgYW5kIGFy ZyB1cCAqLworCQkJbmF2LT5vZmZzZXRfYXJnID0gaW5uZXItPm9mZnNldF9hcmc7CisJCQluYXYt PmFyZyA9IGlubmVyLT5hcmc7CisKKwkJCS8qIE5vIGZ1cnRoZXIgbmVzdGluZyBjaGVjayBuZWVk ZWQgLSBhbHJlYWR5IHZhbGlkYXRlZCAqLworCQkJcmV0dXJuOworCQl9CisJCWVsc2UgaWYgKCFv dXRlcl9pc19waHlzaWNhbCAmJiBpbm5lcl9pc19waHlzaWNhbCkKKwkJeworCQkJLyogRklSU1Qv TEFTVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgYnkgc3RhbmRhcmQgKi8KKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJ IGVycm1zZygiRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUIiksCisJ CQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJT VCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4iKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7CisJCX0KKwkJ ZWxzZSBpZiAob3V0ZXJfaXNfcGh5c2ljYWwgJiYgaW5uZXJfaXNfcGh5c2ljYWwpCisJCXsKKwkJ CS8qIFBSRVYvTkVYVCB3cmFwcGluZyBQUkVWL05FWFQ6IHByb2hpYml0ZWQgKi8KKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVy cm1zZygiUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQiKSwKKwkJCQkJ IGVycmhpbnQoIk9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkp LCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLiIpLAorCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKKwkJfQorCQllbHNl CisJCXsKKwkJCS8qIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZCAq LworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1Ip LAorCQkJCQkgZXJybXNnKCJGSVJTVCBhbmQgTEFTVCBjYW5ub3QgY29udGFpbiBGSVJTVCBvciBM QVNUIiksCisJCQkJCSBlcnJoaW50KCJPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwg TkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dl ZC4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIG5hdi0+bG9jYXRpb24pKSk7 CisJCX0KKwl9CiAJaWYgKCFyZXN1bHQuaGFzX2NvbHVtbl9yZWYpCiAJCWVyZXBvcnQoRVJST1Is CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLApAQCAtNDgzLDcgKzU3MSw3IEBA IGNoZWNrX3Jwcl9uYXZfZXhwcihSUFJOYXZFeHByICpuYXYsIFBhcnNlU3RhdGUgKnBzdGF0ZSkK IAkJCWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rpb25zKChOb2RlICopIG5hdi0+b2Zmc2V0X2FyZykp CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIlBSRVYvTkVYVCBvZmZzZXQgbXVzdCBiZSBhIHJ1bi10 aW1lIGNvbnN0YW50IiksCisJCQkJCSBlcnJtc2coInJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zm c2V0IG11c3QgYmUgYSBydW4tdGltZSBjb25zdGFudCIpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgbmF2LT5sb2NhdGlvbikpKTsKIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKaW5kZXggYTRmZTcyNTY0NmMuLjQ2NzczNmQ5MTQ2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCkBAIC0xMDEwNiwxNiArMTAxMDYsODMgQEAgZ2V0X3J1bGVfZXhwcihOb2RlICpu b2RlLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAJCWNhc2UgVF9SUFJOYXZFeHByOgogCQkJ ewogCQkJCVJQUk5hdkV4cHIgKm5hdiA9IChSUFJOYXZFeHByICopIG5vZGU7CisJCQkJY29uc3Qg Y2hhciAqb3V0ZXJfZnVuYyA9IE5VTEw7CisJCQkJY29uc3QgY2hhciAqaW5uZXJfZnVuYzsKIAot CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLAotCQkJCQkJCQkJICAgbmF2LT5raW5kID09 IFJQUl9OQVZfUFJFViA/ICJQUkVWKCIgOiAiTkVYVCgiKTsKLQkJCQlnZXRfcnVsZV9leHByKChO b2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOwotCQkJCWlmIChuYXYtPm9m ZnNldF9hcmcgIT0gTlVMTCkKKwkJCQlzd2l0Y2ggKG5hdi0+a2luZCkKIAkJCQl7Ci0JCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKLQkJCQkJZ2V0X3J1bGVfZXhwcigoTm9k ZSAqKSBuYXYtPm9mZnNldF9hcmcsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisJCQkJCWNhc2Ug UlBSX05BVl9QUkVWOgorCQkJCQkJaW5uZXJfZnVuYyA9ICJQUkVWKCI7CisJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBSUFJfTkFWX05FWFQ6CisJCQkJCQlpbm5lcl9mdW5jID0gIk5FWFQoIjsKKwkJ CQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfRklSU1Q6CisJCQkJCQlpbm5lcl9mdW5jID0g IkZJUlNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBSUFJfTkFWX0xBU1Q6CisJCQkJCQlp bm5lcl9mdW5jID0gIkxBU1QoIjsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIFJQUl9OQVZfUFJF Vl9GSVJTVDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiUFJFVigiOworCQkJCQkJaW5uZXJfZnVuYyA9 ICJGSVJTVCgiOworCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9QUkVWX0xBU1Q6CisJ CQkJCQlvdXRlcl9mdW5jID0gIlBSRVYoIjsKKwkJCQkJCWlubmVyX2Z1bmMgPSAiTEFTVCgiOwor CQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUlBSX05BVl9ORVhUX0ZJUlNUOgorCQkJCQkJb3V0ZXJf ZnVuYyA9ICJORVhUKCI7CisJCQkJCQlpbm5lcl9mdW5jID0gIkZJUlNUKCI7CisJCQkJCQlicmVh azsKKwkJCQkJY2FzZSBSUFJfTkFWX05FWFRfTEFTVDoKKwkJCQkJCW91dGVyX2Z1bmMgPSAiTkVY VCgiOworCQkJCQkJaW5uZXJfZnVuYyA9ICJMQVNUKCI7CisJCQkJCQlicmVhazsKKwkJCQkJZGVm YXVsdDoKKwkJCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlBSIG5hdmlnYXRpb24ga2lu ZDogJWQiLAorCQkJCQkJCSBuYXYtPmtpbmQpOworCQkJCQkJaW5uZXJfZnVuYyA9IE5VTEw7CS8q IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWlmIChv dXRlcl9mdW5jICE9IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBDb21wb3VuZDogUFJF VihGSVJTVChhcmcgWywgaW5uZXJfb2Zmc2V0XSkgWywKKwkJCQkJICogb3V0ZXJfb2Zmc2V0XSkK KwkJCQkJICovCisJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCBvdXRlcl9mdW5jKTsK KwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJCQlnZXRf cnVsZV9leHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJ CQlpZiAobmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2 LT5vZmZzZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOworCQkJCQl9 CisJCQkJCWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKKwkJCQkJaWYgKG5hdi0+Y29t cG91bmRfb2Zmc2V0X2FyZyAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKGJ1ZiwgIiwgIik7CisJCQkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIG5hdi0+Y29t cG91bmRfb2Zmc2V0X2FyZywKKwkJCQkJCQkJCSAgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwkJ CQkJfQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvQ2hhcihidWYsICcpJyk7CisJCQkJfQorCQkJCWVs c2UKKwkJCQl7CisJCQkJCS8qIFNpbXBsZTogRlVOQyhhcmcgWywgb2Zmc2V0XSkgKi8KKwkJCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIGlubmVyX2Z1bmMpOworCQkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIG5hdi0+YXJnLCBjb250ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCQlpZiAo bmF2LT5vZmZzZXRfYXJnICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoYnVmLCAiLCAiKTsKKwkJCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgbmF2LT5vZmZz ZXRfYXJnLCBjb250ZXh0LAorCQkJCQkJCQkJICBzaG93aW1wbGljaXQpOworCQkJCQl9CisJCQkJ CWFwcGVuZFN0cmluZ0luZm9DaGFyKGJ1ZiwgJyknKTsKIAkJCQl9Ci0JCQkJYXBwZW5kU3RyaW5n SW5mb0NoYXIoYnVmLCAnKScpOwogCQkJfQogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dp bmRvd2Z1bmNzLmMKaW5kZXggMDkxMjYwZDJjY2UuLjQyMGE0OTYyMzk1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvd2luZG93ZnVuY3MuYwpAQCAtNzg1LDMgKzc4NSw1OSBAQCB3aW5kb3dfbmV4dF9vZmZz ZXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBiZSB1c2Vk IGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVh Y2hlZCAqLwogfQorCisvKgorICogZmlyc3QKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQ UidzIEZJUlNUIG5hdmlnYXRpb24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3Ig ZGV0YWlscy4KKyAqLworRGF0dW0KK3dpbmRvd19maXJzdChQR19GVU5DVElPTl9BUkdTKQorewor CWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRF RCksCisJCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xh dXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVkICovCit9CisKKy8q CisgKiBsYXN0CisgKiBDYXRhbG9nIHBsYWNlaG9sZGVyIGZvciBSUFIncyBMQVNUIG5hdmlnYXRp b24gb3BlcmF0b3IuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4KKyAqLworRGF0 dW0KK3dpbmRvd19sYXN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJZXJlcG9ydChFUlJPUiwKKwkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coImxh c3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJUEdfUkVUVVJO X05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgorICogZmlyc3QodmFsdWUsIG9m ZnNldCkKKyAqIENhdGFsb2cgcGxhY2Vob2xkZXIgZm9yIFJQUidzIEZJUlNUIG5hdmlnYXRpb24g b3BlcmF0b3Igd2l0aCBvZmZzZXQuCisgKiBTZWUgd2luZG93X3ByZXYoKSBmb3IgZGV0YWlscy4K KyAqLworRGF0dW0KK3dpbmRvd19maXJzdF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwll cmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJIGVycm1zZygiZmlyc3QoKSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVz ZSIpKSk7CisJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLworfQorCisvKgor ICogbGFzdCh2YWx1ZSwgb2Zmc2V0KQorICogQ2F0YWxvZyBwbGFjZWhvbGRlciBmb3IgUlBSJ3Mg TEFTVCBuYXZpZ2F0aW9uIG9wZXJhdG9yIHdpdGggb2Zmc2V0LgorICogU2VlIHdpbmRvd19wcmV2 KCkgZm9yIGRldGFpbHMuCisgKi8KK0RhdHVtCit3aW5kb3dfbGFzdF9vZmZzZXQoUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwllcmVwb3J0KEVSUk9SLAorCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJIGVycm1zZygibGFzdCgpIGNhbiBvbmx5IGJlIHVzZWQgaW4g YSBERUZJTkUgY2xhdXNlIikpKTsKKwlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCByZWFjaGVk ICovCit9CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA4ZTk1MTY5YjdiMC4uNmQ3MGVkMjNh ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtMTA5ODQsNiArMTA5ODQsMTggQEAKIHsg b2lkID0+ICc4MTI5JywgZGVzY3IgPT4gJ25leHQgdmFsdWUgYXQgb2Zmc2V0JywKICAgcHJvbmFt ZSA9PiAnbmV4dCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2YnLCBwcm9y ZXR0eXBlID0+ICdhbnllbGVtZW50JywKICAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1lbnQgaW50 OCcsIHByb3NyYyA9PiAnd2luZG93X25leHRfb2Zmc2V0JyB9LAoreyBvaWQgPT4gJzgxMzAnLCBk ZXNjciA9PiAnZmlyc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ICdmaXJzdCcsIHBy b3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYW55ZWxlbWVudCcsCisgIHByb2FyZ3R5 cGVzID0+ICdhbnllbGVtZW50JywgcHJvc3JjID0+ICd3aW5kb3dfZmlyc3QnIH0sCit7IG9pZCA9 PiAnODEzMicsIGRlc2NyID0+ICdmaXJzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZzZXQnLAorICBw cm9uYW1lID0+ICdmaXJzdCcsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvaXNzdHJpY3QgPT4gJ2Yn LCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2FueWVsZW1l bnQgaW50OCcsIHByb3NyYyA9PiAnd2luZG93X2ZpcnN0X29mZnNldCcgfSwKK3sgb2lkID0+ICc4 MTMxJywgZGVzY3IgPT4gJ2xhc3QgdmFsdWUgaW4gbWF0Y2gnLAorICBwcm9uYW1lID0+ICdsYXN0 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdhbnllbGVtZW50JywKKyAgcHJv YXJndHlwZXMgPT4gJ2FueWVsZW1lbnQnLCBwcm9zcmMgPT4gJ3dpbmRvd19sYXN0JyB9LAoreyBv aWQgPT4gJzgxMzMnLCBkZXNjciA9PiAnbGFzdCB2YWx1ZSBpbiBtYXRjaCBhdCBvZmZzZXQnLAor ICBwcm9uYW1lID0+ICdsYXN0JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9pc3N0cmljdCA9PiAn ZicsIHByb3JldHR5cGUgPT4gJ2FueWVsZW1lbnQnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55ZWxl bWVudCBpbnQ4JywgcHJvc3JjID0+ICd3aW5kb3dfbGFzdF9vZmZzZXQnIH0sCiAKICMgZnVuY3Rp b25zIGZvciByYW5nZSB0eXBlcwogeyBvaWQgPT4gJzM4MzInLCBkZXNjciA9PiAnSS9PJywKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCmluZGV4IGZhYzM3Yzk2ODk2Li44MzQ4MDBhNDA2MiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjRXhwci5oCkBAIC02OTksMTAgKzY5OSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBF eHByRXZhbFN0ZXAKIAkJc3RydWN0CiAJCXsKIAkJCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsK LQkJCVJQUk5hdktpbmQJa2luZDsJLyogUFJFViBvciBORVhUICovCi0JCQlEYXR1bQkgICAqb2Zm c2V0X3ZhbHVlOwkvKiAyLWFyZzogcnVudGltZSBvZmZzZXQgdmFsdWUsIG9yCi0JCQkJCQkJCQkJ ICogTlVMTCAqLwotCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJLyogMi1hcmc6IHJ1bnRpbWUg b2Zmc2V0IG51bGwgZmxhZyAqLworCQkJUlBSTmF2S2luZAlraW5kOwkvKiBuYXZpZ2F0aW9uIGtp bmQgKHNpbXBsZSBvciBjb21wb3VuZCkgKi8KKwkJCURhdHVtCSAgICpvZmZzZXRfdmFsdWU7CS8q IG9mZnNldCB2YWx1ZShzKSwgb3IgTlVMTCAqLworCQkJYm9vbAkgICAqb2Zmc2V0X2lzbnVsbDsJ Lyogb2Zmc2V0IG51bGwgZmxhZyhzKSAqLworCQkJLyogRm9yIGNvbXBvdW5kIG5hdjogb2Zmc2V0 X3ZhbHVlWzBdID0gaW5uZXIsIFsxXSA9IG91dGVyICovCiAJCX0JCQlycHJfbmF2OwogCiAJCS8q IGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggZmY2 ZDdkNzBhNjAuLjYwMmI3MmE2ZTBkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtMjYzOCw2ICsy NjM4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93QWdnU3RhdGUKIAlTaXplCQluZmFTdGF0ZVNp emU7CS8qIHByZS1jYWxjdWxhdGVkIFJQUk5GQVN0YXRlIHNpemUgKi8KIAlib29sCSAgICpuZmFW YXJNYXRjaGVkOwkvKiBwZXItcm93IGNhY2hlOiB2YXJNYXRjaGVkW3ZhcklkXSBmb3IgdmFySWQK IAkJCQkJCQkJICogPCBudW1EZWZpbmVzICovCisJQml0bWFwc2V0ICAqZGVmaW5lTWF0Y2hTdGFy dERlcGVuZGVudDsJLyogREVGSU5FIHZhcnMgbmVlZGluZyBwZXItY29udGV4dAorCQkJCQkJCQkJ CQkgKiBldmFsdWF0aW9uCisJCQkJCQkJCQkJCSAqIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpICov CiAJYml0bWFwd29yZCAqbmZhVmlzaXRlZEVsZW1zOwkvKiBlbGVtSWR4IHZpc2l0ZWQgYml0bWFw IGZvciBjeWNsZQogCQkJCQkJCQkJICogZGV0ZWN0aW9uICovCiAJaW50CQkJbmZhVmlzaXRlZE5X b3JkczsJLyogbnVtYmVyIG9mIGJpdG1hcHdvcmRzIGluCkBAIC0yNjkyLDEyICsyNjk1LDE3IEBA IHR5cGVkZWYgc3RydWN0IFdpbmRvd0FnZ1N0YXRlCiAJVHVwbGVUYWJsZVNsb3QgKnRlbXBfc2xv dF8yOwogCiAJLyogUlBSIG5hdmlnYXRpb24gKi8KLQlpbnQ2NAkJbmF2TWF4T2Zmc2V0OwkvKiBt YXggUFJFViBvZmZzZXQ7IHNlZSBSUFJfTkFWX09GRlNFVF8qICovCisJUlBSTmF2T2Zmc2V0S2lu ZCBuYXZNYXhPZmZzZXRLaW5kOwkvKiBzdGF0dXMgb2YgbmF2TWF4T2Zmc2V0ICovCisJaW50NjQJ CW5hdk1heE9mZnNldDsJLyogbWF4IGJhY2t3YXJkIG5hdiBvZmZzZXQgKHdoZW4gRklYRUQpICov CisJYm9vbAkJaGFzRmlyc3ROYXY7CS8qIEZJUlNUKCkgcHJlc2VudCBpbiBERUZJTkUgKi8KKwlS UFJOYXZPZmZzZXRLaW5kIG5hdkZpcnN0T2Zmc2V0S2luZDsJLyogc3RhdHVzIG9mIG5hdkZpcnN0 T2Zmc2V0ICovCisJaW50NjQJCW5hdkZpcnN0T2Zmc2V0OyAvKiBtaW4gRklSU1QoKSBvZmZzZXQg KHdoZW4gRklYRUQpICovCiAJc3RydWN0IFdpbmRvd09iamVjdERhdGEgKm5hdl93aW5vYmo7CS8q IHdpbm9iaiBmb3IgUlBSIG5hdiBmZXRjaCAqLwogCWludDY0CQluYXZfc2xvdF9wb3M7CS8qIHBv c2l0aW9uIGNhY2hlZCBpbiBuYXZfc2xvdCwgb3IgLTEgKi8KLQlUdXBsZVRhYmxlU2xvdCAqbmF2 X3Nsb3Q7CS8qIHNsb3QgZm9yIFBSRVYvTkVYVCB0YXJnZXQgcm93ICovCisJVHVwbGVUYWJsZVNs b3QgKm5hdl9zbG90OwkvKiBzbG90IGZvciBQUkVWL05FWFQvRklSU1QvTEFTVCB0YXJnZXQgcm93 ICovCiAJVHVwbGVUYWJsZVNsb3QgKm5hdl9zYXZlZF9vdXRlcnR1cGxlOwkvKiBzYXZlZCBzbG90 IGR1cmluZyBuYXYgc3dhcCAqLwogCVR1cGxlVGFibGVTbG90ICpuYXZfbnVsbF9zbG90OwkvKiBh bGwgTlVMTCBzbG90ICovCisJaW50NjQJCW5hdl9tYXRjaF9zdGFydDsJLyogbWF0Y2hfc3RhcnQg Zm9yIEZJUlNUL0xBU1QgbmF2ICovCiAKIAkvKiBSUFIgY3VycmVudCBtYXRjaCByZXN1bHQgKi8K IAlib29sCQlycHJfbWF0Y2hfdmFsaWQ7CS8qIHRydWUgaWYgYSBtYXRjaCByZXN1bHQgaXMgc2V0 ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjkyNjYzNjg3YTYuLjFmZGY2MjU3NWNiIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC01ODYsOSArNTg2LDI0IEBAIHR5cGVkZWYgZW51bSBS UFNraXBUbwogCVNUX05PTkUsCQkJCQkvKiBubyBBRlRFUiBNQVRDSCBjbGF1c2U7IGRlZmF1bHQg Zm9yIG5vbi1SUFIKIAkJCQkJCQkJICogd2luZG93cyAqLwogCVNUX05FWFRfUk9XLAkJCQkvKiBT S0lQIFRPIE5FWFQgUk9XICovCi0JU1RfUEFTVF9MQVNUX1JPVywJCQkvKiBTS0lQIFRPIFBBU1Qg TEFTVCBST1cgKi8KKwlTVF9QQVNUX0xBU1RfUk9XCQkJLyogU0tJUCBUTyBQQVNUIExBU1QgUk9X ICovCiB9IFJQU2tpcFRvOwogCisvKgorICogUlBSTmF2T2Zmc2V0S2luZCAtIHN0YXR1cyBvZiBu YXZpZ2F0aW9uIG9mZnNldCBmb3IgdHVwbGVzdG9yZSB0cmltLgorICoKKyAqIFRoZSBwbGFubmVy IGNvbXB1dGVzIG5hdk1heE9mZnNldC9uYXZGaXJzdE9mZnNldCBmb3IgdHVwbGVzdG9yZSBtYXJr CisgKiBvcHRpbWl6YXRpb24uICBUaGlzIGVudW0gdHJhY2tzIHdoZXRoZXIgdGhlIHZhbHVlIGlz IGEgcmVzb2x2ZWQgY29uc3RhbnQsCisgKiBuZWVkcyBydW50aW1lIGV2YWx1YXRpb24sIG9yIGNh bm5vdCBiZSBkZXRlcm1pbmVkIChyZXRhaW4gYWxsIHJvd3MpLgorICovCit0eXBlZGVmIGVudW0g UlBSTmF2T2Zmc2V0S2luZAoreworCVJQUl9OQVZfT0ZGU0VUX0ZJWEVELAkJLyogcmVzb2x2ZWQg Y29uc3RhbnQ7IHVzZSB0aGUgb2Zmc2V0IHZhbHVlICovCisJUlBSX05BVl9PRkZTRVRfTkVFRFNf RVZBTCwJLyogbm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQgZXhlY3V0b3IKKwkJCQkJ CQkJICogaW5pdCAqLworCVJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJLyogY2Fubm90IGRldGVy bWluZTsgcmV0YWluIGFsbCByb3dzIChubyB0cmltKSAqLworfSBSUFJOYXZPZmZzZXRLaW5kOwor CiAvKgogICogUlBSUGF0dGVybk5vZGVUeXBlIC0gUm93IFBhdHRlcm4gUmVjb2duaXRpb24gcGF0 dGVybiBub2RlIHR5cGVzCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5u b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggMjdhMmU3YjQ4Yzcu LjkzY2U1MDVmMGQ0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAor KysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtMTM4NywxNCArMTM4NywzNCBA QCB0eXBlZGVmIHN0cnVjdCBXaW5kb3dBZ2cKIAlMaXN0CSAgICpkZWZpbmVDbGF1c2U7CiAKIAkv KgotCSAqIE1heGltdW0gUFJFViBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgbWFyayBvcHRpbWl6YXRp b24uID49IDA6IHN0YXRpY2FsbHkKLQkgKiBkZXRlcm1pbmVkIG1heCBvZmZzZXQgKG1hcmsgPSBj dXJyZW50cG9zIC0gb2Zmc2V0KS4KLQkgKiBSUFJfTkFWX09GRlNFVF9ORUVEU19FVkFMOiBoYXMg bm9uLWNvbnN0YW50IG9mZnNldDsgZXZhbHVhdGUgYXQKLQkgKiBleGVjdXRvciBpbml0LiAgUlBS X05BVl9PRkZTRVRfUkVUQUlOX0FMTDogbXVzdCByZXRhaW4gZW50aXJlIHBhcnRpdGlvbgotCSAq IChubyB0cmltIHBvc3NpYmxlKS4KKwkgKiBCaXRtYXBzZXQgb2YgREVGSU5FIHZhcmlhYmxlIGlu ZGljZXMgd2hvc2UgZXhwcmVzc2lvbnMgZGVwZW5kIG9uCisJICogbWF0Y2hfc3RhcnQgKGNvbnRh aW4gRklSU1QsIExBU1Qtd2l0aC1vZmZzZXQsIG9yIGNvbXBvdW5kCisJICogUFJFVl9GSVJTVC9O RVhUX0ZJUlNUL1BSRVZfTEFTVC9ORVhUX0xBU1Qgd2l0aCBvZmZzZXQpLiAgVmFyaWFibGVzIGlu CisJICogdGhpcyBzZXQgcmVxdWlyZSBwZXItY29udGV4dCByZS1ldmFsdWF0aW9uIGR1cmluZyBO RkEgcHJvY2Vzc2luZy4KIAkgKi8KKwlCaXRtYXBzZXQgICpkZWZpbmVNYXRjaFN0YXJ0RGVwZW5k ZW50OworCisJLyoKKwkgKiBOYXZpZ2F0aW9uIG9mZnNldCBzdGF0dXMgYW5kIHZhbHVlcyBmb3Ig dHVwbGVzdG9yZSBtYXJrIG9wdGltaXphdGlvbi4KKwkgKiBTZWUgUlBSTmF2T2Zmc2V0S2luZCBp biBub2Rlcy9wYXJzZW5vZGVzLmguCisJICoKKwkgKiBuYXZNYXhPZmZzZXQ6IG1heGltdW0gYmFj a3dhcmQgcmVhY2ggZnJvbSBjdXJyZW50cG9zIChjb250cmlidXRlZCBieQorCSAqIFBSRVYsIExB U1Qtd2l0aC1vZmZzZXQsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QpLiAgT25seSB2YWxp ZCB3aGVuCisJICogbmF2TWF4T2Zmc2V0S2luZCA9PSBSUFJfTkFWX09GRlNFVF9GSVhFRC4KKwkg KgorCSAqIG5hdkZpcnN0T2Zmc2V0OiBtaW5pbXVtIGZvcndhcmQgb2Zmc2V0IGZyb20gbWF0Y2hf c3RhcnQgKGNvbnRyaWJ1dGVkIGJ5CisJICogRklSU1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVY VF9GSVJTVCkuICBDYW4gYmUgbmVnYXRpdmUgZm9yIGNvbXBvdW5kCisJICogUFJFVl9GSVJTVC4g IE9ubHkgdmFsaWQgd2hlbiBuYXZGaXJzdE9mZnNldEtpbmQgPT0gUlBSX05BVl9PRkZTRVRfRklY RUQKKwkgKiBhbmQgaGFzRmlyc3ROYXYgPT0gdHJ1ZS4KKwkgKi8KKwlSUFJOYXZPZmZzZXRLaW5k IG5hdk1heE9mZnNldEtpbmQ7CiAJaW50NjQJCW5hdk1heE9mZnNldDsKIAorCS8qIHRydWUgaWYg RklSU1QtYmFzZWQgbmF2aWdhdGlvbiAoRklSU1QsIFBSRVZfRklSU1QsIE5FWFRfRklSU1QpIGlz IHVzZWQgKi8KKwlib29sCQloYXNGaXJzdE5hdjsKKwlSUFJOYXZPZmZzZXRLaW5kIG5hdkZpcnN0 T2Zmc2V0S2luZDsKKwlpbnQ2NAkJbmF2Rmlyc3RPZmZzZXQ7CisKIAkvKgogCSAqIGZhbHNlIGZv ciBhbGwgYXBhcnQgZnJvbSB0aGUgV2luZG93QWdnIHRoYXQncyBjbG9zZXN0IHRvIHRoZSByb290 IG9mCiAJICogdGhlIHBsYW4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOTQ3MjNhM2I5MDkuLjBh ZmNmYWNkNWQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNjUxLDI3ICs2NTEsNTAgQEAgdHlw ZWRlZiBzdHJ1Y3QgV2luZG93RnVuY1J1bkNvbmRpdGlvbgogLyoKICAqIFJQUk5hdkV4cHIKICAq Ci0gKiBSZXByZXNlbnRzIGEgUFJFVigpIG9yIE5FWFQoKSBuYXZpZ2F0aW9uIGNhbGwgaW4gYW4g UlBSIERFRklORSBjbGF1c2UuCisgKiBSZXByZXNlbnRzIGEgUFJFVi9ORVhUL0ZJUlNUL0xBU1Qg bmF2aWdhdGlvbiBjYWxsIGluIGFuIFJQUiBERUZJTkUgY2xhdXNlLgogICogQXQgZXhwcmVzc2lv biBjb21waWxlIHRpbWUgdGhpcyBpcyB0cmFuc2xhdGVkIGludG8gRUVPUF9SUFJfTkFWX1NFVCAv CiAgKiBFRU9QX1JQUl9OQVZfUkVTVE9SRSBvcGNvZGVzIHJhdGhlciB0aGFuIGEgbm9ybWFsIGZ1 bmN0aW9uIGNhbGwuCiAgKgotICoga2luZDogICAgICAgUlBSX05BVl9QUkVWIG9yIFJQUl9OQVZf TkVYVAotICogYXJnOiAgICAgICAgdGhlIGV4cHJlc3Npb24gdG8gZXZhbHVhdGUgYWdhaW5zdCB0 aGUgdGFyZ2V0IHJvdwotICogb2Zmc2V0X2FyZzogb3B0aW9uYWwgZXhwbGljaXQgb2Zmc2V0IGV4 cHJlc3Npb24gKDItYXJnIGZvcm0pOyBOVUxMIGZvcgotICogICAgICAgICAgICAgdGhlIDEtYXJn IGZvcm0gd2hpY2ggdXNlcyBhbiBpbXBsaWNpdCBvZmZzZXQgb2YgMQorICogU2ltcGxlIG5hdmln YXRpb24gKFBSRVYvTkVYVC9GSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgUlBSX05BVl9Q UkVWLCBSUFJfTkFWX05FWFQsIFJQUl9OQVZfRklSU1QsIG9yIFJQUl9OQVZfTEFTVAorICogICBh cmc6ICAgICAgICB0aGUgZXhwcmVzc2lvbiB0byBldmFsdWF0ZSBhZ2FpbnN0IHRoZSB0YXJnZXQg cm93CisgKiAgIG9mZnNldF9hcmc6IG9wdGlvbmFsIGV4cGxpY2l0IG9mZnNldCBleHByZXNzaW9u ICgyLWFyZyBmb3JtKTsgTlVMTCBmb3IKKyAqICAgICAgICAgICAgICAgdGhlIDEtYXJnIGZvcm0g KGltcGxpY2l0IG9mZnNldDogMSBmb3IgUFJFVi9ORVhULCAwIGZvcgorICogICAgICAgICAgICAg ICBGSVJTVC9MQVNUKQorICoKKyAqIENvbXBvdW5kIG5hdmlnYXRpb24gKFBSRVYvTkVYVCB3cmFw cGluZyBGSVJTVC9MQVNUKToKKyAqICAga2luZDogICAgICAgICAgICAgIFJQUl9OQVZfUFJFVl9G SVJTVCwgUFJFVl9MQVNULCBORVhUX0ZJUlNULCBORVhUX0xBU1QKKyAqICAgYXJnOiAgICAgICAg ICAgICAgIHRoZSBleHByZXNzaW9uIHRvIGV2YWx1YXRlIGFnYWluc3QgdGhlIGZpbmFsIHRhcmdl dCByb3cKKyAqICAgb2Zmc2V0X2FyZzogICAgICAgIGlubmVyIG9mZnNldCAoRklSU1QvTEFTVCks IE5VTEwgPSBpbXBsaWNpdCBkZWZhdWx0CisgKiAgIGNvbXBvdW5kX29mZnNldF9hcmc6IG91dGVy IG9mZnNldCAoUFJFVi9ORVhUKSwgTlVMTCA9IGltcGxpY2l0IGRlZmF1bHQKKyAqCisgKiBDb21w b3VuZCB0YXJnZXQgY29tcHV0YXRpb246CisgKiAgIFBSRVZfRklSU1Q6IChtYXRjaF9zdGFydCAr IGlubmVyKSAtIG91dGVyCisgKiAgIE5FWFRfRklSU1Q6IChtYXRjaF9zdGFydCArIGlubmVyKSAr IG91dGVyCisgKiAgIFBSRVZfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSAtIG91dGVyCisg KiAgIE5FWFRfTEFTVDogIChjdXJyZW50cG9zICAtIGlubmVyKSArIG91dGVyCiAgKi8KIHR5cGVk ZWYgZW51bSBSUFJOYXZLaW5kCiB7CiAJUlBSX05BVl9QUkVWLAogCVJQUl9OQVZfTkVYVCwKKwlS UFJfTkFWX0ZJUlNULAorCVJQUl9OQVZfTEFTVCwKKwkvKiBjb21wb3VuZDogb3V0ZXIoaW5uZXIo YXJnKSkgKi8KKwlSUFJfTkFWX1BSRVZfRklSU1QsCisJUlBSX05BVl9QUkVWX0xBU1QsCisJUlBS X05BVl9ORVhUX0ZJUlNULAorCVJQUl9OQVZfTkVYVF9MQVNUCiB9IFJQUk5hdktpbmQ7CiAKIHR5 cGVkZWYgc3RydWN0IFJQUk5hdkV4cHIKIHsKIAlFeHByCQl4cHI7Ci0JUlBSTmF2S2luZAlraW5k OwkJCS8qIFBSRVYgb3IgTkVYVCAqLworCVJQUk5hdktpbmQJa2luZDsJCQkvKiBuYXZpZ2F0aW9u IGtpbmQgKi8KIAlFeHByCSAgICphcmc7CQkJLyogYXJndW1lbnQgZXhwcmVzc2lvbiAqLwotCUV4 cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwgb3IgTlVMTCBmb3IgMS1h cmcgZm9ybSAqLworCUV4cHIJICAgKm9mZnNldF9hcmc7CQkvKiBvZmZzZXQgZXhwcmVzc2lvbiwg b3IgTlVMTCBmb3IgZGVmYXVsdCAqLworCUV4cHIJICAgKmNvbXBvdW5kX29mZnNldF9hcmc7CS8q IG91dGVyIG9mZnNldCBmb3IgY29tcG91bmQgbmF2LCBvcgorCQkJCQkJCQkJCSAqIE5VTEwgaWYg c2ltcGxlICovCiAJT2lkCQkJcmVzdWx0dHlwZTsJCS8qIHJlc3VsdCB0eXBlIChzYW1lIGFzIGFy ZydzIHR5cGUpICovCiAJLyogT0lEIG9mIGNvbGxhdGlvbiBvZiByZXN1bHQgKi8KIAlPaWQJCQly ZXN1bHRjb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jwci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Jw ci5oCmluZGV4IDAwYTI4YWJlMmI0Li4wYTE0Y2ZhZDc5YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3Jwci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9ycHIuaApAQCAt NTUsMTkgKzU1LDExIEBACiAjZGVmaW5lIFJQUkVsZW1Jc0ZpbihlKQkJCSgoZSktPnZhcklkID09 IFJQUl9WQVJJRF9GSU4pCiAjZGVmaW5lIFJQUkVsZW1DYW5Ta2lwKGUpCQkoKGUpLT5taW4gPT0g MCkKIAotLyoKLSAqIG5hdk1heE9mZnNldCBzZW50aW5lbCB2YWx1ZXMuCi0gKiBOb24tbmVnYXRp dmUgdmFsdWVzIHJlcHJlc2VudCBhIHN0YXRpY2FsbHkgZGV0ZXJtaW5lZCBtYXhpbXVtIFBSRVYg b2Zmc2V0LgotICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX05FRURTX0VWQUwJKC0xKQkvKiBo YXMgbm9uLWNvbnN0YW50IFBSRVYgb2Zmc2V0OwotCQkJCQkJCQkJCQkgKiBldmFsdWF0ZSBhdCBl eGVjdXRvciBpbml0ICovCi0jZGVmaW5lIFJQUl9OQVZfT0ZGU0VUX1JFVEFJTl9BTEwJKC0yKQkv KiBtdXN0IHJldGFpbiBlbnRpcmUgcGFydGl0aW9uCi0JCQkJCQkJCQkJCSAqIChlLmcuLCBmdXR1 cmUgRklSU1QvTEFTVCkgKi8KLQogZXh0ZXJuIExpc3QgKmNvbGxlY3RQYXR0ZXJuVmFyaWFibGVz KFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKTsKIGV4dGVybiB2b2lkIGJ1aWxkRGVmaW5lVmFyaWFi bGVMaXN0KExpc3QgKmRlZmluZUNsYXVzZSwKIAkJCQkJCQkJCUxpc3QgKipkZWZpbmVWYXJpYWJs ZUxpc3QpOwogZXh0ZXJuIFJQUlBhdHRlcm4gKmJ1aWxkUlBSUGF0dGVybihSUFJQYXR0ZXJuTm9k ZSAqcGF0dGVybiwgTGlzdCAqZGVmaW5lVmFyaWFibGVMaXN0LAotCQkJCQkJCQkgICBSUFNraXBU byBycFNraXBUbywgaW50IGZyYW1lT3B0aW9ucyk7CisJCQkJCQkJCSAgIFJQU2tpcFRvIHJwU2tp cFRvLCBpbnQgZnJhbWVPcHRpb25zLAorCQkJCQkJCQkgICBib29sIGhhc01hdGNoU3RhcnREZXBl bmRlbnQpOwogCiAjZW5kaWYJCQkJCQkJLyogT1BUSU1JWkVSX1JQUl9IICovCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Jwci5vdXQKaW5kZXggYzAyZGJkNGMwOGQuLjA0ZWMyNWQ0Y2Y1IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHIub3V0CkBAIC0xMDQwLDkgKzEwNDAsMTAgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQUkVWKFBSRVYocHJpY2Up KQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgYmUgbmVzdGVkCitFUlJPUjogIFBS RVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBORVhUCiBMSU5FIDc6ICAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihwcmljZSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVY VChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4K IC0tIE5lc3RlZCBORVhUCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawogV0lORE9XIHcgQVMgKApA QCAtMTA1Miw5ICsxMDUzLDEwIEBAIFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAg IERFRklORSBBIEFTIHByaWNlID4gTkVYVChORVhUKHByaWNlKSkKICk7Ci1FUlJPUjogIFBSRVYg YW5kIE5FWFQgY2Fubm90IGJlIG5lc3RlZAorRVJST1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBj b250YWluIFBSRVYgb3IgTkVYVAogTElORSA3OiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhU KE5FWFQocHJpY2UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAg T25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQoRklSU1QoKSksIGFuZCBORVhU KExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCiAtLSBQUkVWIG5lc3RlZCBpbnNp ZGUgTkVYVAogU0VMRUNUIHByaWNlIEZST00gc3RvY2sKIFdJTkRPVyB3IEFTICgKQEAgLTEwNjQs OSArMTA2NiwxMCBAQCBXSU5ET1cgdyBBUyAoCiAgICAgUEFUVEVSTiAoQSkKICAgICBERUZJTkUg QSBBUyBwcmljZSA+IE5FWFQoUFJFVihwcmljZSkpCiApOwotRVJST1I6ICBQUkVWIGFuZCBORVhU IGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3QgY29udGFpbiBQ UkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBBIEFTIHByaWNlID4gTkVYVChQUkVWKHBy aWNlKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIE9ubHkgUFJF VihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkp IGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gUFJFViBuZXN0ZWQgaW5zaWRlIGV4cHJl c3Npb24gaW5zaWRlIE5FWFQKIFNFTEVDVCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAo CkBAIC0xMDc2LDkgKzEwNzksMTAgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAg ICAgREVGSU5FIEEgQVMgcHJpY2UgPiBORVhUKHByaWNlICogUFJFVihwcmljZSkpCiApOwotRVJS T1I6ICBQUkVWIGFuZCBORVhUIGNhbm5vdCBiZSBuZXN0ZWQKK0VSUk9SOiAgUFJFViBhbmQgTkVY VCBjYW5ub3QgY29udGFpbiBQUkVWIG9yIE5FWFQKIExJTkUgNzogICAgIERFRklORSBBIEFTIHBy aWNlID4gTkVYVChwcmljZSAqIFBSRVYocHJpY2UpKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgT25seSBQUkVWKEZJUlNUKCkpLCBQUkVWKExBU1QoKSksIE5FWFQo RklSU1QoKSksIGFuZCBORVhUKExBU1QoKSkgY29tcG91bmQgZm9ybXMgYXJlIGFsbG93ZWQuCiAt LSBUcmlwbGUgbmVzdGluZzogZXJyb3IgcmVwb3J0ZWQgYXQgb3V0ZXJtb3N0IFBSRVYKIFNFTEVD VCBwcmljZSBGUk9NIHN0b2NrCiBXSU5ET1cgdyBBUyAoCkBAIC0xMDg4LDkgKzEwOTIsMTAgQEAg V0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgcHJpY2UgPiBQ UkVWKFBSRVYoUFJFVihwcmljZSkpKQogKTsKLUVSUk9SOiAgUFJFViBhbmQgTkVYVCBjYW5ub3Qg YmUgbmVzdGVkCitFUlJPUjogIFBSRVYgYW5kIE5FWFQgY2Fubm90IGNvbnRhaW4gUFJFViBvciBO RVhUCiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYoUFJFVihQUkVWKHByaWNl KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYo RklSU1QoKSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBj b21wb3VuZCBmb3JtcyBhcmUgYWxsb3dlZC4KIC0tIE5vIGNvbHVtbiByZWZlcmVuY2UgaW4gUFJF Vi9ORVhUIGFyZ3VtZW50CiAtLSBQUkVWKDEpOiBjb25zdGFudCBvbmx5LCBubyBjb2x1bW4gcmVm ZXJlbmNlCiBTRUxFQ1QgcHJpY2UgRlJPTSBzdG9jawpAQCAtMTEzNyw3ICsxMTQyLDcgQEAgV0lO RE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEpCiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwg cHJpY2UpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IGJlIGEgcnVuLXRp bWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBi ZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJTkUgQSBBUyBQUkVWKHByaWNl LCBwcmljZSkgPiAwCiAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBOb24tY29uc3RhbnQg b2Zmc2V0OiB2b2xhdGlsZSBmdW5jdGlvbiBhcyBvZmZzZXQKQEAgLTExNDksNyArMTE1NCw3IEBA IFdJTkRPVyB3IEFTICgKICAgICBQQVRURVJOIChBKQogICAgIERFRklORSBBIEFTIFBSRVYocHJp Y2UsIHJhbmRvbSgpOjppbnQpID4gMAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0 IGJlIGEgcnVuLXRpbWUgY29uc3RhbnQKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBv ZmZzZXQgbXVzdCBiZSBhIHJ1bi10aW1lIGNvbnN0YW50CiBMSU5FIDc6ICAgICBERUZJTkUgQSBB UyBQUkVWKHByaWNlLCByYW5kb20oKTo6aW50KSA+IDAKICAgICAgICAgICAgICAgICAgICAgICAg IF4KIC0tIE5vbi1jb25zdGFudCBvZmZzZXQ6IHN1YnF1ZXJ5IGFzIG9mZnNldApAQCAtMTQ0Miw3 ICsxNDQ3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBB IEFTIFBSRVYocHJpY2UsIC0xKSBJUyBOT1QgTlVMTAogKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9m ZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9u IG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQogLS0gMi1hcmcgUFJFVi9ORVhUOiBOVUxMIG9m ZnNldCAodHlwZWQpCiBTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHByaWNlLCBmaXJzdF92YWx1ZShw cmljZSkgT1ZFUiB3CiBGUk9NIHN0b2NrCkBAIC0xNDUyLDcgKzE0NTcsNyBAQCBXSU5ET1cgdyBB UyAoCiAgICAgUEFUVEVSTiAoQSspCiAgICAgREVGSU5FIEEgQVMgUFJFVihwcmljZSwgTlVMTDo6 aW50OCkgSVMgTk9UIE5VTEwKICk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3Qg YmUgbnVsbAorRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBi ZSBudWxsCiAtLSAyLWFyZyBQUkVWL05FWFQ6IE5VTEwgb2Zmc2V0ICh1bnR5cGVkKQogU0VMRUNU IGNvbXBhbnksIHRkYXRlLCBwcmljZSwgZmlyc3RfdmFsdWUocHJpY2UpIE9WRVIgdwogRlJPTSBz dG9jawpAQCAtMTQ2Miw3ICsxNDY3LDcgQEAgV0lORE9XIHcgQVMgKAogICAgIFBBVFRFUk4gKEEr KQogICAgIERFRklORSBBIEFTIFBSRVYocHJpY2UsIE5VTEwpIElTIE5PVCBOVUxMCiApOwotRVJS T1I6ICBQUkVWL05FWFQgb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0VSUk9SOiAgcm93IHBhdHRl cm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbnVsbAogLS0gMi1hcmcgUFJFVi9ORVhU OiBob3N0IHZhcmlhYmxlIG5lZ2F0aXZlIGFuZCBOVUxMCiBQUkVQQVJFIHRlc3RfcHJldl9vZmZz ZXQoaW50OCkgQVMKIFNFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2UsIGZpcnN0X3ZhbHVlKHBy aWNlKSBPVkVSIHcKQEAgLTE0NzQsOSArMTQ3OSw5IEBAIFdJTkRPVyB3IEFTICgKICAgICBERUZJ TkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsICQxKQogKTsKIEVYRUNVVEUgdGVzdF9wcmV2X29m ZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUK K0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRp dmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxMKTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9m ZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zm c2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxMT0NBVEUgdGVzdF9wcmV2X29mZnNldDsKIC0tIDIt YXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3aXRoIGV4cHJlc3Npb24gKDAgKyAkMSkKIFBS RVBBUkUgdGVzdF9wcmV2X29mZnNldChpbnQ4KSBBUwpAQCAtMTQ4OSw5ICsxNDk0LDkgQEAgV0lO RE9XIHcgQVMgKAogICAgIERFRklORSBBIEFTIHByaWNlID4gUFJFVihwcmljZSwgMCArICQxKQog KTsKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldCgtMSk7Ci1FUlJPUjogIFBSRVYvTkVYVCBvZmZz ZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBv ZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKIEVYRUNVVEUgdGVzdF9wcmV2X29mZnNldChOVUxM KTsKLUVSUk9SOiAgUFJFVi9ORVhUIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCitFUlJPUjogIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKIERFQUxMT0NBVEUg dGVzdF9wcmV2X29mZnNldDsKIC0tIDItYXJnIFBSRVYvTkVYVDogaG9zdCB2YXJpYWJsZSB3aXRo IHBvc2l0aXZlIHZhbHVlCiAtLSBFeGVyY2lzZXMgUlBSX05BVl9PRkZTRVRfTkVFRFNfRVZBTCAt PiBldmFsX25hdl9tYXhfb2Zmc2V0KCkgcGF0aApAQCAtMTYzMCw2ICsxNjM1LDYwNCBAQCBXSU5E T1cgdyBBUyAoCiAgY29tcGFueTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAogKDIwIHJvd3MpCiAKKy0tCistLSBGSVJTVC9MQVNUIG5hdmln YXRpb24KKy0tCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNsZSBiYWNr IHNvIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9ucy4KK0NS RUFURSBURU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBy cHJfbmF2IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2LDEwKTsK Ky0tIEZJUlNUKHZhbCkgPSBjb25zdGFudDogQiBtYXRjaGVzIHdoZW4gbWF0Y2hfc3RhcnQgaGFz IHZhbD0xMAorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IEE9aWQxLCBCPWlkMiwgRklSU1QodmFsKT0x MCDihpIgbWF0Y2ggezEsMn0KKy0tIG1hdGNoX3N0YXJ0PTMoMzApOiBBPWlkMywgQj1pZDQsIEZJ UlNUKHZhbCk9MzDiiaAxMCDihpIgbm8gbWF0Y2gKKy0tIG1hdGNoX3N0YXJ0PTQoMTApOiBBPWlk NCwgQj1pZDUsIEZJUlNUKHZhbCk9MTAg4oaSIG1hdGNoIHs0LDV9CitTRUxFQ1QgaWQsIHZhbCwg Zmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1s CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBC RVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgRklSU1QodmFsKSA9IDEwCispOworIGlkIHwgdmFsIHwgbWYgfCBtbCAKKy0t LS0rLS0tLS0rLS0tLSstLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAyCisgIDIgfCAgMjAgfCAgICB8 ICAgCisgIDMgfCAgMzAgfCAgICB8ICAgCisgIDQgfCAgMTAgfCAgNCB8ICA1CisgIDUgfCAgNTAg fCAgICB8ICAgCisgIDYgfCAgMTAgfCAgICB8ICAgCisoNiByb3dzKQorCistLSBMQVNUKHZhbCk6 IGFsd2F5cyBlcXVhbHMgY3VycmVudCByb3cncyB2YWwgKG9mZnNldCAwIGRlZmF1bHQpCistLSBF cXVpdmFsZW50IHRvOiBCIEFTIHZhbCA+IDE1CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUo aWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TEFTVCh2YWwpID4gMTUKKyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0tLSstLS0t Ky0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgIDIKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAz MCB8ICAgIHwgICAKKyAgNCB8ICAxMCB8ICA0IHwgIDUKKyAgNSB8ICA1MCB8ICAgIHwgICAKKyAg NiB8ICAxMCB8ICAgIHwgICAKKyg2IHJvd3MpCisKKy0tIFJlbHVjdGFudCBBKz8gd2l0aCBGSVJT VCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIHNob3J0ZXN0IG1hdGNoIHdoZXJlCistLSBmaXJzdCBh bmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IHJl bHVjdGFudCB0cmllcyBCIGVhcmx5OgorLS0gICBpZDIoMjDiiaAxMCksIGlkMygzMOKJoDEwKSwg aWQ0KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDR9CistLSBtYXRjaF9zdGFydD01KDUwKTogaWQ2 KDEw4omgNTApIOKGkiBubyBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJ TkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNU IFJPVworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklS U1QodmFsKSA9IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0t Ky0tLS0rLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgNAorICAyIHwgIDIwIHwgICAgfCAgIAorICAz IHwgIDMwIHwgICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwgICAgfCAg IAorICA2IHwgIDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gR3JlZWR5IEErIHdpdGggRklS U1QodmFsKSA9IExBU1QodmFsKTogZmluZCBsb25nZXN0IG1hdGNoIHdoZXJlCistLSBmaXJzdCBh bmQgbGFzdCByb3dzIGhhdmUgdGhlIHNhbWUgdmFsLgorLS0gbWF0Y2hfc3RhcnQ9MSgxMCk6IGdy ZWVkeSBBIGVhdHMgYWxsLCBCIHRyaWVzIGxhc3Q6CistLSAgIGlkNigxMD0xMCkg4oaSIG1hdGNo IHsxLDIsMyw0LDUsNn0KK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA9 IExBU1QodmFsKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgbWwgCistLS0tKy0tLS0tKy0tLS0rLS0t LQorICAxIHwgIDEwIHwgIDEgfCAgNgorICAyIHwgIDIwIHwgICAgfCAgIAorICAzIHwgIDMwIHwg ICAgfCAgIAorICA0IHwgIDEwIHwgICAgfCAgIAorICA1IHwgIDUwIHwgICAgfCAgIAorICA2IHwg IDEwIHwgICAgfCAgIAorKDYgcm93cykKKworLS0gU0tJUCBUTyBORVhUIFJPVyB3aXRoIEZJUlNU KHZhbCkgPSBMQVNUKHZhbCk6IG92ZXJsYXBwaW5nIG1hdGNoIGF0dGVtcHRzLgorLS0gV2l0aCBP TkUgUk9XIFBFUiBNQVRDSCwgZWFjaCByb3cgc2hvd3Mgb25seSBpdHMgZmlyc3QgbWF0Y2ggcmVz dWx0LgorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3Rf dmFsdWUoaWQpIE9WRVIgdyBBUyBtbAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBP UkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChB Kz8gQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCkK Kyk7CisgaWQgfCB2YWwgfCBtZiB8IG1sIAorLS0tLSstLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAx MCB8ICAxIHwgIDQKKyAgMiB8ICAyMCB8ICAgIHwgICAKKyAgMyB8ICAzMCB8ICAgIHwgICAKKyAg NCB8ICAxMCB8ICA0IHwgIDYKKyAgNSB8ICA1MCB8ICAgIHwgICAKKyAgNiB8ICAxMCB8ICAgIHwg ICAKKyg2IHJvd3MpCisKKy0tIEZJUlNUL0xBU1QgMi1hcmcgb2Zmc2V0IGZvcm0KKy0tCistLSBG SVJTVCh2YWwsIDApID0gRklSU1QodmFsKTogbWF0Y2hfc3RhcnQgcm93CitTRUxFQ1QgaWQsIHZh bCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAor RlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyBGSVJTVCh2YWwsIDApID0gMTAKKyk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAK Ky0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDYKKyAgMiB8ICAyMCB8 ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAg NSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworLS0g RklSU1QodmFsLCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkK Ky0tIG1hdGNoX3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKG kiBpZDIoMjApIG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1Qo dmFsLDEpPTEwLCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNUIGlkLCB2 YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250 IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgMgorICAyIHwgIDIw IHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAzIHwgICAyCisgIDQgfCAgMTAgfCAgICB8ICAgMAor ICA1IHwgIDUwIHwgIDUgfCAgIDIKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCist LSBGSVJTVCh2YWwsIDk5KTogb2Zmc2V0IGJleW9uZCBtYXRjaCByYW5nZSDihpIgTlVMTCwgbm8g bWF0Y2gKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IEZJUlNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSst LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8 ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAor KDYgcm93cykKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJvdworU0VM RUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIg dyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisgaWQgfCB2YWwgfCBt ZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDMKKyAg MiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgIDQg fCAgIDIKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93 cykKKworLS0gTEFTVCh2YWwsIDEpOiBvbmUgcm93IGJhY2sgZnJvbSBjdXJyZW50IChwcmV2aW91 cyBtYXRjaCByb3cpCistLSBBdCBCIGV2YWx1YXRpb24gb24gaWQyOiBMQVNUKHZhbCwxKSA9IHZh bCBhdCBpZDEgPSAxMAorLS0gQiBtYXRjaGVzIHdoZW4gcHJldmlvdXMgcm93IHZhbCA8IDMwCitT RUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCwgMSkgPCAzMAorKTsKKyBpZCB8IHZhbCB8 IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgMwor ICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAg NCB8ICAgMgorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiBy b3dzKQorCistLSBMQVNUKHZhbCwgOTkpOiBvZmZzZXQgYmVmb3JlIG1hdGNoX3N0YXJ0IOKGkiBO VUxMCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBM QVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBM QVNUKHZhbCwgOTkpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAg MAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYg cm93cykKKworLS0gRXJyb3I6IE5VTEwgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikg T1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRU RVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBGSVJTVCh2YWwsIE5VTEw6OmludDgpIElTIE5VTEwK Kyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51 bGwKKy0tIEVycm9yOiBuZWdhdGl2ZSBvZmZzZXQKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodmFsLCAtMSkgSVMgTlVMTAorKTsKK0VSUk9S OiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKy0t IEZJUlNUL0xBU1Qgb3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBm aXJzdCh2YWwpIEZST00gcnByX25hdjsKK0VSUk9SOiAgZmlyc3QgY2FuIG9ubHkgYmUgdXNlZCBp biBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VMRUNUIGZpcnN0KHZhbCkgRlJPTSBycHJfbmF2 OworICAgICAgICAgICAgICAgXgorU0VMRUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7CitFUlJP UjogIGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKK0xJTkUgMTogU0VM RUNUIGxhc3QodmFsKSBGUk9NIHJwcl9uYXY7CisgICAgICAgICAgICAgICBeCitTRUxFQ1QgZmly c3QodmFsLCAxKSBGUk9NIHJwcl9uYXY7CitFUlJPUjogIGZpcnN0IGNhbiBvbmx5IGJlIHVzZWQg aW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBmaXJzdCh2YWwsIDEpIEZST00gcnBy X25hdjsKKyAgICAgICAgICAgICAgIF4KKy0tIEZ1bmN0aW9uYWwgbm90YXRpb246IHNob3VsZCBh Y2Nlc3MgY29sdW1uLCBub3QgUlBSIG5hdmlnYXRpb24KK0NSRUFURSBURU1QIFRBQkxFIHJwcl9u YW1lcyAocHJldiBpbnQsIG5leHQgaW50LCBmaXJzdCB0ZXh0LCBsYXN0IHRleHQpOworSU5TRVJU IElOVE8gcnByX25hbWVzIFZBTFVFUyAoMSwgMiwgJ0pvZScsICdCbG93Jyk7CitTRUxFQ1QgcHJl dihmKSwgbmV4dChmKSwgZmlyc3QoZiksIGxhc3QoZikgRlJPTSBycHJfbmFtZXMgZjsKKyBwcmV2 IHwgbmV4dCB8IGZpcnN0IHwgbGFzdCAKKy0tLS0tLSstLS0tLS0rLS0tLS0tLSstLS0tLS0KKyAg ICAxIHwgICAgMiB8IEpvZSAgIHwgQmxvdworKDEgcm93KQorCitEUk9QIFRBQkxFIHJwcl9uYW1l czsKKy0tIENvbXBvdW5kIG5hdmlnYXRpb246IFBSRVYoRklSU1QodmFsKSwgTSkKKy0tIHJwcl9u YXY6ICgxLDEwKSwoMiwyMCksKDMsMzApLCg0LDEwKSwoNSw1MCksKDYsMTApCistLSBQUkVWKEZJ UlNUKHZhbCksIDEpOiB0YXJnZXQgPSBtYXRjaF9zdGFydCArIDAgLSAxID0gbWF0Y2hfc3RhcnQg LSAxCistLSBBdCBtYXRjaF9zdGFydD0xOiB0YXJnZXQ9MCDihpIgb3V0IG9mIHJhbmdlIOKGkiBO VUxMCistLSBBdCBtYXRjaF9zdGFydD0zOiB0YXJnZXQ9Mih2YWw9MjApIOKGkiAyMCA+IDAg4oaS IHRydWUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3Vu dCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBC KykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgMSkgPiAwCisp OworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAx MCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwgICAgfCAgIDAK KyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwg ICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRhcmdldCA9 IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNoX3N0YXJ0 PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVlCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsKKyBpZCB8 IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSstLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8 ICAgNgorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAg MTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAw CisoNiByb3dzKQorCistLSBQUkVWKExBU1QodmFsKSwgMik6IHRhcmdldCA9IGN1cnJlbnRwb3Mg LSAwIC0gMiA9IGN1cnJlbnRwb3MgLSAyCistLSBTYW1lIGJhY2t3YXJkIHJlYWNoIGFzIFBSRVYo dmFsLCAyKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNv dW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChB IEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihMQVNUKHZhbCksIDIpIElTIE5P VCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0K KyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwg ICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2 IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwsIDEpLCAyKTog dGFyZ2V0ID0gY3VycmVudHBvcyAtIDEgKyAyID0gY3VycmVudHBvcyArIDEKKy0tIExvb2tzIDEg cm93IGFoZWFkOiBzYW1lIGFzIE5FWFQodmFsLCAxKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TkVYVChMQVNUKHZhbCwgMSksIDIpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgbWYgfCBj bnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAxIHwgICA1CisgIDIgfCAg MjAgfCAgICB8ICAgMAorICAzIHwgIDMwIHwgICAgfCAgIDAKKyAgNCB8ICAxMCB8ICAgIHwgICAw CisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisK Ky0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoUFJFViBmYXIgYmFj aykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYg V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxMCispOwor IGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIg fCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAgMAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAg fCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYgcm93cykKKworLS0gQ29tcG91bmQ6IG91dGVyIG9m ZnNldCBiZXlvbmQgcGFydGl0aW9uIChORVhUIGZhciBmb3J3YXJkKQorU0VMRUNUIGlkLCB2YWws IGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAg T1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg TkVYVChGSVJTVCh2YWwpLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCist LS0tKy0tLS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwg IDMwIHwgICAwCisgIDQgfCAgMTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDEwIHwg ICAwCisoNiByb3dzKQorCistLSBDb21wb3VuZDogaW5uZXIgb2Zmc2V0IGJleW9uZCBtYXRjaCBy YW5nZSAoRklSU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlk CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1Qo dmFsLCA5OSksIDEpIElTIE5PVCBOVUxMCispOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0t LSstLS0tLQorICAxIHwgIDEwIHwgICAwCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAzMCB8ICAg MAorICA0IHwgIDEwIHwgICAwCisgIDUgfCAgNTAgfCAgIDAKKyAgNiB8ICAxMCB8ICAgMAorKDYg cm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2UgKExB U1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVS TiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwsIDk5KSwg MSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0tCisg IDEgfCAgMTAgfCAgIDAKKyAgMiB8ICAyMCB8ICAgMAorICAzIHwgIDMwIHwgICAwCisgIDQgfCAg MTAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgMAorICA2IHwgIDEwIHwgICAwCisoNiByb3dzKQorCist LSBDb21wb3VuZDogTlVMTCBvdXRlciBvZmZzZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQs IHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JE RVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xM T1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKEZJUlNUKHZhbCks IE5VTEw6OmludDgpIElTIE5VTEwKKyk7CitFUlJPUjogIHJvdyBwYXR0ZXJuIG5hdmlnYXRpb24g b2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKKy0tIENvbXBvdW5kOiBuZWdhdGl2ZSBvdXRlciBvZmZz ZXQgKHJ1bnRpbWUgZXJyb3IpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBORVhUKExBU1QodmFsKSwgLTEpIElTIE5VTEwKKyk7CitFUlJPUjogIHJv dyBwYXR0ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG5lZ2F0aXZlCistLSBDb21w b3VuZDogZGVmYXVsdCBvZmZzZXRzIG9uIGJvdGggc2lkZXMKKy0tIFBSRVYoRklSU1QodmFsKSk6 IGlubmVyPTAgKG1hdGNoX3N0YXJ0KSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0gbWF0Y2hfc3RhcnQg LSAxCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQo KikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBC WSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCkpIElTIE5PVCBOVUxM CispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0tLS0tKy0tLS0rLS0tLS0KKyAgMSB8 ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAgNQorICAzIHwgIDMwIHwgICAgfCAg IDAKKyAgNCB8ICAxMCB8ICAgIHwgICAwCisgIDUgfCAgNTAgfCAgICB8ICAgMAorICA2IHwgIDEw IHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIE5FWFQoTEFTVCh2YWwpKTogaW5uZXI9MCAoY3Vy cmVudHBvcyksIG91dGVyPTEg4oaSIHRhcmdldCA9IGN1cnJlbnRwb3MgKyAxCitTRUxFQ1QgaWQs IHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNu dAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsKSkgSVMgTk9UIE5VTEwKKyk7CisgaWQgfCB2YWwg fCBtZiB8IGNudCAKKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAxIHwgIDEwIHwgIDEgfCAgIDUK KyAgMiB8ICAyMCB8ICAgIHwgICAwCisgIDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwg ICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAgIHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYg cm93cykKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChydW50aW1lIGVycm9yKQor U0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMg KAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihG SVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworRVJST1I6ICByb3cgcGF0dGVy biBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBudWxsCistLSBDb21wb3VuZDogaW5uZXIg bmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCop IE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCwgLTEpLCAxKSBJUyBOVUxM CispOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNldCBtdXN0IG5vdCBiZSBu ZWdhdGl2ZQorLS0gQ29tcG91bmQgKyBob3N0IHZhcmlhYmxlIG9mZnNldHMKK1BSRVBBUkUgdGVz dF9jb21wb3VuZF9vZmZzZXQoaW50OCwgaW50OCkgQVMKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92 YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9u YXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJF TlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNU IExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IFBSRVYoRklSU1QodmFsLCAkMSksICQyKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9j b21wb3VuZF9vZmZzZXQoMCwgMSk7CisgaWQgfCB2YWwgfCBtZiB8IGNudCAKKy0tLS0rLS0tLS0r LS0tLSstLS0tLQorICAxIHwgIDEwIHwgICAgfCAgIDAKKyAgMiB8ICAyMCB8ICAyIHwgICA1Cisg IDMgfCAgMzAgfCAgICB8ICAgMAorICA0IHwgIDEwIHwgICAgfCAgIDAKKyAgNSB8ICA1MCB8ICAg IHwgICAwCisgIDYgfCAgMTAgfCAgICB8ICAgMAorKDYgcm93cykKKworRVhFQ1VURSB0ZXN0X2Nv bXBvdW5kX29mZnNldCgxLCAxKTsKKyBpZCB8IHZhbCB8IG1mIHwgY250IAorLS0tLSstLS0tLSst LS0tKy0tLS0tCisgIDEgfCAgMTAgfCAgMSB8ICAgNgorICAyIHwgIDIwIHwgICAgfCAgIDAKKyAg MyB8ICAzMCB8ICAgIHwgICAwCisgIDQgfCAgMTAgfCAgICB8ICAgMAorICA1IHwgIDUwIHwgICAg fCAgIDAKKyAgNiB8ICAxMCB8ICAgIHwgICAwCisoNiByb3dzKQorCitERUFMTE9DQVRFIHRlc3Rf Y29tcG91bmRfb2Zmc2V0OworLS0gQ29tcG91bmQgKyBTS0lQIFRPIE5FWFQgUk9XOiBvdmVybGFw cGluZyBtYXRjaGVzIHdpdGggUFJFVihGSVJTVCgpKQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3Zh bHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25h diBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFRPIE5F WFQgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBS RVYoRklSU1QodmFsKSwgMSkgPiAwCispOworIGlkIHwgdmFsIHwgbWYgfCBjbnQgCistLS0tKy0t LS0tKy0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgIHwgICAwCisgIDIgfCAgMjAgfCAgMiB8ICAg NQorICAzIHwgIDMwIHwgIDMgfCAgIDQKKyAgNCB8ICAxMCB8ICA0IHwgICAzCisgIDUgfCAgNTAg fCAgNSB8ICAgMgorICA2IHwgIDEwIHwgICAgfCAgIDAKKyg2IHJvd3MpCisKKy0tIENvbXBvdW5k ICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAgVEFCTEUgcnByX25hdl9wYXJ0IChn aWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElOVE8gcnByX25hdl9wYXJ0IFZBTFVF UworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAorICAgICgyLDEsNDApLCgyLDIsNTAp LCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBB UyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2X3BhcnQgV0lORE9XIHcg QVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQ IFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUs IEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CisgZ2lkIHwgaWQgfCB2YWwgfCBtZiB8 IGNudCAKKy0tLS0tKy0tLS0rLS0tLS0rLS0tLSstLS0tLQorICAgMSB8ICAxIHwgIDEwIHwgIDEg fCAgIDMKKyAgIDEgfCAgMiB8ICAyMCB8ICAgIHwgICAwCisgICAxIHwgIDMgfCAgMzAgfCAgICB8 ICAgMAorICAgMiB8ICAxIHwgIDQwIHwgIDEgfCAgIDMKKyAgIDIgfCAgMiB8ICA1MCB8ICAgIHwg ICAwCisgICAyIHwgIDMgfCAgNjAgfCAgICB8ICAgMAorKDYgcm93cykKKworRFJPUCBUQUJMRSBy cHJfbmF2X3BhcnQ7CistLSBSZXZlcnNlIG5lc3Rpbmc6IEZJUlNUIHdyYXBwaW5nIFBSRVYgaXMg cHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAg ICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IEZJUlNUKFBSRVYodmFsKSkgPiAwCispOworRVJST1I6ICBGSVJTVCBhbmQgTEFTVCBjYW5ub3Qg Y29udGFpbiBQUkVWIG9yIE5FWFQKK0xJTkUgNTogICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMg RklSU1QoUFJFVih2YWwpKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkp LCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0gUmV2ZXJz ZSBuZXN0aW5nOiBMQVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2 YWwgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4g KEEgQikKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+IDAKKyk7 CitFUlJPUjogIEZJUlNUIGFuZCBMQVNUIGNhbm5vdCBjb250YWluIFBSRVYgb3IgTkVYVAorTElO RSA1OiAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKE5FWFQodmFsKSkgPiAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBPbmx5IFBSRVYoRklSU1Qo KSksIFBSRVYoTEFTVCgpKSwgTkVYVChGSVJTVCgpKSwgYW5kIE5FWFQoTEFTVCgpKSBjb21wb3Vu ZCBmb3JtcyBhcmUgYWxsb3dlZC4KK0RST1AgVEFCTEUgcnByX25hdjsKIC0tCiAtLSBTS0lQIFRP IC8gQmFja3RyYWNraW5nIC8gRnJhbWUgYm91bmRhcnkKIC0tCkBAIC0yMjQ3LDYgKzI4NTAsMjcg QEAgRlJPTSByZXN1bHQgV0hFUkUgbWF0Y2hfbGVuID4gMDsKICAgICAgICAgICAgIDEgfCAgICAg ICAgIDk5OTk5CiAoMSByb3cpCiAKK1JFU0VUIGppdF9hYm92ZV9jb3N0OworUkVTRVQgaml0Owor LS0gSklUIGNvbXBvdW5kIG5hdmlnYXRpb24gdGVzdAorU0VUIGppdCA9IG9uOworU0VUIGppdF9h Ym92ZV9jb3N0ID0gMDsKK1NFTEVDVCBjb3VudCgqKSBBUyBtYXRjaGVkX3Jvd3MKK0ZST00gKAor IFNFTEVDVCB2LCBjb3VudCgqKSBPVkVSIHcgQVMgbWF0Y2hfbGVuCisgRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgMTAwMCkgQVMgdCh2KQorIFdJTkRPVyB3IEFTICgKKyAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICBQQVRURVJOIChBIEIrKQorICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBS RVYoRklSU1QodiksIDEpID4gMAorICkKKykgc3ViIFdIRVJFIG1hdGNoX2xlbiA+IDA7CisgbWF0 Y2hlZF9yb3dzIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIDEKKygxIHJvdykKKwogUkVT RVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAtLQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Jwcl9iYXNlLm91dAppbmRleCAxZTQ1MGEwN2NlZC4uMDg0NTMxNjk2NWUgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBMSU5FIDY6 ICAgICBQQVRURVJOIChBeywyMTQ3NDgzNjQ3fSkKIC0tIEV4cGVjdGVkOiBFUlJPUjogcXVhbnRp ZmllciBib3VuZCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMjE0NzQ4MzY0NgogRFJPUCBUQUJMRSBy cHJfYm91bmRzOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAoUFJFViAv IE5FWFQpCistLSBOYXZpZ2F0aW9uIEZ1bmN0aW9ucyBUZXN0cyAoUFJFViAvIE5FWFQgLyBGSVJT VCAvIExBU1QpCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIENSRUFURSBUQUJMRSBycHJfbmF2IChpZCBJTlQsIHZhbCBJTlQp OwogSU5TRVJUIElOVE8gcnByX25hdiBWQUxVRVMKQEAgLTE3MzAsNiArMTczMCw4MSBAQCBFUlJP UjogIG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UKIExJTkUgMTogU0VM RUNUIE5FWFQoaWQpLCBpZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CiAgICAgICAgICAg ICAgICBeCiAtLSBFeHBlY3RlZDogRVJST1I6IG5leHQgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERF RklORSBjbGF1c2UKKy0tIEZJUlNUIGZ1bmN0aW9uIC0gcmVmZXJlbmNlIG1hdGNoX3N0YXJ0IHJv dworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIgdyBhcyBjbnQKK0ZST00gcnByX25hdgor V0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAgICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkK KykKK09SREVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAx IHwgIDEwIHwgICA1CisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMAorICA0IHwgIDI1 IHwgICAwCisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIExBU1QgZnVuY3Rpb24gd2l0 aG91dCBvZmZzZXQgLSBlcXVpdmFsZW50IHRvIGN1cnJlbnQgcm93J3MgdmFsdWUKK1NFTEVDVCBp ZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyBMQVNUKHZhbCkgPiBQUkVWKHZhbCkKKykKK09S REVSIEJZIGlkOworIGlkIHwgdmFsIHwgY250IAorLS0tLSstLS0tLSstLS0tLQorICAxIHwgIDEw IHwgICAyCisgIDIgfCAgMjAgfCAgIDAKKyAgMyB8ICAxNSB8ICAgMworICA0IHwgIDI1IHwgICAw CisgIDUgfCAgMzAgfCAgIDAKKyg1IHJvd3MpCisKKy0tIEZJUlNUIGFuZCBMQVNUIGNvbWJpbmVk CitTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitX SU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RQorICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgdmFsID4gRklSU1QodmFsKSBB TkQgTEFTVCh2YWwpID4gUFJFVih2YWwpCispCitPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCB8IGNu dCAKKy0tLS0rLS0tLS0rLS0tLS0KKyAgMSB8ICAxMCB8ICAgMgorICAyIHwgIDIwIHwgICAwCisg IDMgfCAgMTUgfCAgIDMKKyAgNCB8ICAyNSB8ICAgMAorICA1IHwgIDMwIHwgICAwCisoNSByb3dz KQorCistLSBGSVJTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklO RQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9uYXY7CitFUlJPUjogIGZpcnN0 IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCitMSU5FIDE6IFNFTEVDVCBGSVJT VChpZCksIGlkLCB2YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBmaXJzdCBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorLS0g TEFTVCBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNU IExBU1QoaWQpLCBpZCwgdmFsIEZST00gcnByX25hdjsKK0VSUk9SOiAgbGFzdCBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZQorTElORSAxOiBTRUxFQ1QgTEFTVChpZCksIGlkLCB2 YWwgRlJPTSBycHJfbmF2OworICAgICAgICAgICAgICAgXgorLS0gRXhwZWN0ZWQ6IEVSUk9SOiBs YXN0IGNhbiBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiBEUk9QIFRBQkxFIHJwcl9u YXY7CiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tIFNLSVAgVE8gLyBJTklUSUFMIFRlc3RzCkBAIC0yMjI3LDYgKzIzMDIs MTUwIEBAIFNFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF92OCc6OnJlZ2NsYXNzKTsK ICAgIGQgQVMgKHZhbCA+IDMwKSApOwogKDEgcm93KQogCistLSBOYXZpZ2F0aW9uIGZ1bmN0aW9u IHNlcmlhbGl6YXRpb246IFBSRVYgd2l0aCBvZmZzZXQKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxf bmF2MSBBUworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFs CitXSU5ET1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChB IEIrKQorICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgdmFsID4gUFJFVih2YWws IDIpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYxJzo6cmVnY2xhc3Mp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgU0VMRUNU IGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIGNvdW50KCopIE9WRVIg dyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyArCisgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgUEFUVEVSTiAoYSBiKykg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1ZSwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYiBB UyAodmFsID4gUFJFVih2YWwsICgyKTo6YmlnaW50KSkgKTsKKygxIHJvdykKKworLS0gTmF2aWdh dGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBGSVJTVCBhbmQgTEFTVAorQ1JFQVRFIFZJRVcg cnByX3NlcmlhbF9uYXYyIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9N IHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAg IFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJT VCh2YWwpIDwgTEFTVCh2YWwsIDEpKTsKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncnByX3Nlcmlh bF9uYXYyJzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19n ZXRfdmlld2RlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgU0VMRUNUIGlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICB2YWwsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgIGNvdW50KCopIE9WRVIgdyBBUyBjb3VudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICBGUk9NIHJwcl9zZXJpYWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgV0lORE9XIHcg QVMgKE9SREVSIEJZIGlkIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORyArCisgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIElOSVRJQUwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgUEFUVEVSTiAoYSBiKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBERUZJTkUgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGEgQVMgdHJ1 ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgYiBBUyAoRklSU1QodmFsKSA8IExBU1QodmFsLCAoMSk6OmJpZ2ludCkp ICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29t cG91bmQgUFJFVihGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYzIEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCwgMSksIDIpID4gMCk7 CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Myc6OnJlZ2NsYXNzKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMg Y291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFU Q0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwor ICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKFBS RVYoRklSU1QodmFsLCAoMSk6OmJpZ2ludCksICgyKTo6YmlnaW50KSA+IDApICk7CisoMSByb3cp CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgTkVYVChM QVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjQgQVMKK1NFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlk CisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTCk7CitTRUxFQ1Qg cGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2NCc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIFNFTEVDVCBpZCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgqKSBPVkVSIHcgQVMgY291bnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgRlJPTSBy cHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBpZCBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKworICAgQUZURVIgTUFUQ0ggU0tJUCBQ QVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAr CisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4gKGEgYispICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgREVGSU5F ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIGIgQVMgKE5FWFQoTEFTVCh2 YWwpLCAoMik6OmJpZ2ludCkgSVMgTk9UIE5VTEwpICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRp b24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitDUkVBVEUg VklFVyBycHJfc2VyaWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcK K0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAg ICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFT IFBSRVYoTEFTVCh2YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJf c2VyaWFsX25hdjUnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBnX2dldF92aWV3ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICBTRUxFQ1QgaWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAgIHZhbCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgY291bnQoKikgT1ZFUiB3IEFTIGNvdW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKworICAgIEZST00gcnByX3NlcmlhbCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HICsKKyAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgSU5JVElBTCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCisgICBQQVRURVJOIChhIGIrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIERFRklORSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgYSBB UyB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICBiIEFTIChQUkVWKExBU1QodmFsLCAoMSk6OmJpZ2ludCksICgy KTo6YmlnaW50KSA+IDApICk7CisoMSByb3cpCisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2Vy aWFsaXphdGlvbjogY29tcG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3Nlcmlh bF9uYXY2IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJp YWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBD VVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4g KEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZh bCksIDMpID4gMCk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJl Z2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X3ZpZXdkZWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg IFNFTEVDVCBpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKKyAgICAgdmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBjb3VudCgq KSBPVkVSIHcgQVMgY291bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCisgICAgRlJPTSBycHJfc2VyaWFsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBC WSBpZCBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcgKwor ICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICBJTklUSUFMICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFBBVFRFUk4g KGEgYispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKworICAgREVGSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICBhIEFTIHRydWUsICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsK KyAgIGIgQVMgKE5FWFQoRklSU1QodmFsKSwgKDMpOjpiaWdpbnQpID4gMCkgKTsKKygxIHJvdykK KwogLS0gUmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxz CiBDUkVBVEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcKQEAgLTMwMjEsNiArMzI0MCw0MiBAQCBPUkRFUiBCWSBpZDsKICgzIHJv d3MpCiAKIERST1AgVEFCTEUgcnByX251bGw7CistLSBDb21wb3VuZCBuYXZpZ2F0aW9uOiBpbm5l ciBuYXYgbXVzdCBiZSBkaXJlY3QgYXJnIChub3QgbmVzdGVkIGluIGV4cHJlc3Npb24pCitTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2ICsgRklSU1Qo dikpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBvcGVyYXRpb24gbXVz dCBiZSBhIGRpcmVjdCBhcmd1bWVudCBvZiB0aGUgb3V0ZXIgbmF2aWdhdGlvbgorTElORSA2OiAg ICAgREVGSU5FIEEgQVMgUFJFVih2ICsgRklSU1QodikpID4gMAorICAgICAgICAgICAgICAgICAg ICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJ UlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgorLS0g RklSU1QvTEFTVCB3cmFwcGluZyBGSVJTVC9MQVNUOiBwcm9oaWJpdGVkCitTRUxFQ1QgY291bnQo KikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAo CisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisg ICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4gMAorKTsK K0VSUk9SOiAgRklSU1QgYW5kIExBU1QgY2Fubm90IGNvbnRhaW4gRklSU1Qgb3IgTEFTVAorTElO RSA2OiAgICAgREVGSU5FIEEgQVMgRklSU1QoRklSU1QodikpID4gMAorICAgICAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhU KEZJUlNUKCkpLCBhbmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgor LS0gVHJpcGxlIG5lc3Rpbmc6IHByb2hpYml0ZWQgKDMtbGV2ZWwgZGVlcCBuYXZpZ2F0aW9uKQor U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1Qo UFJFVih2KSkpID4gMAorKTsKK0VSUk9SOiAgcm93IHBhdHRlcm4gbmF2aWdhdGlvbiBjYW5ub3Qg YmUgbmVzdGVkIG1vcmUgdGhhbiB0d28gbGV2ZWxzIGRlZXAKK0xJTkUgNjogICAgIERFRklORSBB IEFTIFBSRVYoRklSU1QoUFJFVih2KSkpID4gMAorICAgICAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIE9ubHkgUFJFVihGSVJTVCgpKSwgUFJFVihMQVNUKCkpLCBORVhUKEZJUlNUKCkpLCBh bmQgTkVYVChMQVNUKCkpIGNvbXBvdW5kIGZvcm1zIGFyZSBhbGxvd2VkLgogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBX aW5kb3cgRGVkdXBsaWNhdGlvbiBUZXN0cwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Jwcl9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnByX2V4cGxhaW4ub3V0CmluZGV4IDc3YWIyNWEyMjg5Li5kYzM1MjJmOTMwZiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ycHJfZXhwbGFpbi5vdXQKQEAgLTM2LDcgKzM2LDcgQEAK IC0tICAgV2luZG93IEZ1bmN0aW9uIENvbWJpbmF0aW9ucwogLS0gICBERUZJTkUgRXhwcmVzc2lv biBWYXJpYXRpb25zCiAtLSAgIExhcmdlIFNjYWxlIFN0YXRpc3RpY3MgVmVyaWZpY2F0aW9uCi0t LSAgIE5hdiBNYXJrIExvb2tiYWNrICh0dXBsZXN0b3JlIHRyaW0pCistLSAgIE5hdiBNYXJrIExv b2tiYWNrL0xvb2thaGVhZCAodHVwbGVzdG9yZSB0cmltKQogLS0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBGaWx0ZXIgZnVu Y3Rpb24gdG8gbm9ybWFsaXplIHBsYXRmb3JtLWRlcGVuZGVudCBtZW1vcnkgdmFsdWVzIChub3Qg TkZBIHN0YXRpc3RpY3MpLgogLS0gTkZBIHN0YXRpc3RpY3Mgc2hvdWxkIG5vdCBjaGFuZ2UgYmV0 d2VlbiBwbGF0Zm9ybXM7IGlmIHRoZXkgZG8sIGl0IGNvdWxkCkBAIC0xMTMxLDYgKzExMzEsMTI3 IEBAIFdJTkRPVyB3IEFTICgKICAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3Nlcmll cyBzIChhY3R1YWwgcm93cz00Mi4wMCBsb29wcz0xKQogKDEwIHJvd3MpCiAKKy0tIE5vIGFic29y cHRpb24gd2hlbiBERUZJTkUgdXNlcyBGSVJTVCAobWF0Y2hfc3RhcnQtZGVwZW5kZW50KQorLS0g U2FtZSBwYXR0ZXJuIGFzIHJwcl9ldl9jdHhfYWJzb3JiX3VuYm91bmRlZCBidXQgd2l0aCBGSVJT VCBpbiBERUZJTkUuCistLSBDb21wYXJlOiBhYnNvcmJlZCBjb3VudCBzaG91bGQgYmUgMCBoZXJl IHZzID4wIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9ub19hYnNvcmJfZmlyc3QgQVMK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MCBBTkQgdiA+IEZJUlNUKHYpCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3Rv X2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCcpLCBFJ1xu JykpIEFTIGxpbmUgV0hFUkUgbGluZSB+ICdQQVRURVJOJzsKKyAgICAgICBsaW5lICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgIFBBVFRFUk4gKGErIGIpIAorKDEgcm93KQorCitTRUxF Q1QgcnByX2V4cGxhaW5fZmlsdGVyKCcKK0VYUExBSU4gKEFOQUxZWkUsIEJVRkZFUlMgT0ZGLCBD T1NUUyBPRkYsIFRJTUlORyBPRkYsIFNVTU1BUlkgT0ZGKQorU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERF RklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklSU1QodikKKyk7 Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93 cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyBiCisgICBOYXYgTWFy ayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICBTdG9yYWdlOiBNZW1v cnkgIE1heGltdW0gU3RvcmFnZTogTmtCCisgICBORkEgU3RhdGVzOiA5IHBlYWssIDE1MSB0b3Rh bCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogNSBwZWFrLCA1MSB0b3RhbCwgMCBwcnVuZWQK KyAgIE5GQTogMTAgbWF0Y2hlZCAobGVuIDUvNS81LjApLCAwIG1pc21hdGNoZWQKKyAgIE5GQTog MCBhYnNvcmJlZCwgNDAgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rpb24gU2Nh biBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMSBy b3dzKQorCistLSBBYnNvcnB0aW9uIHByZXNlcnZlZCB3aGVuIERFRklORSB1c2VzIG9ubHkgTEFT VCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBpcyBtYXRjaF9zdGFydC1pbmRlcGVuZGVudCAo YWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0aW9uCistLSByZW1haW5zIGFjdGl2ZS4gIENv bXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSA+MCwgbGlrZSB0aGUKKy0tIFBSRVYtb25s eSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0eF9hYnNvcmJfbGFzdCBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikK K1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRF RCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRU RVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgTEFTVCh2KSAlIDUg PSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3RyaW5nX3RvX2FycmF5KHBnX2dldF92 aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworICAgICAgIGxpbmUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgUEFUVEVSTiAoYSsgYikgCisoMSByb3cpCisKK1NFTEVDVCBycHJfZXhwbGFpbl9maWx0 ZXIoJworRVhQTEFJTiAoQU5BTFlaRSwgQlVGRkVSUyBPRkYsIENPU1RTIE9GRiwgVElNSU5HIE9G RiwgU1VNTUFSWSBPRkYpCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFT VCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMgdiAlIDUgPD4g MCwgQiBBUyBMQVNUKHYpICUgNSA9IDAKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICAg IHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93OiB3 IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisg ICBQYXR0ZXJuOiBhKyIgYgorICAgTmF2IE1hcmsgTG9va2JhY2s6IDAKKyAgIFN0b3JhZ2U6IE1l bW9yeSAgTWF4aW11bSBTdG9yYWdlOiBOa0IKKyAgIE5GQSBTdGF0ZXM6IDMgcGVhaywgOTEgdG90 YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4dHM6IDIgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVk CisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA1LzUvNS4wKSwgMCBtaXNtYXRjaGVkCisgICBORkE6 IDMwIGFic29yYmVkIChsZW4gMS8xLzEuMCksIDEwIHNraXBwZWQgKGxlbiAxLzEvMS4wKQorICAg LT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVzIHMgKGFjdHVhbCByb3dzPTUwLjAw IGxvb3BzPTEpCisoMTAgcm93cykKKworLS0gTm8gYWJzb3JwdGlvbiB3aXRoIGNvbXBvdW5kIFBS RVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKK0NSRUFURSBWSUVXIHJwcl9ldl9j dHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1BVENI IFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEgQVMg diAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1QodiksIDEpIElTIE5PVCBO VUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBC VUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBj b3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAo QSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0gMCBBTkQgUFJF VihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgIHJwcl9leHBsYWluX2ZpbHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnIChhY3R1YWwgcm93cz01MC4wMCBsb29wcz0xKQorICAgV2luZG93 OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp CisgICBQYXR0ZXJuOiBhKyBiCisgICBOYXYgTWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsg TG9va2FoZWFkOiAtMQorICAgU3RvcmFnZTogTWVtb3J5ICBNYXhpbXVtIFN0b3JhZ2U6IE5rQgor ICAgTkZBIFN0YXRlczogOSBwZWFrLCAxNTEgdG90YWwsIDAgbWVyZ2VkCisgICBORkEgQ29udGV4 dHM6IDUgcGVhaywgNTEgdG90YWwsIDAgcHJ1bmVkCisgICBORkE6IDEwIG1hdGNoZWQgKGxlbiA0 LzUvNC45KSwgMSBtaXNtYXRjaGVkIChsZW4gNS81LzUuMCkKKyAgIE5GQTogMCBhYnNvcmJlZCwg Mzkgc2tpcHBlZCAobGVuIDEvNC8yLjUpCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9NTAuMDAgbG9vcHM9MSkKKygxMSByb3dzKQorCiAtLSA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tIE1hdGNoIExlbmd0aCBTdGF0aXN0aWNzIFRlc3RzCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTQzNDMsOSAr NDQ2NCwxMCBAQCBTRUxFQ1QgKiBGUk9NICgKICg5IHJvd3MpCiAKIC0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmF2IE1h cmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQgbmF2aWdhdGlv biBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNrOiBob3cgZmFyIGJhY2sg ZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsgTG9va2JhY2svTG9va2Fo ZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRpb24gb2Zmc2V0 cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFjayBmcm9tIGN1 cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xBU1QpLgorLS0g TG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCAoRklSU1QsIGNvbXBv dW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIFByZXBhcmUgc3RhdGVtZW50 IGZvciBob3N0IHZhcmlhYmxlIG9mZnNldCB0ZXN0IGJlbG93CiBQUkVQQVJFIHJwcl9uYXZfb2Zm c2V0X3ByZXAoaW50OCkgQVMKQEAgLTQ0NjYsMyArNDU4OCwyOTggQEAgRVhQTEFJTiAoQ09TVFMg T0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0X3ByZXAoMik7CiAKIFJFU0VUIHBsYW5fY2FjaGVf bW9kZTsKIERFQUxMT0NBVEUgcnByX25hdl9vZmZzZXRfcHJlcDsKKy0tIEZJUlNUKHYpOiByZXRh aW4gYWxsIChyZWZlcmVuY2VzIG1hdGNoX3N0YXJ0IHJvdykKK0VYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQor V0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVE IEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIHYgPiBGSVJTVCh2 KQorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBB UyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAg UGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhl YWQ6IDAKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dz KQorCistLSBMQVNUKHYsIDEpOiBiYWNrd2FyZCByZWFjaCAxLCBzYW1lIGFzIFBSRVYodiwgMSkK K0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERF RklORSBBIEFTIExBU1QodiwgMSkgPiAwCispOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdp bmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9va2JhY2s6 IDEKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQor CistLSBMQVNUKHYpIHdpdGhvdXQgb2Zmc2V0ICsgUFJFVih2KTogbm8gbWF0Y2hfc3RhcnQgZGVw ZW5kZW5jeSwgb2Zmc2V0IDEKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIExBU1QodikgPiBQUkVWKHYpCispOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKyIK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAxCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0 ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWwsIDEpLCAy KTogbG9va2JhY2sgZnJvbSBtYXRjaF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAtMQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgUFJFVihGSVJTVCh2LCAxKSwgMikgPiAwCispOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAgTmF2IE1hcmsgTG9v a2JhY2s6IDAKKyAgIE5hdiBNYXJrIExvb2thaGVhZDogLTEKKyAgIC0+ICBGdW5jdGlvbiBTY2Fu IG9uIGdlbmVyYXRlX3NlcmllcyBzCisoNiByb3dzKQorCistLSBDb21wb3VuZCBORVhUKEZJUlNU KHZhbCksIDMpOiBmaXJzdE9mZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1Qodiks IDMpID4gMAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBM b29rYWhlYWQ6IDMKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzCiso NiByb3dzKQorCistLSBDb21wb3VuZCBQUkVWKExBU1QodmFsKSwgMik6IGxvb2tiYWNrID0gMCsy ID0gMgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdl bmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisg ICAgREVGSU5FIEEgQVMgUFJFVihMQVNUKHYpLCAyKSA+IDAKKyk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5U IFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErIgorICAgTmF2IE1h cmsgTG9va2JhY2s6IDIKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBz CisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKExBU1QodmFsLCAxKSwgMyk6IGxvb2tiYWNr ID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBP VkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQ QVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1QodiwgMSksIDMpID4gMAorKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cKKyAgIFdpbmRvdzogdyBBUyAoUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVy bjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBn ZW5lcmF0ZV9zZXJpZXMgcworKDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwg TiksIE0pOiBjb25zdGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0KQorRVhQ TEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nl cmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQg Uk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5F IEEgQVMgUFJFVihMQVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4NDI3Mzg3 OTAzKSBJUyBOT1QgTlVMTAorKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBXaW5kb3dBZ2cK KyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiA5MjIzMzcy MDM2ODU0Nzc1ODA2CisgICAtPiAgRnVuY3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcwor KDUgcm93cykKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBv dmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4NjAxODQy NzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIFdpbmRvd0FnZworICAgV2luZG93OiB3IEFTIChST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpCisgICBQYXR0ZXJuOiBhKworICAg TmF2IE1hcmsgTG9va2JhY2s6IHJldGFpbiBhbGwKKyAgIC0+ICBGdW5jdGlvbiBTY2FuIG9uIGdl bmVyYXRlX3NlcmllcyBzCisoNSByb3dzKQorCistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCwg TiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3ZlcmZsb3cgLT4gbm8gdHJpbSBpbXBhY3QKKy0t IE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRhcmdldCBpcyBmb3J3YXJkIGZyb20gbWF0Y2hf c3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFpbnMgdHJpbS4gIExvb2thaGVhZCByZW1haW5z IGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJTVCh2LCA0NjExNjg2MDE4NDI3Mzg3 OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5VTEwKKyk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYg TWFyayBMb29rYmFjazogMAorICAgTmF2IE1hcmsgTG9va2FoZWFkOiAwCisgICAtPiAgRnVuY3Rp b24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcworKDYgcm93cykKKworLS0gQ29tcG91bmQgUFJF VihMQVNUKHZhbCwgJDEpLCAkMik6IHBhcmFtZXRlciBsb29rYmFjayBvdmVyZmxvdyAtPiByZXRh aW4gYWxsCistLSBFWFBMQUlOIHNob3dzICJydW50aW1lIiAocGxhbi1sZXZlbCk7IEVYUExBSU4g QU5BTFlaRSBzaG93cyAicmV0YWluIGFsbCIKKy0tIChleGVjdXRvci1yZXNvbHZlZCkuCitQUkVQ QVJFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soaW50OCwgaW50OCkgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgJDEpLCAkMikgSVMg Tk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4 NjAxODQyNzM4NzkwNCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgV2luZG93QWdnCisgICBXaW5kb3c6IHcgQVMgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJP VyBBTkQgVU5CT1VOREVEIEZPTExPV0lORykKKyAgIFBhdHRlcm46IGErCisgICBOYXYgTWFyayBM b29rYmFjazogcnVudGltZQorICAgLT4gIEZ1bmN0aW9uIFNjYW4gb24gZ2VuZXJhdGVfc2VyaWVz IHMKKyg1IHJvd3MpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgQU5BTFlaRSwgVElNSU5HIE9GRiwg U1VNTUFSWSBPRkYpCisgICAgRVhFQ1VURSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKDQ2MTE2ODYw MTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIFdpbmRvd0FnZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRv dzogdyBBUyAoUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5H KQorICAgUGF0dGVybjogYSsKKyAgIE5hdiBNYXJrIExvb2tiYWNrOiByZXRhaW4gYWxsCisgICBT dG9yYWdlOiBNZW1vcnkgIE1heGltdW0gU3RvcmFnZTogMTdrQgorICAgTkZBIFN0YXRlczogMSBw ZWFrLCAxMSB0b3RhbCwgMCBtZXJnZWQKKyAgIE5GQSBDb250ZXh0czogMiBwZWFrLCAxMSB0b3Rh bCwgMTAgcHJ1bmVkCisgICBORkE6IDAgbWF0Y2hlZCwgMCBtaXNtYXRjaGVkCisgICAtPiAgRnVu Y3Rpb24gU2NhbiBvbiBnZW5lcmF0ZV9zZXJpZXMgcyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9 MSkKKyg5IHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUgdGVzdF9v dmVyZmxvd19sb29rYmFjazsKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFsLCAkMSksICQyKTog cGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFjdAorUFJFUEFSRSB0 ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgJDEpLCAkMikgSVMgTk9U IE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJpY19wbGFuOworRVhQ TEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikKKyAgICBF WEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2 ODYwMTg0MjczODc5MDQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFdpbmRvd0Fn ZyAoYWN0dWFsIHJvd3M9MTAuMDAgbG9vcHM9MSkKKyAgIFdpbmRvdzogdyBBUyAoUk9XUyBCRVRX RUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HKQorICAgUGF0dGVybjogYSsK KyAgIE5hdiBNYXJrIExvb2tiYWNrOiAwCisgICBOYXYgTWFyayBMb29rYWhlYWQ6IDAKKyAgIFN0 b3JhZ2U6IE1lbW9yeSAgTWF4aW11bSBTdG9yYWdlOiAxN2tCCisgICBORkEgU3RhdGVzOiAxIHBl YWssIDExIHRvdGFsLCAwIG1lcmdlZAorICAgTkZBIENvbnRleHRzOiAyIHBlYWssIDExIHRvdGFs LCAxMCBwcnVuZWQKKyAgIE5GQTogMCBtYXRjaGVkLCAwIG1pc21hdGNoZWQKKyAgIC0+ICBGdW5j dGlvbiBTY2FuIG9uIGdlbmVyYXRlX3NlcmllcyBzIChhY3R1YWwgcm93cz0xMC4wMCBsb29wcz0x KQorKDEwIHJvd3MpCisKK1JFU0VUIHBsYW5fY2FjaGVfbW9kZTsKK0RFQUxMT0NBVEUgdGVzdF9v dmVyZmxvd19sb29rYWhlYWQ7CistLSBQUkVWKHYpICsgUFJFVih2LCAkMSk6IE5FRURTX0VWQUwg cGF0aCBtdXN0IGFjY291bnQgZm9yIGltcGxpY2l0IGxvb2tiYWNrPTEKKy0tIFByZXZpb3VzbHks IGV2YWxfbmF2X21heF9vZmZzZXRfd2Fsa2VyIHNraXBwZWQgUFJFVih2KSB3aGVuIG9mZnNldF9h cmcgd2FzCistLSBOVUxMLCBjYXVzaW5nIG1heE9mZnNldD0wIHdoZW4gJDE9MCwgd2hpY2ggd291 bGQgdHJpbSB0aGUgcm93IG5lZWRlZCBieQorLS0gUFJFVih2KS4gIFZlcmlmeSB0aGlzIGV4ZWN1 dGVzIHdpdGhvdXQgImNhbm5vdCBmZXRjaCByb3cgYmVmb3JlIG1hcmsiIGVycm9yLgorUFJFUEFS RSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0KGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZF UiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFU VEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2KSBJUyBOT1QgTlVMTCBBTkQgUFJFVih2 LCAkMSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQo MCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKyAgICAgOQorICAgICAwCisgICAgIDAKKyAg ICAgMAorICAgICAwCisgICAgIDAKKyAgICAgMAorICAgICAwCisgICAgIDAKKygxMCByb3dzKQor CitERUFMTE9DQVRFIHRlc3RfcHJldl9pbXBsaWNpdF9vZmZzZXQ7CistLSBSdW50aW1lIGVycm9y OiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1l X25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBE RUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAorKTsKK0VYRUNVVEUgdGVzdF9ydW50 aW1lX25lZ19vZmZzZXQoLTEpOworRVJST1I6ICByb3cgcGF0dGVybiBuYXZpZ2F0aW9uIG9mZnNl dCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorREVBTExPQ0FURSB0ZXN0X3J1bnRpbWVfbmVnX29mZnNl dDsKKy0tIFJ1bnRpbWUgZXJyb3I6IG51bGwgb2Zmc2V0IGF0IGV4ZWN1dGlvbiB0aW1lCitQUkVQ QVJFIHRlc3RfcnVudGltZV9udWxsX29mZnNldChpbnQ4KSBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOwor RVhFQ1VURSB0ZXN0X3J1bnRpbWVfbnVsbF9vZmZzZXQoTlVMTCk7CitFUlJPUjogIHJvdyBwYXR0 ZXJuIG5hdmlnYXRpb24gb2Zmc2V0IG11c3Qgbm90IGJlIG51bGwKK0RFQUxMT0NBVEUgdGVzdF9y dW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnBy LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKaW5kZXggNDdmMzM5MDQ2OTAuLmEw NWI0MjljZTc0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwci5zcWwKQEAgLTc3Niw2ICs3NzYsMzYzIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmlj ZSA8IE5FWFQocHJpY2UsIDEpCiApOwogCistLQorLS0gRklSU1QvTEFTVCBuYXZpZ2F0aW9uCist LQorCistLSBUZXN0IGRhdGEgZm9yIEZJUlNUL0xBU1Q6IHZhbHVlcyBjeWNsZSBiYWNrIHNvIEZJ UlNUKHZhbCkgPSBMQVNUKHZhbCkKKy0tIGF0IHNwZWNpZmljIHBvc2l0aW9ucy4KK0NSRUFURSBU RU1QIFRBQkxFIHJwcl9uYXYgKGlkIGludCwgdmFsIGludCk7CitJTlNFUlQgSU5UTyBycHJfbmF2 IFZBTFVFUyAoMSwxMCksKDIsMjApLCgzLDMwKSwoNCwxMCksKDUsNTApLCg2LDEwKTsKKworLS0g RklSU1QodmFsKSA9IGNvbnN0YW50OiBCIG1hdGNoZXMgd2hlbiBtYXRjaF9zdGFydCBoYXMgdmFs PTEwCistLSBtYXRjaF9zdGFydD0xKDEwKTogQT1pZDEsIEI9aWQyLCBGSVJTVCh2YWwpPTEwIOKG kiBtYXRjaCB7MSwyfQorLS0gbWF0Y2hfc3RhcnQ9MygzMCk6IEE9aWQzLCBCPWlkNCwgRklSU1Qo dmFsKT0zMOKJoDEwIOKGkiBubyBtYXRjaAorLS0gbWF0Y2hfc3RhcnQ9NCgxMCk6IEE9aWQ0LCBC PWlkNSwgRklSU1QodmFsKT0xMCDihpIgbWF0Y2ggezQsNX0KK1NFTEVDVCBpZCwgdmFsLCBmaXJz dF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZS T00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBGSVJTVCh2YWwpID0gMTAKKyk7CisKKy0tIExBU1QodmFsKTogYWx3YXlzIGVxdWFs cyBjdXJyZW50IHJvdydzIHZhbCAob2Zmc2V0IDAgZGVmYXVsdCkKKy0tIEVxdWl2YWxlbnQgdG86 IEIgQVMgdmFsID4gMTUKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBsYXN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWwKK0ZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAg ICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBMQVNUKHZhbCkgPiAx NQorKTsKKworLS0gUmVsdWN0YW50IEErPyB3aXRoIEZJUlNUKHZhbCkgPSBMQVNUKHZhbCk6IGZp bmQgc2hvcnRlc3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUg c2FtZSB2YWwuCistLSBtYXRjaF9zdGFydD0xKDEwKTogcmVsdWN0YW50IHRyaWVzIEIgZWFybHk6 CistLSAgIGlkMigyMOKJoDEwKSwgaWQzKDMw4omgMTApLCBpZDQoMTA9MTApIOKGkiBtYXRjaCB7 MSwyLDMsNH0KKy0tIG1hdGNoX3N0YXJ0PTUoNTApOiBpZDYoMTDiiaA1MCkg4oaSIG5vIG1hdGNo CitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgbGFzdF92YWx1 ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSs/ IEIpCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCisp OworCistLSBHcmVlZHkgQSsgd2l0aCBGSVJTVCh2YWwpID0gTEFTVCh2YWwpOiBmaW5kIGxvbmdl c3QgbWF0Y2ggd2hlcmUKKy0tIGZpcnN0IGFuZCBsYXN0IHJvd3MgaGF2ZSB0aGUgc2FtZSB2YWwu CistLSBtYXRjaF9zdGFydD0xKDEwKTogZ3JlZWR5IEEgZWF0cyBhbGwsIEIgdHJpZXMgbGFzdDoK Ky0tICAgaWQ2KDEwPTEwKSDihpIgbWF0Y2ggezEsMiwzLDQsNSw2fQorU0VMRUNUIGlkLCB2YWws IGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGxhc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBt bAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1Mg QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFGVEVSIE1B VENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisgICAgREVGSU5FIEEg QVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwpID0gTEFTVCh2YWwpCispOworCistLSBTS0lQIFRPIE5F WFQgUk9XIHdpdGggRklSU1QodmFsKSA9IExBU1QodmFsKTogb3ZlcmxhcHBpbmcgbWF0Y2ggYXR0 ZW1wdHMuCistLSBXaXRoIE9ORSBST1cgUEVSIE1BVENILCBlYWNoIHJvdyBzaG93cyBvbmx5IGl0 cyBmaXJzdCBtYXRjaCByZXN1bHQuCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9W RVIgdyBBUyBtZiwgbGFzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1sCitGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBUTyBORVhUIFJP VworICAgIFBBVFRFUk4gKEErPyBCKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1Qo dmFsKSA9IExBU1QodmFsKQorKTsKKworLS0gRklSU1QvTEFTVCAyLWFyZyBvZmZzZXQgZm9ybQor LS0KKy0tIEZJUlNUKHZhbCwgMCkgPSBGSVJTVCh2YWwpOiBtYXRjaF9zdGFydCByb3cKK1NFTEVD VCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcg QVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIEZJUlNUKHZhbCwgMCkgPSAxMAorKTsKKworLS0gRklSU1QodmFs LCAxKTogbWF0Y2hfc3RhcnQgKyAxIHJvdyAoc2Vjb25kIHJvdyBvZiBtYXRjaCkKKy0tIG1hdGNo X3N0YXJ0PTEoMTApOiBGSVJTVCh2YWwsMSk9MjAsIEIgbmVlZHMgdmFsPTIwIOKGkiBpZDIoMjAp IG1hdGNoLCBpZDMoMzApIG5vCistLSBtYXRjaF9zdGFydD0zKDMwKTogRklSU1QodmFsLDEpPTEw LCBCIG5lZWRzIHZhbD0xMCDihpIgaWQ0KDEwKSBtYXRjaAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgdmFsID0gRklSU1QodmFsLCAxKQorKTsKKworLS0gRklSU1QodmFsLCA5OSk6IG9mZnNldCBi ZXlvbmQgbWF0Y2ggcmFuZ2Ug4oaSIE5VTEwsIG5vIG1hdGNoCitTRUxFQ1QgaWQsIHZhbCwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBGSVJTVCh2YWwsIDk5KSBJUyBOT1QgTlVM TAorKTsKKworLS0gTEFTVCh2YWwsIDApID0gTEFTVCh2YWwpOiBjdXJyZW50IHJvdworU0VMRUNU IGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBB UyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBS T1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRF UiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklO RSBBIEFTIFRSVUUsIEIgQVMgTEFTVCh2YWwsIDApID4gMTUKKyk7CisKKy0tIExBU1QodmFsLCAx KTogb25lIHJvdyBiYWNrIGZyb20gY3VycmVudCAocHJldmlvdXMgbWF0Y2ggcm93KQorLS0gQXQg QiBldmFsdWF0aW9uIG9uIGlkMjogTEFTVCh2YWwsMSkgPSB2YWwgYXQgaWQxID0gMTAKKy0tIEIg bWF0Y2hlcyB3aGVuIHByZXZpb3VzIHJvdyB2YWwgPCAzMAorU0VMRUNUIGlkLCB2YWwsIGZpcnN0 X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnBy X25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIg QVMgTEFTVCh2YWwsIDEpIDwgMzAKKyk7CisKKy0tIExBU1QodmFsLCA5OSk6IG9mZnNldCBiZWZv cmUgbWF0Y2hfc3RhcnQg4oaSIE5VTEwKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcg QVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAg Uk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZU RVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIExBU1QodmFsLCA5OSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIEVy cm9yOiBOVUxMIG9mZnNldAorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJw cl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAg REVGSU5FIEEgQVMgRklSU1QodmFsLCBOVUxMOjppbnQ4KSBJUyBOVUxMCispOworCistLSBFcnJv cjogbmVnYXRpdmUgb2Zmc2V0CitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEZST00g cnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4g Q1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAg ICBERUZJTkUgQSBBUyBMQVNUKHZhbCwgLTEpIElTIE5VTEwKKyk7CisKKy0tIEZJUlNUL0xBU1Qg b3V0c2lkZSBERUZJTkUgY2xhdXNlIChlcnJvciBjYXNlcykKK1NFTEVDVCBmaXJzdCh2YWwpIEZS T00gcnByX25hdjsKK1NFTEVDVCBsYXN0KHZhbCkgRlJPTSBycHJfbmF2OworU0VMRUNUIGZpcnN0 KHZhbCwgMSkgRlJPTSBycHJfbmF2OworCistLSBGdW5jdGlvbmFsIG5vdGF0aW9uOiBzaG91bGQg YWNjZXNzIGNvbHVtbiwgbm90IFJQUiBuYXZpZ2F0aW9uCitDUkVBVEUgVEVNUCBUQUJMRSBycHJf bmFtZXMgKHByZXYgaW50LCBuZXh0IGludCwgZmlyc3QgdGV4dCwgbGFzdCB0ZXh0KTsKK0lOU0VS VCBJTlRPIHJwcl9uYW1lcyBWQUxVRVMgKDEsIDIsICdKb2UnLCAnQmxvdycpOworU0VMRUNUIHBy ZXYoZiksIG5leHQoZiksIGZpcnN0KGYpLCBsYXN0KGYpIEZST00gcnByX25hbWVzIGY7CitEUk9Q IFRBQkxFIHJwcl9uYW1lczsKKworLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogUFJFVihGSVJTVCh2 YWwpLCBNKQorLS0gcnByX25hdjogKDEsMTApLCgyLDIwKSwoMywzMCksKDQsMTApLCg1LDUwKSwo NiwxMCkKKy0tIFBSRVYoRklSU1QodmFsKSwgMSk6IHRhcmdldCA9IG1hdGNoX3N0YXJ0ICsgMCAt IDEgPSBtYXRjaF9zdGFydCAtIDEKKy0tIEF0IG1hdGNoX3N0YXJ0PTE6IHRhcmdldD0wIOKGkiBv dXQgb2YgcmFuZ2Ug4oaSIE5VTEwKKy0tIEF0IG1hdGNoX3N0YXJ0PTM6IHRhcmdldD0yKHZhbD0y MCkg4oaSIDIwID4gMCDihpIgdHJ1ZQorU0VMRUNUIGlkLCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBP VkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQKK0ZST00gcnByX25hdiBXSU5ET1cg dyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5E IFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJT VCh2YWwpLCAxKSA+IDAKKyk7CisKKy0tIE5FWFQoRklSU1QodmFsLCAxKSwgMSk6IHRhcmdldCA9 IG1hdGNoX3N0YXJ0ICsgMSArIDEgPSBtYXRjaF9zdGFydCArIDIKKy0tIEF0IG1hdGNoX3N0YXJ0 PTEsIEIgb24gaWQyOiB0YXJnZXQ9MSsxKzE9Myh2YWw9MzApLCAzMD4wIOKGkiB0cnVlCitTRUxF Q1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIEFG VEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVG SU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCwgMSksIDEpID4gMAorKTsKKworLS0g UFJFVihMQVNUKHZhbCksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMCAtIDIgPSBjdXJyZW50 cG9zIC0gMgorLS0gU2FtZSBiYWNrd2FyZCByZWFjaCBhcyBQUkVWKHZhbCwgMikKK1NFTEVDVCBp ZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFTIG1mLCBjb3VudCgqKSBPVkVSIHcgQVMg Y250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9X UyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUg QSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2YWwpLCAyKSBJUyBOT1QgTlVMTAorKTsKKworLS0g TkVYVChMQVNUKHZhbCwgMSksIDIpOiB0YXJnZXQgPSBjdXJyZW50cG9zIC0gMSArIDIgPSBjdXJy ZW50cG9zICsgMQorLS0gTG9va3MgMSByb3cgYWhlYWQ6IHNhbWUgYXMgTkVYVCh2YWwsIDEpCitT RUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZF UiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAor ICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAg IEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEgQispCisgICAg REVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKExBU1QodmFsLCAxKSwgMikgSVMgTk9UIE5VTEwK Kyk7CisKKy0tIENvbXBvdW5kOiBvdXRlciBvZmZzZXQgYmV5b25kIHBhcnRpdGlvbiAoUFJFViBm YXIgYmFjaykKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJw cl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENV UlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAg ICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsKSwgOTkpIElTIE5PVCBOVUxM CispOworCistLSBDb21wb3VuZDogb3V0ZXIgb2Zmc2V0IGJleW9uZCBwYXJ0aXRpb24gKE5FWFQg ZmFyIGZvcndhcmQpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJP TSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VF TiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQisp CisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDk5KSBJUyBOT1Qg TlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlvbmQgbWF0Y2ggcmFuZ2Ug KEZJUlNUIG9mZnNldCB0b28gbGFyZ2UpCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEEgQispCisgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHZhbCwg OTkpLCAxKSBJUyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIG9mZnNldCBiZXlv bmQgbWF0Y2ggcmFuZ2UgKExBU1Qgb2Zmc2V0IHRvbyBsYXJnZSkKK1NFTEVDVCBpZCwgdmFsLCBj b3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9S REVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5F WFQoTEFTVCh2YWwsIDk5KSwgMSkgSVMgTk9UIE5VTEwKKyk7CisKKy0tIENvbXBvdW5kOiBOVUxM IG91dGVyIG9mZnNldCAocnVudGltZSBlcnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBP VkVSIHcgRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYoRklSU1QodmFsKSwgTlVMTDo6aW50OCkgSVMg TlVMTAorKTsKKworLS0gQ29tcG91bmQ6IG5lZ2F0aXZlIG91dGVyIG9mZnNldCAocnVudGltZSBl cnJvcikKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcgRlJPTSBycHJfbmF2IFdJTkRP VyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IE5FWFQoTEFTVCh2YWwpLCAtMSkgSVMgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGRlZmF1bHQg b2Zmc2V0cyBvbiBib3RoIHNpZGVzCistLSBQUkVWKEZJUlNUKHZhbCkpOiBpbm5lcj0wIChtYXRj aF9zdGFydCksIG91dGVyPTEg4oaSIHRhcmdldCA9IG1hdGNoX3N0YXJ0IC0gMQorU0VMRUNUIGlk LCB2YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBj bnQKK0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dT IEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBN QVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBB IEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpKSBJUyBOT1QgTlVMTAorKTsKKworLS0gTkVY VChMQVNUKHZhbCkpOiBpbm5lcj0wIChjdXJyZW50cG9zKSwgb3V0ZXI9MSDihpIgdGFyZ2V0ID0g Y3VycmVudHBvcyArIDEKK1NFTEVDVCBpZCwgdmFsLCBmaXJzdF92YWx1ZShpZCkgT1ZFUiB3IEFT IG1mLCBjb3VudCgqKSBPVkVSIHcgQVMgY250CitGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAor ICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFU VEVSTiAoQSBCKykKKyAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIE5FWFQoTEFTVCh2YWwpKSBJ UyBOT1QgTlVMTAorKTsKKworLS0gQ29tcG91bmQ6IGlubmVyIE5VTEwgb2Zmc2V0IChydW50aW1l IGVycm9yKQorU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lO RE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9X IEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEg QVMgUFJFVihGSVJTVCh2YWwsIE5VTEw6OmludDgpLCAxKSBJUyBOVUxMCispOworCistLSBDb21w b3VuZDogaW5uZXIgbmVnYXRpdmUgb2Zmc2V0IChydW50aW1lIGVycm9yKQorU0VMRUNUIGlkLCB2 YWwsIGNvdW50KCopIE9WRVIgdyBGUk9NIHJwcl9uYXYgV0lORE9XIHcgQVMgKAorICAgIE9SREVS IEJZIGlkCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9X SU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChMQVNUKHZhbCwgLTEp LCAxKSBJUyBOVUxMCispOworCistLSBDb21wb3VuZCArIGhvc3QgdmFyaWFibGUgb2Zmc2V0cwor UFJFUEFSRSB0ZXN0X2NvbXBvdW5kX29mZnNldChpbnQ4LCBpbnQ4KSBBUworU0VMRUNUIGlkLCB2 YWwsIGZpcnN0X3ZhbHVlKGlkKSBPVkVSIHcgQVMgbWYsIGNvdW50KCopIE9WRVIgdyBBUyBjbnQK K0ZST00gcnByX25hdiBXSU5ET1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJF VFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRD SCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORSBBIEFT IFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworRVhF Q1VURSB0ZXN0X2NvbXBvdW5kX29mZnNldCgwLCAxKTsKK0VYRUNVVEUgdGVzdF9jb21wb3VuZF9v ZmZzZXQoMSwgMSk7CitERUFMTE9DQVRFIHRlc3RfY29tcG91bmRfb2Zmc2V0OworCistLSBDb21w b3VuZCArIFNLSVAgVE8gTkVYVCBST1c6IG92ZXJsYXBwaW5nIG1hdGNoZXMgd2l0aCBQUkVWKEZJ UlNUKCkpCitTRUxFQ1QgaWQsIHZhbCwgZmlyc3RfdmFsdWUoaWQpIE9WRVIgdyBBUyBtZiwgY291 bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRF UiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVCBST1cKKyAgICBQQVRURVJOIChBIEIr KQorICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgUFJFVihGSVJTVCh2YWwpLCAxKSA+IDAKKyk7 CisKKy0tIENvbXBvdW5kICsgbXVsdGlwbGUgcGFydGl0aW9ucworQ1JFQVRFIFRFTVAgVEFCTEUg cnByX25hdl9wYXJ0IChnaWQgaW50LCBpZCBpbnQsIHZhbCBpbnQpOworSU5TRVJUIElOVE8gcnBy X25hdl9wYXJ0IFZBTFVFUworICAgICgxLDEsMTApLCgxLDIsMjApLCgxLDMsMzApLAorICAgICgy LDEsNDApLCgyLDIsNTApLCgyLDMsNjApOworU0VMRUNUIGdpZCwgaWQsIHZhbCwgZmlyc3RfdmFs dWUoaWQpIE9WRVIgdyBBUyBtZiwgY291bnQoKikgT1ZFUiB3IEFTIGNudAorRlJPTSBycHJfbmF2 X3BhcnQgV0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBnaWQgT1JERVIgQlkgaWQKKyAg ICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBB RlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERF RklORSBBIEFTIFRSVUUsIEIgQVMgTkVYVChGSVJTVCh2YWwpLCAxKSA+IDAKKyk7CitEUk9QIFRB QkxFIHJwcl9uYXZfcGFydDsKKworLS0gUmV2ZXJzZSBuZXN0aW5nOiBGSVJTVCB3cmFwcGluZyBQ UkVWIGlzIHByb2hpYml0ZWQKK1NFTEVDVCBpZCwgdmFsIEZST00gcnByX25hdiBXSU5ET1cgdyBB UyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIpCisgICAgREVGSU5FIEEgQVMgVFJV RSwgQiBBUyBGSVJTVChQUkVWKHZhbCkpID4gMAorKTsKKworLS0gUmV2ZXJzZSBuZXN0aW5nOiBM QVNUIHdyYXBwaW5nIE5FWFQgaXMgcHJvaGliaXRlZAorU0VMRUNUIGlkLCB2YWwgRlJPTSBycHJf bmF2IFdJTkRPVyB3IEFTICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJS RU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQikKKyAgICBE RUZJTkUgQSBBUyBUUlVFLCBCIEFTIExBU1QoTkVYVCh2YWwpKSA+IDAKKyk7CisKK0RST1AgVEFC TEUgcnByX25hdjsKKwogLS0KIC0tIFNLSVAgVE8gLyBCYWNrdHJhY2tpbmcgLyBGcmFtZSBib3Vu ZGFyeQogLS0KQEAgLTExMjksNiArMTQ4NiwyMyBAQCBGUk9NIHJlc3VsdCBXSEVSRSBtYXRjaF9s ZW4gPiAwOwogUkVTRVQgaml0X2Fib3ZlX2Nvc3Q7CiBSRVNFVCBqaXQ7CiAKKy0tIEpJVCBjb21w b3VuZCBuYXZpZ2F0aW9uIHRlc3QKK1NFVCBqaXQgPSBvbjsKK1NFVCBqaXRfYWJvdmVfY29zdCA9 IDA7CitTRUxFQ1QgY291bnQoKikgQVMgbWF0Y2hlZF9yb3dzCitGUk9NICgKKyBTRUxFQ1Qgdiwg Y291bnQoKikgT1ZFUiB3IEFTIG1hdGNoX2xlbgorIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEw MDApIEFTIHQodikKKyBXSU5ET1cgdyBBUyAoCisgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cK KyAgUEFUVEVSTiAoQSBCKykKKyAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBQUkVWKEZJUlNUKHYp LCAxKSA+IDAKKyApCispIHN1YiBXSEVSRSBtYXRjaF9sZW4gPiAwOworUkVTRVQgaml0X2Fib3Zl X2Nvc3Q7CitSRVNFVCBqaXQ7CisKIC0tCiAtLSBJR05PUkUgTlVMTFMKIC0tCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9ycHJfYmFzZS5zcWwKaW5kZXggM2FjY2VjYjczYmEuLmY5ZDVhYTg5ZDdhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHJfYmFzZS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcnByX2Jhc2Uuc3FsCkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBXSU5ET1cgdyBBUyAoCiBE Uk9QIFRBQkxFIHJwcl9ib3VuZHM7CiAKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMg VGVzdHMgKFBSRVYgLyBORVhUKQorLS0gTmF2aWdhdGlvbiBGdW5jdGlvbnMgVGVzdHMgKFBSRVYg LyBORVhUIC8gRklSU1QgLyBMQVNUKQogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIApAQCAtMTI3OCw2ICsxMjc4LDUzIEBA IFdJTkRPVyB3IEFTICgKIE9SREVSIEJZIGlkOwogLS0gRXhwZWN0ZWQ6IEVSUk9SOiBuZXh0IGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlCiAKKy0tIEZJUlNUIGZ1bmN0aW9uIC0g cmVmZXJlbmNlIG1hdGNoX3N0YXJ0IHJvdworU0VMRUNUIGlkLCB2YWwsIENPVU5UKCopIE9WRVIg dyBhcyBjbnQKK0ZST00gcnByX25hdgorV0lORE9XIHcgQVMgKAorICAgIE9SREVSIEJZIGlkCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg UEFUVEVSTiAoQSBCKykKKyAgICBERUZJTkUKKyAgICAgICAgQSBBUyB2YWwgPiAwLAorICAgICAg ICBCIEFTIHZhbCA+IEZJUlNUKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBMQVNUIGZ1bmN0 aW9uIHdpdGhvdXQgb2Zmc2V0IC0gZXF1aXZhbGVudCB0byBjdXJyZW50IHJvdydzIHZhbHVlCitT RUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikgT1ZFUiB3IGFzIGNudAorRlJPTSBycHJfbmF2CitXSU5E T1cgdyBBUyAoCisgICAgT1JERVIgQlkgaWQKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cg QU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQor ICAgICAgICBBIEFTIHZhbCA+IDAsCisgICAgICAgIEIgQVMgTEFTVCh2YWwpID4gUFJFVih2YWwp CispCitPUkRFUiBCWSBpZDsKKworLS0gRklSU1QgYW5kIExBU1QgY29tYmluZWQKK1NFTEVDVCBp ZCwgdmFsLCBDT1VOVCgqKSBPVkVSIHcgYXMgY250CitGUk9NIHJwcl9uYXYKK1dJTkRPVyB3IEFT ICgKKyAgICBPUkRFUiBCWSBpZAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5C T1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEgQispCisgICAgREVGSU5FCisgICAgICAg IEEgQVMgdmFsID4gMCwKKyAgICAgICAgQiBBUyB2YWwgPiBGSVJTVCh2YWwpIEFORCBMQVNUKHZh bCkgPiBQUkVWKHZhbCkKKykKK09SREVSIEJZIGlkOworCistLSBGSVJTVCBmdW5jdGlvbiBjYW5u b3QgYmUgdXNlZCBvdGhlciB0aGFuIGluIERFRklORQorU0VMRUNUIEZJUlNUKGlkKSwgaWQsIHZh bCBGUk9NIHJwcl9uYXY7CistLSBFeHBlY3RlZDogRVJST1I6IGZpcnN0IGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlCisKKy0tIExBU1QgZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQg b3RoZXIgdGhhbiBpbiBERUZJTkUKK1NFTEVDVCBMQVNUKGlkKSwgaWQsIHZhbCBGUk9NIHJwcl9u YXY7CistLSBFeHBlY3RlZDogRVJST1I6IGxhc3QgY2FuIG9ubHkgYmUgdXNlZCBpbiBhIERFRklO RSBjbGF1c2UKKwogRFJPUCBUQUJMRSBycHJfbmF2OwogCiAtLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NDgsNiArMTU5 NSw2NiBAQCBXSU5ET1cgdyBBUyAoCiBTRUxFQ1QgKiBGUk9NIHJwcl9zZXJpYWxfdjggT1JERVIg QlkgaWQ7CiBTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfdjgnOjpyZWdjbGFzcyk7 CiAKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogUFJFViB3aXRoIG9mZnNl dAorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXYxIEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQo KikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAg ICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMg VFJVRSwgQiBBUyB2YWwgPiBQUkVWKHZhbCwgMikpOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdy cHJfc2VyaWFsX25hdjEnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2Vy aWFsaXphdGlvbjogRklSU1QgYW5kIExBU1QKK0NSRUFURSBWSUVXIHJwcl9zZXJpYWxfbmF2MiBB UworU0VMRUNUIGlkLCB2YWwsIGNvdW50KCopIE9WRVIgdworRlJPTSBycHJfc2VyaWFsCitXSU5E T1cgdyBBUyAoT1JERVIgQlkgaWQKKyAgICAgICAgICAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBS T1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICAgICAgICAgICBQQVRURVJOIChBIEIrKQor ICAgICAgICAgICAgIERFRklORSBBIEFTIFRSVUUsIEIgQVMgRklSU1QodmFsKSA8IExBU1QodmFs LCAxKSk7CitTRUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Mic6OnJlZ2NsYXNz KTsKKworLS0gTmF2aWdhdGlvbiBmdW5jdGlvbiBzZXJpYWxpemF0aW9uOiBjb21wb3VuZCBQUkVW KEZJUlNUKCkpCitDUkVBVEUgVklFVyBycHJfc2VyaWFsX25hdjMgQVMKK1NFTEVDVCBpZCwgdmFs LCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3NlcmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZ IGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVSTiAoQSBCKykKKyAgICAgICAgICAgICBERUZJ TkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoRklSU1QodmFsLCAxKSwgMikgPiAwKTsKK1NFTEVDVCBw Z19nZXRfdmlld2RlZigncnByX3NlcmlhbF9uYXYzJzo6cmVnY2xhc3MpOworCistLSBOYXZpZ2F0 aW9uIGZ1bmN0aW9uIHNlcmlhbGl6YXRpb246IGNvbXBvdW5kIE5FWFQoTEFTVCgpKQorQ1JFQVRF IFZJRVcgcnByX3NlcmlhbF9uYXY0IEFTCitTRUxFQ1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3 CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBpZAorICAgICAgICAgICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgICAg ICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAgICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBB UyBORVhUKExBU1QodmFsKSwgMikgSVMgTk9UIE5VTEwpOworU0VMRUNUIHBnX2dldF92aWV3ZGVm KCdycHJfc2VyaWFsX25hdjQnOjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24g c2VyaWFsaXphdGlvbjogY29tcG91bmQgUFJFVihMQVNUKCkpCitDUkVBVEUgVklFVyBycHJfc2Vy aWFsX25hdjUgQVMKK1NFTEVDVCBpZCwgdmFsLCBjb3VudCgqKSBPVkVSIHcKK0ZST00gcnByX3Nl cmlhbAorV0lORE9XIHcgQVMgKE9SREVSIEJZIGlkCisgICAgICAgICAgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgICAgICAgICAgUEFUVEVS TiAoQSBCKykKKyAgICAgICAgICAgICBERUZJTkUgQSBBUyBUUlVFLCBCIEFTIFBSRVYoTEFTVCh2 YWwsIDEpLCAyKSA+IDApOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdycHJfc2VyaWFsX25hdjUn OjpyZWdjbGFzcyk7CisKKy0tIE5hdmlnYXRpb24gZnVuY3Rpb24gc2VyaWFsaXphdGlvbjogY29t cG91bmQgTkVYVChGSVJTVCgpKQorQ1JFQVRFIFZJRVcgcnByX3NlcmlhbF9uYXY2IEFTCitTRUxF Q1QgaWQsIHZhbCwgY291bnQoKikgT1ZFUiB3CitGUk9NIHJwcl9zZXJpYWwKK1dJTkRPVyB3IEFT IChPUkRFUiBCWSBpZAorICAgICAgICAgICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQg VU5CT1VOREVEIEZPTExPV0lORworICAgICAgICAgICAgIFBBVFRFUk4gKEEgQispCisgICAgICAg ICAgICAgREVGSU5FIEEgQVMgVFJVRSwgQiBBUyBORVhUKEZJUlNUKHZhbCksIDMpID4gMCk7CitT RUxFQ1QgcGdfZ2V0X3ZpZXdkZWYoJ3Jwcl9zZXJpYWxfbmF2Nic6OnJlZ2NsYXNzKTsKKwogLS0g UmVsdWN0YW50IHsxfT8gcXVhbnRpZmllciBkZXBhcnNlIHRocm91Z2ggcnVsZXV0aWxzCiBDUkVB VEUgVklFVyBycHJfcXVhbnRfcmVsdWN0YW50X3YgQVMKIFNFTEVDVCBpZCwgdmFsLCBjb3VudCgq KSBPVkVSIHcKQEAgLTIxMjEsNiArMjIyOCwzMyBAQCBPUkRFUiBCWSBpZDsKIAogRFJPUCBUQUJM RSBycHJfbnVsbDsKIAorLS0gQ29tcG91bmQgbmF2aWdhdGlvbjogaW5uZXIgbmF2IG11c3QgYmUg ZGlyZWN0IGFyZyAobm90IG5lc3RlZCBpbiBleHByZXNzaW9uKQorU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAg IFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBB VFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodiArIEZJUlNUKHYpKSA+IDAKKyk7CisK Ky0tIEZJUlNUL0xBU1Qgd3JhcHBpbmcgRklSU1QvTEFTVDogcHJvaGliaXRlZAorU0VMRUNUIGNv dW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcg QVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lO RworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIEZJUlNUKEZJUlNUKHYpKSA+IDAK Kyk7CisKKy0tIFRyaXBsZSBuZXN0aW5nOiBwcm9oaWJpdGVkICgzLWxldmVsIGRlZXAgbmF2aWdh dGlvbikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp IHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVO Qk9VTkRFRCBGT0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVW KEZJUlNUKFBSRVYodikpKSA+IDAKKyk7CisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gV2luZG93IERlZHVwbGljYXRp b24gVGVzdHMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4 cGxhaW4uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByX2V4cGxhaW4uc3FsCmluZGV4IDUw ODJjYzJiNWRlLi5hMzc4OWU5MjYzMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cnByX2V4cGxhaW4uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jwcl9leHBsYWluLnNx bApAQCAtMzYsNyArMzYsNyBAQAogLS0gICBXaW5kb3cgRnVuY3Rpb24gQ29tYmluYXRpb25zCiAt LSAgIERFRklORSBFeHByZXNzaW9uIFZhcmlhdGlvbnMKIC0tICAgTGFyZ2UgU2NhbGUgU3RhdGlz dGljcyBWZXJpZmljYXRpb24KLS0tICAgTmF2IE1hcmsgTG9va2JhY2sgKHR1cGxlc3RvcmUgdHJp bSkKKy0tICAgTmF2IE1hcmsgTG9va2JhY2svTG9va2FoZWFkICh0dXBsZXN0b3JlIHRyaW0pCiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIAogLS0gRmlsdGVyIGZ1bmN0aW9uIHRvIG5vcm1hbGl6ZSBwbGF0Zm9ybS1kZXBlbmRl bnQgbWVtb3J5IHZhbHVlcyAobm90IE5GQSBzdGF0aXN0aWNzKS4KQEAgLTcwNSw2ICs3MDUsNzYg QEAgV0lORE9XIHcgQVMgKAogICAgICAgICAgICBDIEFTIHYgJSAyMSBJTiAoMywgNSwgOCwgMTAs IDEzLCAxNSwgMTgsIDIwKQogKTsnKTsKIAorLS0gTm8gYWJzb3JwdGlvbiB3aGVuIERFRklORSB1 c2VzIEZJUlNUIChtYXRjaF9zdGFydC1kZXBlbmRlbnQpCistLSBTYW1lIHBhdHRlcm4gYXMgcnBy X2V2X2N0eF9hYnNvcmJfdW5ib3VuZGVkIGJ1dCB3aXRoIEZJUlNUIGluIERFRklORS4KKy0tIENv bXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSAwIGhlcmUgdnMgPjAgYWJvdmUuCitDUkVB VEUgVklFVyBycHJfZXZfY3R4X25vX2Fic29yYl9maXJzdCBBUworU0VMRUNUIGNvdW50KCopIE9W RVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBBRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAg IERFRklORSBBIEFTIHYgJSA1IDw+IDAsIEIgQVMgdiAlIDUgPSAwIEFORCB2ID4gRklSU1QodikK Kyk7CitTRUxFQ1QgbGluZSBGUk9NIHVubmVzdChzdHJpbmdfdG9fYXJyYXkocGdfZ2V0X3ZpZXdk ZWYoJ3Jwcl9ldl9jdHhfbm9fYWJzb3JiX2ZpcnN0JyksIEUnXG4nKSkgQVMgbGluZSBXSEVSRSBs aW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBMQUlOIChB TkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9GRikK K1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUwKSBBUyBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAg UEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYgJSA1ID0g MCBBTkQgdiA+IEZJUlNUKHYpCispOycpOworCistLSBBYnNvcnB0aW9uIHByZXNlcnZlZCB3aGVu IERFRklORSB1c2VzIG9ubHkgTEFTVCB3aXRob3V0IG9mZnNldAorLS0gTEFTVCh2KSBpcyBtYXRj aF9zdGFydC1pbmRlcGVuZGVudCAoYWx3YXlzIGN1cnJlbnRwb3MpLCBzbyBhYnNvcnB0aW9uCist LSByZW1haW5zIGFjdGl2ZS4gIENvbXBhcmU6IGFic29yYmVkIGNvdW50IHNob3VsZCBiZSA+MCwg bGlrZSB0aGUKKy0tIFBSRVYtb25seSBjYXNlIGFib3ZlLgorQ1JFQVRFIFZJRVcgcnByX2V2X2N0 eF9hYnNvcmJfbGFzdCBBUworU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwgNTApIEFTIHModikKK1dJTkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VS UkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBB U1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBKyBCKQorICAgIERFRklORSBBIEFTIHYgJSA1IDw+ IDAsIEIgQVMgTEFTVCh2KSAlIDUgPSAwCispOworU0VMRUNUIGxpbmUgRlJPTSB1bm5lc3Qoc3Ry aW5nX3RvX2FycmF5KHBnX2dldF92aWV3ZGVmKCdycHJfZXZfY3R4X2Fic29yYl9sYXN0JyksIEUn XG4nKSkgQVMgbGluZSBXSEVSRSBsaW5lIH4gJ1BBVFRFUk4nOworU0VMRUNUIHJwcl9leHBsYWlu X2ZpbHRlcignCitFWFBMQUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1J TkcgT0ZGLCBTVU1NQVJZIE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDUwKSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVO IENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJ UCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUg NSA8PiAwLCBCIEFTIExBU1QodikgJSA1ID0gMAorKTsnKTsKKworLS0gTm8gYWJzb3JwdGlvbiB3 aXRoIGNvbXBvdW5kIFBSRVYoRklSU1QoKSkgKG1hdGNoX3N0YXJ0LWRlcGVuZGVudCkKK0NSRUFU RSBWSUVXIHJwcl9ldl9jdHhfbm9fYWJzb3JiX2NvbXBvdW5kIEFTCitTRUxFQ1QgY291bnQoKikg T1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1MCkgQVMgcyh2KQorV0lORE9XIHcgQVMg KAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORwor ICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEErIEIpCisg ICAgREVGSU5FIEEgQVMgdiAlIDUgPD4gMCwgQiBBUyB2ICUgNSA9IDAgQU5EIFBSRVYoRklSU1Qo diksIDEpIElTIE5PVCBOVUxMCispOworU0VMRUNUIHJwcl9leHBsYWluX2ZpbHRlcignCitFWFBM QUlOIChBTkFMWVpFLCBCVUZGRVJTIE9GRiwgQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKK1NFTEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDUw KSBBUyBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9X CisgICAgUEFUVEVSTiAoQSsgQikKKyAgICBERUZJTkUgQSBBUyB2ICUgNSA8PiAwLCBCIEFTIHYg JSA1ID0gMCBBTkQgUFJFVihGSVJTVCh2KSwgMSkgSVMgTk9UIE5VTEwKKyk7Jyk7CisKIC0tID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gTWF0Y2ggTGVuZ3RoIFN0YXRpc3RpY3MgVGVzdHMKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMjQ3OCw5ICsy NTQ4LDEwIEBAIFNFTEVDVCAqIEZST00gKAogKSB0IFdIRVJFIGNudCA+IDA7CiAKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gTmF2IE1hcmsgTG9va2JhY2sgVGVzdHMKLS0tIFZlcmlmaWVzIHBsYW5uZXItY29tcHV0ZWQg bmF2aWdhdGlvbiBvZmZzZXQgZm9yIHR1cGxlc3RvcmUgdHJpbS4KLS0tIExvb2tiYWNrOiBob3cg ZmFyIGJhY2sgZnJvbSBjdXJyZW50cG9zIChQUkVWL0xBU1QpLgorLS0gTmF2IE1hcmsgTG9va2Jh Y2svTG9va2FoZWFkIFRlc3RzCistLSBWZXJpZmllcyBwbGFubmVyLWNvbXB1dGVkIG5hdmlnYXRp b24gb2Zmc2V0cyBmb3IgdHVwbGVzdG9yZSB0cmltLgorLS0gTG9va2JhY2s6IGhvdyBmYXIgYmFj ayBmcm9tIGN1cnJlbnRwb3MgKFBSRVYsIExBU1QsIGNvbXBvdW5kIFBSRVZfTEFTVC9ORVhUX0xB U1QpLgorLS0gTG9va2FoZWFkOiBob3cgZmFyIGZvcndhcmQgZnJvbSBtYXRjaF9zdGFydCAoRklS U1QsIGNvbXBvdW5kIFBSRVZfRklSU1QvTkVYVF9GSVJTVCkuCiAtLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLS0gUHJlcGFy ZSBzdGF0ZW1lbnQgZm9yIGhvc3QgdmFyaWFibGUgb2Zmc2V0IHRlc3QgYmVsb3cKQEAgLTI1NDcs MyArMjYxOCwxNjYgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHJwcl9uYXZfb2Zmc2V0 X3ByZXAoMik7CiBSRVNFVCBwbGFuX2NhY2hlX21vZGU7CiBERUFMTE9DQVRFIHJwcl9uYXZfb2Zm c2V0X3ByZXA7CiAKKy0tIEZJUlNUKHYpOiByZXRhaW4gYWxsIChyZWZlcmVuY2VzIG1hdGNoX3N0 YXJ0IHJvdykKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVU V0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEEr KQorICAgIERFRklORSBBIEFTIHYgPiBGSVJTVCh2KQorKTsKKworLS0gTEFTVCh2LCAxKTogYmFj a3dhcmQgcmVhY2ggMSwgc2FtZSBhcyBQUkVWKHYsIDEpCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYsIDEpID4g MAorKTsKKworLS0gTEFTVCh2KSB3aXRob3V0IG9mZnNldCArIFBSRVYodik6IG5vIG1hdGNoX3N0 YXJ0IGRlcGVuZGVuY3ksIG9mZnNldCAxCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3Vu dCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFT ICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcK KyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBMQVNUKHYpID4gUFJFVih2KQorKTsK KworLS0gQ29tcG91bmQgUFJFVihGSVJTVCh2YWwsIDEpLCAyKTogbG9va2JhY2sgZnJvbSBtYXRj aF9zdGFydCwgZmlyc3RPZmZzZXQgPSAxLTIgPSAtMQorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYpCitXSU5E T1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9M TE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihGSVJTVCh2LCAx KSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKEZJUlNUKHZhbCksIDMpOiBmaXJzdE9m ZnNldCA9IDArMyA9IDMKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIg dworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJP V1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRF Uk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiksIDMpID4gMAorKTsKKworLS0g Q29tcG91bmQgUFJFVihMQVNUKHZhbCksIDIpOiBsb29rYmFjayA9IDArMiA9IDIKK0VYUExBSU4g KENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMo MSwxMCkgcyh2KQorV0lORE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgVU5CT1VOREVEIEZPTExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFT IFBSRVYoTEFTVCh2KSwgMikgPiAwCispOworCistLSBDb21wb3VuZCBORVhUKExBU1QodmFsLCAx KSwgMyk6IGxvb2tiYWNrID0gbWF4KDEtMywgMCkgPSAwCitFWFBMQUlOIChDT1NUUyBPRkYpIFNF TEVDVCBjb3VudCgqKSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJ TkRPVyB3IEFTICgKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBG T0xMT1dJTkcKKyAgICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBORVhUKExBU1Qodiwg MSksIDMpID4gMAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25z dGFudCBuZWFyLW92ZXJmbG93IChOK00ganVzdCBmaXRzIGludDY0KQorRVhQTEFJTiAoQ09TVFMg T0ZGKSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBz KHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJP VU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVihM QVNUKHYsIDQ2MTE2ODYwMTg0MjczODc5MDMpLCA0NjExNjg2MDE4NDI3Mzg3OTAzKSBJUyBOT1Qg TlVMTAorKTsKKworLS0gQ29tcG91bmQgUFJFVihMQVNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBv dmVyZmxvdyAtPiByZXRhaW4gYWxsCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKExBU1QodiwgNDYxMTY4NjAxODQy NzM4NzkwNCksIDQ2MTE2ODYwMTg0MjczODc5MDQpIElTIE5PVCBOVUxMCispOworCistLSBDb21w b3VuZCBORVhUKEZJUlNUKHZhbCwgTiksIE0pOiBjb25zdGFudCBsb29rYWhlYWQgb3ZlcmZsb3cg LT4gbm8gdHJpbSBpbXBhY3QKKy0tIE4gKyBNIG92ZXJmbG93cyBpbnQ2NCwgYnV0IHRhcmdldCBp cyBmb3J3YXJkIGZyb20gbWF0Y2hfc3RhcnQgc28gaXQgbmV2ZXIKKy0tIGNvbnN0cmFpbnMgdHJp bS4gIExvb2thaGVhZCByZW1haW5zIGF0IGRlZmF1bHQgKDApLgorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgTkVYVChGSVJT VCh2LCA0NjExNjg2MDE4NDI3Mzg3OTA0KSwgNDYxMTY4NjAxODQyNzM4NzkwNCkgSVMgTk9UIE5V TEwKKyk7CisKKy0tIENvbXBvdW5kIFBSRVYoTEFTVCh2YWwsICQxKSwgJDIpOiBwYXJhbWV0ZXIg bG9va2JhY2sgb3ZlcmZsb3cgLT4gcmV0YWluIGFsbAorLS0gRVhQTEFJTiBzaG93cyAicnVudGlt ZSIgKHBsYW4tbGV2ZWwpOyBFWFBMQUlOIEFOQUxZWkUgc2hvd3MgInJldGFpbiBhbGwiCistLSAo ZXhlY3V0b3ItcmVzb2x2ZWQpLgorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2tiYWNrKGludDgs IGludDgpIEFTCitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3Nlcmllcygx LDEwKSBzKHYpCitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFO RCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMg UFJFVihMQVNUKHYsICQxKSwgJDIpIElTIE5PVCBOVUxMCispOworU0VUIHBsYW5fY2FjaGVfbW9k ZSA9IGZvcmNlX2dlbmVyaWNfcGxhbjsKK0VYUExBSU4gKENPU1RTIE9GRikgRVhFQ1VURSB0ZXN0 X292ZXJmbG93X2xvb2tiYWNrKDQ2MTE2ODYwMTg0MjczODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5 MDQpOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZIE9G RikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2soNDYxMTY4NjAxODQyNzM4Nzkw NCwgNDYxMTY4NjAxODQyNzM4NzkwNCk7CitSRVNFVCBwbGFuX2NhY2hlX21vZGU7CitERUFMTE9D QVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2JhY2s7CisKKy0tIENvbXBvdW5kIE5FWFQoRklSU1QodmFs LCAkMSksICQyKTogcGFyYW1ldGVyIGxvb2thaGVhZCBvdmVyZmxvdyAtPiBubyB0cmltIGltcGFj dAorUFJFUEFSRSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZChpbnQ4LCBpbnQ4KSBBUworU0VMRUNU IGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lORE9X IHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIE5FWFQoRklSU1QodiwgJDEp LCAkMikgSVMgTk9UIE5VTEwKKyk7CitTRVQgcGxhbl9jYWNoZV9tb2RlID0gZm9yY2VfZ2VuZXJp Y19wbGFuOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBBTkFMWVpFLCBUSU1JTkcgT0ZGLCBTVU1NQVJZ IE9GRikKKyAgICBFWEVDVVRFIHRlc3Rfb3ZlcmZsb3dfbG9va2FoZWFkKDQ2MTE2ODYwMTg0Mjcz ODc5MDQsIDQ2MTE2ODYwMTg0MjczODc5MDQpOworUkVTRVQgcGxhbl9jYWNoZV9tb2RlOworREVB TExPQ0FURSB0ZXN0X292ZXJmbG93X2xvb2thaGVhZDsKKworLS0gUFJFVih2KSArIFBSRVYodiwg JDEpOiBORUVEU19FVkFMIHBhdGggbXVzdCBhY2NvdW50IGZvciBpbXBsaWNpdCBsb29rYmFjaz0x CistLSBQcmV2aW91c2x5LCBldmFsX25hdl9tYXhfb2Zmc2V0X3dhbGtlciBza2lwcGVkIFBSRVYo dikgd2hlbiBvZmZzZXRfYXJnIHdhcworLS0gTlVMTCwgY2F1c2luZyBtYXhPZmZzZXQ9MCB3aGVu ICQxPTAsIHdoaWNoIHdvdWxkIHRyaW0gdGhlIHJvdyBuZWVkZWQgYnkKKy0tIFBSRVYodikuICBW ZXJpZnkgdGhpcyBleGVjdXRlcyB3aXRob3V0ICJjYW5ub3QgZmV0Y2ggcm93IGJlZm9yZSBtYXJr IiBlcnJvci4KK1BSRVBBUkUgdGVzdF9wcmV2X2ltcGxpY2l0X29mZnNldChpbnQ4KSBBUworU0VM RUNUIGNvdW50KCopIE9WRVIgdworRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCkgcyh2KQorV0lO RE9XIHcgQVMgKAorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZP TExPV0lORworICAgIFBBVFRFUk4gKEErKQorICAgIERFRklORSBBIEFTIFBSRVYodikgSVMgTk9U IE5VTEwgQU5EIFBSRVYodiwgJDEpIElTIE5PVCBOVUxMCispOworRVhFQ1VURSB0ZXN0X3ByZXZf aW1wbGljaXRfb2Zmc2V0KDApOworREVBTExPQ0FURSB0ZXN0X3ByZXZfaW1wbGljaXRfb2Zmc2V0 OworCistLSBSdW50aW1lIGVycm9yOiBuZWdhdGl2ZSBvZmZzZXQgYXQgZXhlY3V0aW9uIHRpbWUK K1BSRVBBUkUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoaW50OCkgQVMKK1NFTEVDVCBjb3VudCgq KSBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApIHModikKK1dJTkRPVyB3IEFTICgK KyAgICBST1dTIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAg ICBQQVRURVJOIChBKykKKyAgICBERUZJTkUgQSBBUyBQUkVWKHYsICQxKSBJUyBOT1QgTlVMTAor KTsKK0VYRUNVVEUgdGVzdF9ydW50aW1lX25lZ19vZmZzZXQoLTEpOworREVBTExPQ0FURSB0ZXN0 X3J1bnRpbWVfbmVnX29mZnNldDsKKworLS0gUnVudGltZSBlcnJvcjogbnVsbCBvZmZzZXQgYXQg ZXhlY3V0aW9uIHRpbWUKK1BSRVBBUkUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0KGludDgpIEFT CitTRUxFQ1QgY291bnQoKikgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKSBzKHYp CitXSU5ET1cgdyBBUyAoCisgICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5E RUQgRk9MTE9XSU5HCisgICAgUEFUVEVSTiAoQSspCisgICAgREVGSU5FIEEgQVMgUFJFVih2LCAk MSkgSVMgTk9UIE5VTEwKKyk7CitFWEVDVVRFIHRlc3RfcnVudGltZV9udWxsX29mZnNldChOVUxM KTsKK0RFQUxMT0NBVEUgdGVzdF9ydW50aW1lX251bGxfb2Zmc2V0OwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCAxNmRlMTQyMTMwMi4uYTNiMWE4NTVjZGMgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC03NDcsNiArNzQ3LDggQEAgRXJyb3JEYXRhCiBFcnJvclNhdmVDb250ZXh0 CiBFc3RpbWF0ZURTTUZvcmVpZ25TY2FuX2Z1bmN0aW9uCiBFc3RpbWF0aW9uSW5mbworRXZhbE5h dkZpcnN0Q29udGV4dAorRXZhbE5hdk1heENvbnRleHQKIEV2ZW50VHJpZ2dlckNhY2hlRW50cnkK IEV2ZW50VHJpZ2dlckNhY2hlSXRlbQogRXZlbnRUcmlnZ2VyQ2FjaGVTdGF0ZVR5cGUKQEAgLTE4 MDEsNiArMTgwMyw4IEBAIE5hbWVkTFdMb2NrVHJhbmNoZVJlcXVlc3QKIE5hbWVkVHVwbGVzdG9y ZVNjYW4KIE5hbWVkVHVwbGVzdG9yZVNjYW5TdGF0ZQogTmFtZXNwYWNlSW5mbworTmF2Q2hlY2tS ZXN1bHQKK05hdk9mZnNldENvbnRleHQKIE5lc3RMb29wCiBOZXN0TG9vcFBhcmFtCiBOZXN0TG9v cFN0YXRlCkBAIC0yNDc5LDYgKzI0ODMsNyBAQCBRdWV1ZVBvc2l0aW9uCiBRdWl0U2lnbmFsUmVh c29uCiBSUFJOYXZFeHByCiBSUFJOYXZLaW5kCitSUFJOYXZPZmZzZXRLaW5kCiBSQlROb2RlCiBS QlRPcmRlckNvbnRyb2wKIFJCVHJlZQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Disposition: attachment; filename="nocfbot-0025-Guard-int64-overflow-bounded-frame.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trfsq24 RnJvbSBjMzMzNDI0MzEzZmI4ZDk0ZmYwYWVmZmZiMTg5ODkwZGI3NzZmZWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6MzE6NDQgKzA5MDAKU3ViamVjdDogW1BBVENIXSBHdWFyZCBh Z2FpbnN0IGludDY0IG92ZXJmbG93IGluIFJQUiBib3VuZGVkIGZyYW1lIGVuZAogY29tcHV0YXRp b24KCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIHwgMTYgKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY1JQUi5jCmluZGV4IDAxZGYyYTExZTBhLi45NGYxYjI5NDFhMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSUFIuYwpAQCAtMjIsNiArMjIsNyBAQAogICovCiAjaW5jbHVkZSAicG9zdGdy ZXMuaCIKIAorI2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj UlBSLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTEwNDYsMTAgKzEwNDcsMTEgQEAKICAqCiAgKiAgIFdoZW4gdGhlIGZyYW1lIGlz IGJvdW5kZWQgKGUuZy4sIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgNQogICogICBGT0xM T1dJTkcpLCBFeGVjUlBSUHJvY2Vzc1JvdyByZWNlaXZlcyBoYXNMaW1pdGVkRnJhbWU9dHJ1ZSBh bmQKLSAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIgYm91bmQuICBBZnRlciB0 aGUgYWR2YW5jZSBwaGFzZSwKKyAqICAgZnJhbWVPZmZzZXQgaW5kaWNhdGluZyB0aGUgdXBwZXIg Ym91bmQuICBCZWZvcmUgdGhlIG1hdGNoIHBoYXNlLAogICogICBhbnkgY29udGV4dCB3aG9zZSBt YXRjaCBoYXMgZXhjZWVkZWQgdGhlIGZyYW1lIGJvdW5kYXJ5Ci0gKiAgIChjdXJyZW50UG9zIC0g bWF0Y2hTdGFydFJvdyA+PSBmcmFtZU9mZnNldCArIDEpIGlzIGZpbmFsaXplZCBlYXJseS4KLSAq ICAgVGhpcyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZCB0aGUgd2luZG93 IGZyYW1lLgorICogICAoY3VycmVudFBvcyA+PSBtYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQg KyAxKSBpcyBmaW5hbGl6ZWQgZWFybHkKKyAqICAgYnkgZm9yY2luZyBhIG1pc21hdGNoLiAgVGhp cyBwcmV2ZW50cyBtYXRjaGVzIGZyb20gZXh0ZW5kaW5nIGJleW9uZAorICogICB0aGUgd2luZG93 IGZyYW1lLiAgVGhlIHN1bSBpcyBjbGFtcGVkIHRvIFBHX0lOVDY0X01BWCBvbiBvdmVyZmxvdy4K ICAqCiAgKiAgIE5vdGUgdGhhdCBib3VuZGVkIGZyYW1lcyBhbHNvIGRpc2FibGUgY29udGV4dCBh YnNvcnB0aW9uIGF0IHRoZQogICogICBwbGFubmVyIGxldmVsIChzZWUgVklJSS0zKGIpKSwgc2lu Y2UgdGhlIGZyYW1lIGJvdW5kYXJ5IGJyZWFrcyB0aGUKQEAgLTMxNTQsNyArMzE1NiwxMiBAQCBF eGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1cnJlbnRQ b3MsCiAJCS8qIENoZWNrIGZyYW1lIGJvdW5kYXJ5IC0gZmluYWxpemUgaWYgZXhjZWVkZWQgKi8K IAkJaWYgKGhhc0xpbWl0ZWRGcmFtZSkKIAkJewotCQkJaW50NjQJCWN0eEZyYW1lRW5kID0gY3R4 LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxOworCQkJaW50NjQJCWN0eEZyYW1lRW5k OworCisJCQkvKiBDbGFtcCB0byBJTlQ2NF9NQVggb24gb3ZlcmZsb3cgKi8KKwkJCWlmIChwZ19h ZGRfczY0X292ZXJmbG93KGN0eC0+bWF0Y2hTdGFydFJvdywgZnJhbWVPZmZzZXQgKyAxLAorCQkJ CQkJCQkJJmN0eEZyYW1lRW5kKSkKKwkJCQljdHhGcmFtZUVuZCA9IFBHX0lOVDY0X01BWDsKIAog CQkJaWYgKGN1cnJlbnRQb3MgPj0gY3R4RnJhbWVFbmQpCiAJCQl7CkBAIC0zMjA0LDYgKzMyMTEs NyBAQCBFeGVjUlBSUHJvY2Vzc1JvdyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IGN1 cnJlbnRQb3MsCiAJCSAqIGNvbnRleHQgaGVyZSBtdXN0IGJlIHdpdGhpbiBpdHMgZnJhbWUgYm91 bmRhcnkuCiAJCSAqLwogCQlBc3NlcnQoIWhhc0xpbWl0ZWRGcmFtZSB8fAorCQkJICAgY3R4LT5t YXRjaFN0YXJ0Um93ID4gUEdfSU5UNjRfTUFYIC0gZnJhbWVPZmZzZXQgLSAxIHx8CiAJCQkgICBj dXJyZW50UG9zIDwgY3R4LT5tYXRjaFN0YXJ0Um93ICsgZnJhbWVPZmZzZXQgKyAxKTsKIAogCQlu ZmFfYWR2YW5jZSh3aW5zdGF0ZSwgY3R4LCBjdXJyZW50UG9zKTsKLS0gCjIuNTAuMSAoQXBwbGUg R2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0026-Fix-error-message-style.txt" Content-Disposition: attachment; filename="nocfbot-0026-Fix-error-message-style.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trhkl25 RnJvbSBmM2Q3Y2I0MDI5OGVlMzNmYTM3YjViZDc1YzE3YWQyY2I3ZTIwZmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTE6MTU6MTIgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggUlBS IGVycm9yIG1lc3NhZ2Ugc3R5bGU6IGhpbnQgZm9ybWF0LCB0ZXJtaW5vbG9neSwKIGNhcGl0YWxp emF0aW9uCgpSZW1vdmUgY29sb24gaW4gZXJyaGludCAiVXNlOiBST1dTIGluc3RlYWQiIC0+ICJV c2UgUk9XUyBpbnN0ZWFkLiIKYW5kIGFkZCBtaXNzaW5nIHRyYWlsaW5nIHBlcmlvZC4gIFNob3J0 ZW4gInJvdyBwYXR0ZXJuIGRlZmluaXRpb24KdmFyaWFibGUgbmFtZSIgdG8gIkRFRklORSB2YXJp YWJsZSIgZm9yIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIKZXJyb3IgbWVzc2FnZXMuICBDYXBpdGFs aXplIG5hdmlnYXRpb24gZnVuY3Rpb24gbmFtZXMgaW4gc3R1YgplcnJvciBtZXNzYWdlcyAocHJl diAtPiBQUkVWLCBldGMuKSB0byBtYXRjaCBTUUwgc3RhbmRhcmQga2V5d29yZApzdHlsZSB1c2Vk IGVsc2V3aGVyZSBpbiB0aGUgcGFyc2VyLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y cHIuYyAgICAgICAgIHwgIDYgKysrLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVu Y3MuYyAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByX2Jhc2Uub3V0IHwgMTIgKysrKysrLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE3IGluc2Vy dGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9ycHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwppbmRleCAwNTA3 MGNiMDRiYi4uOGZiZTEyZTE1MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9ycHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcnByLmMKQEAgLTc4LDcgKzc4 LDcgQEAgdHJhbnNmb3JtUlBSKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3Yywg V2luZG93RGVmICp3aW5kZWYsCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9XSU5ET1dJTkdfRVJST1IpLAogCQkJCSBlcnJtc2coIkZSQU1FIG9wdGlvbiBHUk9VUFMgaXMg bm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKLQkJ CQkgZXJyaGludCgiVXNlOiBST1dTIGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1Mg aW5zdGVhZC4iKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJCQkJCXdp bmRlZi0+ZnJhbWVMb2NhdGlvbiA+PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlv biA6IHdpbmRlZi0+bG9jYXRpb24pKSk7CkBAIC04Niw3ICs4Niw3IEBAIHRyYW5zZm9ybVJQUihQ YXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0NsYXVzZSAqd2MsIFdpbmRvd0RlZiAqd2luZGVmLAog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV0lORE9XSU5HX0VSUk9SKSwK IAkJCQkgZXJybXNnKCJGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJv dyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQiKSwKLQkJCQkgZXJyaGludCgiVXNlOiBST1dT IGluc3RlYWQiKSwKKwkJCQkgZXJyaGludCgiVXNlIFJPV1MgaW5zdGVhZC4iKSwKIAkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwKIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA+ PSAwID8KIAkJCQkJCQkJCXdpbmRlZi0+ZnJhbWVMb2NhdGlvbiA6IHdpbmRlZi0+bG9jYXRpb24p KSk7CkBAIC0zMjksNyArMzI5LDcgQEAgdHJhbnNmb3JtRGVmaW5lQ2xhdXNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgV2luZG93Q2xhdXNlICp3YywgV2luZG93RGVmICp3aW5kZWYsCiAJCQlpZiAoIXN0 cmNtcChuLCBuYW1lKSkKIAkJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAotCQkJCQkJIGVycm1zZygicm93IHBhdHRlcm4gZGVmaW5pdGlvbiB2 YXJpYWJsZSBuYW1lIFwiJXNcIiBhcHBlYXJzIG1vcmUgdGhhbiBvbmNlIGluIERFRklORSBjbGF1 c2UiLAorCQkJCQkJIGVycm1zZygiREVGSU5FIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIG1vcmUg dGhhbiBvbmNlIiwKIAkJCQkJCQkJbmFtZSksCiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIHIpKSkpOwogCQl9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93 aW5kb3dmdW5jcy5jCmluZGV4IDQyMGE0OTYyMzk1Li5mYjk2NmNhZTQzYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3dpbmRvd2Z1bmNzLmMKQEAgLTc0MCw3ICs3NDAsNyBAQCB3aW5kb3dfcHJldihQR19G VU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJwcmV2KCkgY2FuIG9ubHkgYmUgdXNl ZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiUFJFVigpIGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5v dCByZWFjaGVkICovCiB9CiAKQEAgLTc1NCw3ICs3NTQsNyBAQCB3aW5kb3dfbmV4dChQR19GVU5D VElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJuZXh0KCkgY2FuIG9ubHkgYmUgdXNlZCBp biBhIERFRklORSBjbGF1c2UiKSkpOworCQkJIGVycm1zZygiTkVYVCgpIGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgpOwkJCS8qIG5vdCBy ZWFjaGVkICovCiB9CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCB3aW5kb3dfcHJldl9vZmZzZXQoUEdf RlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygicHJldigpIGNhbiBvbmx5IGJlIHVz ZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIlBSRVYoKSBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05VTEwoKTsJCQkvKiBu b3QgcmVhY2hlZCAqLwogfQogCkBAIC03ODIsNyArNzgyLDcgQEAgd2luZG93X25leHRfb2Zmc2V0 KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coIm5leHQoKSBjYW4gb25seSBi ZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJORVhUKCkgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJ Lyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtNzk2LDcgKzc5Niw3IEBAIHdpbmRvd19maXJzdChQ R19GVU5DVElPTl9BUkdTKQogewogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkgZXJybXNnKCJmaXJzdCgpIGNhbiBvbmx5IGJl IHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIkZJUlNUKCkgY2FuIG9u bHkgYmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJ Lyogbm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODEwLDcgKzgxMCw3IEBAIHdpbmRvd19sYXN0KFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJZXJlcG9ydChFUlJPUiwKIAkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCSBlcnJtc2coImxhc3QoKSBjYW4gb25seSBiZSB1 c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJMQVNUKCkgY2FuIG9ubHkg YmUgdXNlZCBpbiBhIERFRklORSBjbGF1c2UiKSkpOwogCVBHX1JFVFVSTl9OVUxMKCk7CQkJLyog bm90IHJlYWNoZWQgKi8KIH0KIApAQCAtODI0LDcgKzgyNCw3IEBAIHdpbmRvd19maXJzdF9vZmZz ZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygiZmlyc3QoKSBjYW4gb25s eSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CisJCQkgZXJybXNnKCJGSVJTVCgpIGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKIAlQR19SRVRVUk5fTlVMTCgp OwkJCS8qIG5vdCByZWFjaGVkICovCiB9CiAKQEAgLTgzOCw2ICs4MzgsNiBAQCB3aW5kb3dfbGFz dF9vZmZzZXQoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAllcmVwb3J0KEVSUk9SLAogCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJIGVycm1zZygibGFzdCgpIGNh biBvbmx5IGJlIHVzZWQgaW4gYSBERUZJTkUgY2xhdXNlIikpKTsKKwkJCSBlcnJtc2coIkxBU1Qo KSBjYW4gb25seSBiZSB1c2VkIGluIGEgREVGSU5FIGNsYXVzZSIpKSk7CiAJUEdfUkVUVVJOX05V TEwoKTsJCQkvKiBub3QgcmVhY2hlZCAqLwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ycHJfYmFzZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwcl9i YXNlLm91dAppbmRleCAwODQ1MzE2OTY1ZS4uOTEyYmQ3YjdjNzcgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnByX2Jhc2Uub3V0CkBAIC0yMzIsNyArMjMyLDcgQEAgV0lORE9XIHcgQVMgKAog ICAgIFBBVFRFUk4gKEErKQogICAgIERFRklORSBBIEFTIGlkID4gMCwgQSBBUyBpZCA8IDEwCiAp OwotRVJST1I6ICByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVh cnMgbW9yZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQorRVJST1I6ICBERUZJTkUgdmFyaWFi bGUgImEiIGFwcGVhcnMgbW9yZSB0aGFuIG9uY2UKIExJTkUgNzogICAgIERFRklORSBBIEFTIGlk ID4gMCwgQSBBUyBpZCA8IDEwCiAgICAgICAgICAgICAgICAgICAgXgogLS0gRXhwZWN0ZWQ6IEVS Uk9SOiByb3cgcGF0dGVybiBkZWZpbml0aW9uIHZhcmlhYmxlIG5hbWUgImEiIGFwcGVhcnMgbW9y ZSB0aGFuIG9uY2UgaW4gREVGSU5FIGNsYXVzZQpAQCAtNDY5LDcgKzQ2OSw3IEBAIFdJTkRPVyB3 IEFTICgKIEVSUk9SOiAgRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiBy b3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBSQU5HRSBCRVRXRUVO IFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTi4uLgogICAgICAgICAg ICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNlIFJPV1MgaW5zdGVhZC4K IC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBwZXJtaXR0ZWQg d2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBHUk9VUFMgZnJhbWUgbm90 IHN0YXJ0aW5nIGF0IENVUlJFTlQgUk9XCiBTRUxFQ1QgQ09VTlQoKikgT1ZFUiB3CkBAIC00ODMs NyArNDgzLDcgQEAgV0lORE9XIHcgQVMgKAogRVJST1I6ICBGUkFNRSBvcHRpb24gR1JPVVBTIGlz IG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiBMSU5F IDU6ICAgICBHUk9VUFMgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQg Rk9MTE9XSS4uLgogICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5U OiAgVXNlIFJPV1MgaW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIEdS T1VQUyBpcyBub3QgcGVybWl0dGVkIHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNl ZAogLS0gU3RhcnRpbmcgd2l0aCBOIFBSRUNFRElORwogU0VMRUNUIENPVU5UKCopIE9WRVIgdwpA QCAtNjQwLDcgKzY0MCw3IEBAIE9SREVSIEJZIGlkOwogRVJST1I6ICBGUkFNRSBvcHRpb24gUkFO R0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQK IExJTkUgNTogICAgIFJBTkdFIEJFVFdFRU4gQ1VSUkVOVCBST1cgQU5EIDEwIEZPTExPV0lORwog ICAgICAgICAgICAgXgotSElOVDogIFVzZTogUk9XUyBpbnN0ZWFkCitISU5UOiAgVXNlIFJPV1Mg aW5zdGVhZC4KIC0tIEV4cGVjdGVkOiBFUlJPUjogRlJBTUUgb3B0aW9uIFJBTkdFIGlzIG5vdCBw ZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyB1c2VkCiAtLSBHUk9VUFMg ZnJhbWUgd2l0aCBSUFIgKG5vdCBwZXJtaXR0ZWQpCiBTRUxFQ1QgaWQsIHZhbCwgQ09VTlQoKikg T1ZFUiB3IGFzIGNudApAQCAtNjU2LDcgKzY1Niw3IEBAIE9SREVSIEJZIGlkOwogRVJST1I6ICBG UkFNRSBvcHRpb24gR1JPVVBTIGlzIG5vdCBwZXJtaXR0ZWQgd2hlbiByb3cgcGF0dGVybiByZWNv Z25pdGlvbiBpcyB1c2VkCiBMSU5FIDU6ICAgICBHUk9VUFMgQkVUV0VFTiBDVVJSRU5UIFJPVyBB TkQgMSBGT0xMT1dJTkcKICAgICAgICAgICAgIF4KLUhJTlQ6ICBVc2U6IFJPV1MgaW5zdGVhZAor SElOVDogIFVzZSBST1dTIGluc3RlYWQuCiAtLSBFeHBlY3RlZDogRVJST1I6IEZSQU1FIG9wdGlv biBHUk9VUFMgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGlz IHVzZWQKIERST1AgVEFCTEUgcnByX2ZyYW1lOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC03MDUsNyArNzA1LDcgQEAg T1JERVIgQlkgaWQ7CiBFUlJPUjogIEZSQU1FIG9wdGlvbiBSQU5HRSBpcyBub3QgcGVybWl0dGVk IHdoZW4gcm93IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgdXNlZAogTElORSA2OiAgICAgUkFOR0Ug QkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgMTAgRk9MTE9XSU5HCiAgICAgICAgICAgICBeCi1ISU5U OiAgVXNlOiBST1dTIGluc3RlYWQKK0hJTlQ6ICBVc2UgUk9XUyBpbnN0ZWFkLgogLS0gRXhwZWN0 ZWQ6IEVSUk9SOiBGUkFNRSBvcHRpb24gUkFOR0UgaXMgbm90IHBlcm1pdHRlZCB3aGVuIHJvdyBw YXR0ZXJuIHJlY29nbml0aW9uIGlzIHVzZWQKIERST1AgVEFCTEUgcnByX3BhcnRpdGlvbjsKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0027-Fix-comment-typos-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trkog26 RnJvbSA4MDllOGI1YzlmNzllNDBlZTExNGJlZjk2M2UyYTkwMjgwMDYwOGVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6MDk6NDEgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggY29t bWVudCB0eXBvcywgZ3JhbW1hciwgYW5kIGluYWNjdXJhY2llcyBpbiBSUFIgY29kZQoKLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9leGVjUlBSLmMgICAgICAgICAgfCAgNyArKystLS0tCiBzcmMv YmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgICAgfCAyMCArKysrKysrKysrLS0tLS0t LS0tLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jIHwgIDMgKystCiAz IGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNSUFIuYwppbmRleCA5NGYxYjI5NDFhMi4uYmFlZTQ1Y2U1NGUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSUFIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUlBSLmMKQEAgLTQxNiw3ICs0MTYsNiBAQAogICogdGhlIG5vcm1hbCBsb29wLWJhY2sg KHdoaWNoIGN5Y2xlIGRldGVjdGlvbiB3aWxsIGV2ZW50dWFsbHkga2lsbCkgYW5kCiAgKiBhIGZh c3QtZm9yd2FyZCBleGl0IGNsb25lIHRoYXQgYnlwYXNzZXMgdGhlIGxvb3AgZW50aXJlbHkuCiAg KiAoU2VlIElYLTQoYykgZm9yIGRldGFpbGVkIHJ1bnRpbWUgYmVoYXZpb3IuKQotICogICAgIC0g RW1wdHkgbWF0Y2ggaXMgaW1wb3NzaWJsZSBzaW5jZSBib2R5IGlzIG5vdCBudWxsYWJsZQogICoK ICAqIElWLTUuIEFic29yYmFiaWxpdHkgQW5hbHlzaXMgKFJQUl9FTEVNX0FCU09SQkFCTEUpCiAg KgpAQCAtNjQ1LDggKzY0NCw4IEBACiAgKiBXaGVuIHByb2Nlc3NpbmcgYSBjb250ZXh0IHdob3Nl IG1hdGNoU3RhcnRSb3cgZGlmZmVycyBmcm9tIHRoZSBzaGFyZWQKICAqIHZhbHVlLCBuZmFfcmVl dmFsdWF0ZV9kZXBlbmRlbnRfdmFycygpIHRlbXBvcmFyaWx5IHNldHMgbmF2X21hdGNoX3N0YXJ0 CiAgKiB0byB0aGF0IGNvbnRleHQncyBtYXRjaFN0YXJ0Um93IGFuZCByZS1ldmFsdWF0ZXMgb25s eSB0aGUgZGVwZW5kZW50Ci0gKiB2YXJpYWJsZXMuICBObyByZXN0b3JlIGlzIG5lZWRlZCBiZWNh dXNlIGNvbnRleHRzIGFyZSBvcmRlcmVkIGJ5Ci0gKiBtYXRjaFN0YXJ0Um93IChhc2NlbmRpbmcp LCBzbyBubyBsYXRlciBjb250ZXh0IHNoYXJlcyB0aGUgaGVhZCdzIHZhbHVlLgorICogdmFyaWFi bGVzLiAgVGhlIG9yaWdpbmFsIG5hdl9tYXRjaF9zdGFydCBhbmQgY3VycmVudHBvcyBhcmUgc2F2 ZWQgYW5kCisgKiByZXN0b3JlZCBhZnRlciByZS1ldmFsdWF0aW9uLgogICoKICAqIFZJLTUuIFR1 cGxlc3RvcmUgTWFyayBhbmQgVHJpbSAobm9kZVdpbmRvd0FnZy5jKQogICoKQEAgLTI3MTUsNyAr MjcxNCw3IEBAIG5mYV9hZHZhbmNlX3ZhcihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIFJQUk5G QUNvbnRleHQgKmN0eCwKIAkJYm9vbAkJcmVsdWN0YW50ID0gUlBSRWxlbUlzUmVsdWN0YW50KGVs ZW0pOwogCiAJCS8qCi0JCSAqIENsb25lIHN0YXRlIGZvciB0aGUgc2Vjb25kLXByaW9yaXR5IHBh dGguIEZvciBncmVlZHksIGNsb25lIGlzIHRoZQorCQkgKiBDbG9uZSBzdGF0ZSBmb3IgdGhlIGZp cnN0LXByaW9yaXR5IHBhdGguIEZvciBncmVlZHksIGNsb25lIGlzIHRoZQogCQkgKiBsb29wIHN0 YXRlOyBmb3IgcmVsdWN0YW50LCBjbG9uZSBpcyB0aGUgZXhpdCBzdGF0ZS4KIAkJICovCiAJCWlm IChyZWx1Y3RhbnQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93 QWdnLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggY2RiZTM1 NmFiZDcuLjg0OWViZjhhYmIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl V2luZG93QWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBA IC0zNzA1LDggKzM3MDUsOCBAQCBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZShXaW5kb3dP YmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJewogCQkvKgogCQkgKiBFYXJseSBjaGVjayBpZiBy b3cgY291bGQgYmUgb3V0IG9mIHJlZHVjZWQgZnJhbWUuICBXaGVuIFJQUiBpcwotCQkgKiBlbmFi bGVkLCBFWENVREUgY2xhdXNlIGNhbm5vdCBiZSBzcGVjaWZpZWQgYW5kIHRoZSBmcmFtZSBpcyBh bHdheXMKLQkJICogY29udGlndW91cy4gIFNvIHdlIGNhbiBkbyB0aGUgY2hlY2sgZm9sbG93aW5n cyBzYWZlbHkuIE5vdGUsCisJCSAqIGVuYWJsZWQsIEVYQ0xVREUgY2xhdXNlIGNhbm5vdCBiZSBz cGVjaWZpZWQgYW5kIHRoZSBmcmFtZSBpcyBhbHdheXMKKwkJICogY29udGlndW91cy4gIFNvIHdl IGNhbiBzYWZlbHkgcGVyZm9ybSB0aGUgZm9sbG93aW5nIGNoZWNrcy4gTm90ZSwKIAkJICogaG93 ZXZlciwgaXQgaXMgcG9zc2libGUgdGhhdCBhIHJvdyBpcyBvdXQgb2YgcmVkdWNlZCBmcmFtZSBp ZgogCQkgKiB0aGVyZSdzIGEgTlVMTCBpbiB0aGUgbWlkZGxlLiBTbyB3ZSBuZWVkIHRvIGNoZWNr IGl0IGluIHRoZQogCQkgKiBmb2xsb3dpbmcgZG8gbG9vcC4KQEAgLTQxNjgsNyArNDE2OCw3IEBA IGV2YWxfbmF2X2ZpcnN0X29mZnNldChXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIExpc3QgKmRl ZmluZUNsYXVzZSkKIAogLyoKICAqIHJwcl9pc19kZWZpbmVkCi0gKiByZXR1cm4gdHJ1ZSBpZiBS b3cgcGF0dGVybiByZWNvZ25pdGlvbiBpcyBkZWZpbmVkLgorICogUmV0dXJuIHRydWUgaWYgcm93 IHBhdHRlcm4gcmVjb2duaXRpb24gaXMgZGVmaW5lZC4KICAqLwogc3RhdGljIGJvb2wKIHJwcl9p c19kZWZpbmVkKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKQEAgLTQxODIsMTQgKzQxODIsMTQg QEAgcnByX2lzX2RlZmluZWQoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogICogRGV0ZXJtaW5l IHdoZXRoZXIgYSByb3cgaXMgaW4gdGhlIGN1cnJlbnQgcm93J3MgcmVkdWNlZCB3aW5kb3cgZnJh bWUKICAqIGFjY29yZGluZyB0byByb3cgcGF0dGVybiBtYXRjaGluZwogICoKLSAqIFRoZSByb3cg bXVzdCBoYXMgYmVlbiBhbHJlYWR5IGRldGVybWluZWQgdGhhdCBpdCBpcyBpbiBhIGZ1bGwgd2lu ZG93IGZyYW1lCi0gKiBhbmQgZmV0Y2hlZCBpdCBpbnRvIHNsb3QuCisgKiBUaGUgcm93IG11c3Qg aGF2ZSBhbHJlYWR5IGJlZW4gZGV0ZXJtaW5lZCB0byBiZSBpbiBhIGZ1bGwgd2luZG93IGZyYW1l CisgKiBhbmQgZmV0Y2hlZCBpbnRvIHRoZSBzbG90LgogICoKICAqIFJldHVybnM6CiAgKiA9IDAs IFJQUiBpcyBub3QgZGVmaW5lZC4KICAqID4wLCBpZiB0aGUgcm93IGlzIHRoZSBmaXJzdCBpbiB0 aGUgcmVkdWNlZCBmcmFtZS4gUmV0dXJuIHRoZSBudW1iZXIgb2Ygcm93cwogICogaW4gdGhlIHJl ZHVjZWQgZnJhbWUuCi0gKiAtMSwgaWYgdGhlIHJvdyBpcyB1bm1hdGNoZWQgcm93CisgKiAtMSwg aWYgdGhlIHJvdyBpcyBhbiB1bm1hdGNoZWQgcm93CiAgKiAtMiwgaWYgdGhlIHJvdyBpcyBpbiB0 aGUgcmVkdWNlZCBmcmFtZSBidXQgbmVlZGVkIHRvIGJlIHNraXBwZWQgYmVjYXVzZSBvZgogICog QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCiAgKiAtLS0tLS0tLS0tLS0tLS0tLQpAQCAt NDIwNCw4ICs0MjA0LDggQEAgcm93X2lzX2luX3JlZHVjZWRfZnJhbWUoV2luZG93T2JqZWN0IHdp bm9iaiwgaW50NjQgcG9zKQogCWlmICghcnByX2lzX2RlZmluZWQod2luc3RhdGUpKQogCXsKIAkJ LyoKLQkJICogUlBSIGlzIG5vdCBkZWZpbmVkLiBBc3N1bWUgdGhhdCB3ZSBhcmUgYWx3YXlzIGlu IHRoZSB0aGUgcmVkdWNlZAotCQkgKiB3aW5kb3cgZnJhbWUuCisJCSAqIFJQUiBpcyBub3QgZGVm aW5lZC4gQXNzdW1lIHRoYXQgd2UgYXJlIGFsd2F5cyBpbiB0aGUgcmVkdWNlZCB3aW5kb3cKKwkJ ICogZnJhbWUuCiAJCSAqLwogCQlydG4gPSAwOwogCQlyZXR1cm4gcnRuOwpAQCAtNDkzOCw4ICs0 OTM4LDggQEAgV2luR2V0RnVuY0FyZ0luRnJhbWUoV2luZG93T2JqZWN0IHdpbm9iaiwgaW50IGFy Z25vLAogICogaXNvdXQ6IG91dHB1dCBhcmd1bWVudCwgc2V0IHRvIGluZGljYXRlIHdoZXRoZXIg dGFyZ2V0IHJvdyBwb3NpdGlvbgogICoJCWlzIG91dCBvZiBmcmFtZSAoY2FuIHBhc3MgTlVMTCBp ZiBjYWxsZXIgZG9lc24ndCBjYXJlIGFib3V0IHRoaXMpCiAgKgotICogUmV0dXJucyAwIGlmIHdl IHN1Y2Nlc3NmdWxseSBnb3QgdGhlIHNsb3QuIGZhbHNlIGlmIG91dCBvZiBmcmFtZS4KLSAqIChh bHNvIGlzb3V0IGlzIHNldCkKKyAqIFJldHVybnMgMCBpZiB3ZSBzdWNjZXNzZnVsbHkgZ290IHRo ZSBzbG90LCBvciBub256ZXJvIGlmIG91dCBvZiBmcmFtZS4KKyAqIChpc291dCBpcyBhbHNvIHNl dCBpbiB0aGUgbGF0dGVyIGNhc2UuKQogICovCiBzdGF0aWMgaW50CiBXaW5HZXRTbG90SW5GcmFt ZShXaW5kb3dPYmplY3Qgd2lub2JqLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYwppbmRleCAwMmQ1MTEyNjlhYi4uNTA2NjhmM2I3YWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKQEAgLTI0NzUsNyArMjQ3 NSw4IEBAIHR5cGVkZWYgc3RydWN0IE5hdk9mZnNldENvbnRleHQKIAlpbnQ2NAkJbWF4T2Zmc2V0 OwkJLyogbWF4IFBSRVYvTEFTVCBiYWNrd2FyZCBvZmZzZXQgKD49IDApICovCiAJYm9vbAkJbWF4 TmVlZHNFdmFsOwkvKiBub24tY29uc3RhbnQgUFJFVi9MQVNUIG9mZnNldCBmb3VuZCAqLwogCWJv b2wJCW1heE92ZXJmbG93OwkvKiBjb25zdGFudCBvZmZzZXQgb3ZlcmZsb3cgZGV0ZWN0ZWQgKi8K LQlpbnQ2NAkJZmlyc3RPZmZzZXQ7CS8qIG1pbiBGSVJTVCBvZmZzZXQgKD49IDApLCBvciAtMSBp ZiBub25lICovCisJaW50NjQJCWZpcnN0T2Zmc2V0OwkvKiBtaW4gRklSU1Qgb2Zmc2V0IChtYXkg YmUgbmVnYXRpdmUgZm9yCisJCQkJCQkJCSAqIFBSRVZfRklSU1QpICovCiAJYm9vbAkJaGFzRmly c3Q7CQkvKiBhbnkgRklSU1Qgbm9kZSBmb3VuZCAqLwogCWJvb2wJCWZpcnN0TmVlZHNFdmFsOyAv KiBub24tY29uc3RhbnQgRklSU1Qgb2Zmc2V0IGZvdW5kICovCiB9IE5hdk9mZnNldENvbnRleHQ7 Ci0tIAoyLjUwLjEgKEFwcGxlIEdpdC0xNTUpCgo= --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Disposition: attachment; filename="nocfbot-0028-Fix-documentation-synopsis-grammar.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5tropn27 RnJvbSA5YTgxZjE5ODFjZDkzMGZhMWUyNTI4OGEwN2YzNTBmYmFjZTRjOWE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTA6NTA6MzYgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggUlBS IGRvY3VtZW50YXRpb246IHN5bm9wc2lzLCBncmFtbWFyLCBhbmQgdGVybWlub2xvZ3kKClJlbW92 ZSBlcnJvbmVvdXMgY29tbWEgaW4gUEFUVEVSTiBzeW5vcHNpcy4gIEZpeCB0eXBvcyBpbgphZHZh bmNlZC5zZ21sICgiPj07IiBzdHJheSBzZW1pY29sb24sICJ3aXRoIHRoZSBhIHJvdyIsCiJGb3Ig ZXhhbXBsZSBmb2xsb3dpbmciKS4gIENvcnJlY3QgUFJFVi9ORVhUIGRlc2NyaXB0aW9uCmZyb20g IndpdGhpbiB0aGUgd2luZG93IGZyYW1lIiB0byAid2l0aGluIHRoZSBwYXJ0aXRpb24iCmFuZCBh ZGQgbWlzc2luZyAiREVGSU5FIGNsYXVzZSBvbmx5IiBub3RlLiAgQ2FwaXRhbGl6ZQoiUm93IFBh dHRlcm4gUmVjb2duaXRpb24iIGNvbnNpc3RlbnRseSBhY3Jvc3MgU0dNTCBmaWxlcy4KCkZpeCBu dW1lcm91cyBtaXNzaW5nIGFydGljbGVzIGFuZCBncmFtbWFyIGVycm9ycyBpbgpzZWxlY3Quc2dt bDogImFmdGVyIGEgbWF0Y2ggZm91bmQiIC0+ICJhZnRlciBhIG1hdGNoIGlzCmZvdW5kIiwgImRv IG5vdCBuZWNlc3NhcmlseSIgLT4gImRvZXMgbm90IG5lY2Vzc2FyaWx5IiwKYWRkIG1pc3Npbmcg InRoZSIgYmVmb3JlIGNsYXVzZSByZWZlcmVuY2VzLgotLS0KIGRvYy9zcmMvc2dtbC9hZHZhbmNl ZC5zZ21sICAgICAgICAgfCAxNCArKysrKysrLS0tLS0tLQogZG9jL3NyYy9zZ21sL2Z1bmMvZnVu Yy13aW5kb3cuc2dtbCB8IDE0ICsrKysrKysrLS0tLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3NlbGVj dC5zZ21sICAgICAgIHwgMjggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMyBmaWxlcyBj aGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvYWR2YW5jZWQuc2dtbCBiL2RvYy9zcmMvc2dtbC9hZHZhbmNlZC5zZ21sCmlu ZGV4IDBjYWY5ZmRhZmY2Li4xMWMyNDE2ZGY1MSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Fk dmFuY2VkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2FkdmFuY2VkLnNnbWwKQEAgLTU1Myw4ICs1 NTMsOCBAQCBXSEVSRSBwb3MgJmx0OyAzOwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBS b3cgcGF0dGVybiBjb21tb24gc3ludGF4IGNhbiBiZSB1c2VkIHRvIHBlcmZvcm0gcm93IHBhdHRl cm4gcmVjb2duaXRpb24KLSAgICBpbiBhIHF1ZXJ5LiBUaGUgcm93IHBhdHRlcm4gY29tbW9uIHN5 bnRheCBpbmNsdWRlcyB0d28gc3ViCisgICAgUm93IFBhdHRlcm4gQ29tbW9uIFN5bnRheCBjYW4g YmUgdXNlZCB0byBwZXJmb3JtIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uCisgICAgaW4gYSBxdWVy eS4gVGhlIFJvdyBQYXR0ZXJuIENvbW1vbiBTeW50YXggaW5jbHVkZXMgdHdvIHN1YgogICAgIGNs YXVzZXM6IDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4KICAgICBhbmQgPGxpdGVyYWw+UEFUVEVS TjwvbGl0ZXJhbD4uIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gZGVmaW5lcwogICAgIHJvdyBw YXR0ZXJuIHZhcmlhYmxlcyBhbG9uZyB3aXRoIGFuIGV4cHJlc3Npb24uIFRoZSBleHByZXNzaW9u IG11c3QgYmUgYQpAQCAtNTg0LDEyICs1ODQsMTIgQEAgREVGSU5FCiAgICAgT25jZSA8bGl0ZXJh bD5ERUZJTkU8L2xpdGVyYWw+IGV4aXN0cywgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gY2Fu IGJlCiAgICAgdXNlZC4gPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVl bmNlIG9mIHJvd3MgdGhhdCBzYXRpc2ZpZXMKICAgICBjb25kaXRpb25zIGRlZmluZWQgaW4gdGhl IDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlLiAgRm9yIGV4YW1wbGUKLSAgICBmb2xs b3dpbmcgPGxpdGVyYWw+UEFUVEVSTjwvbGl0ZXJhbD4gZGVmaW5lcyBhIHNlcXVlbmNlIG9mIHJv d3Mgc3RhcnRpbmcKLSAgICB3aXRoIHRoZSBhIHJvdyBzYXRpc2Z5aW5nICJMT1dQUklDRSIsIHRo ZW4gb25lIG9yIG1vcmUgcm93cyBzYXRpc2Z5aW5nCisgICAgdGhlIGZvbGxvd2luZyA8bGl0ZXJh bD5QQVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyBzdGFydGluZwor ICAgIHdpdGggYSByb3cgc2F0aXNmeWluZyAiTE9XUFJJQ0UiLCB0aGVuIG9uZSBvciBtb3JlIHJv d3Mgc2F0aXNmeWluZwogICAgICJVUCIgYW5kIGZpbmFsbHkgb25lIG9yIG1vcmUgcm93cyBzYXRp c2Z5aW5nICJET1dOIi4gUGF0dGVybiB2YXJpYWJsZXMgY2FuCiAgICAgYmUgZm9sbG93ZWQgYnkg cXVhbnRpZmllcnM6ICIrIiBtZWFucyBvbmUgb3IgbW9yZSBtYXRjaGVzLCAiKiIgbWVhbnMgemVy bwogICAgIG9yIG1vcmUgbWF0Y2hlcywgIj8iIG1lYW5zIHplcm8gb3Igb25lIG1hdGNoLCAie259 IiAobiAmZ3Q7IDApIG1lYW5zIGV4YWN0bHkKLSAgICBuIG1hdGNoZXMsICJ7bix9IiAobiAmZ3Q7 PTsgMCkgbWVhbnMgYXQgbGVhc3QgbiBtYXRjaGVzLCAieyxtfSIgKG0gJmd0OyAwKSBtZWFucwor ICAgIG4gbWF0Y2hlcywgIntuLH0iIChuICZndDs9IDApIG1lYW5zIGF0IGxlYXN0IG4gbWF0Y2hl cywgInssbX0iIChtICZndDsgMCkgbWVhbnMKICAgICBhdCBtb3N0IG0gbWF0Y2hlcywgYW5kICJ7 bixtfSIgKDAgJmx0Oz0gbiAmbHQ7PSBtLCAwICZsdDsgbSkgbWVhbnMgYmV0d2VlbiBuIGFuZCBt CiAgICAgbWF0Y2hlcy4gIFBhdHRlcm5zIGNhbiBiZSBncm91cGVkIHVzaW5nIHBhcmVudGhlc2Vz IGFuZCBjb21iaW5lZCB1c2luZwogICAgIGFsdGVybmF0aW9uICh0aGUgdmVydGljYWwgYmFyICJ8 IiBmb3IgT1IpLiBGb3IgZXhhbXBsZSwgIihVUCBET1dOKSsiCkBAIC02NDIsNyArNjQyLDcgQEAg RlJPTSBzdG9jawogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBSb3cgcGF0dGVybiByZWNv Z25pdGlvbiBpbnRlcm5hbGx5IHVzZXMgYSBub25kZXRlcm1pbmlzdGljIGZpbml0ZQorICAgIFJv dyBQYXR0ZXJuIFJlY29nbml0aW9uIGludGVybmFsbHkgdXNlcyBhIG5vbmRldGVybWluaXN0aWMg ZmluaXRlCiAgICAgYXV0b21hdG9uIChORkEpIHRvIG1hdGNoIHBhdHRlcm5zLiBGb3IgcGF0dGVy bnMgd2l0aCB1bmJvdW5kZWQKICAgICBxdWFudGlmaWVycyAoZS5nLiwgPGxpdGVyYWw+QSs8L2xp dGVyYWw+IG9yIDxsaXRlcmFsPihBIEIpKzwvbGl0ZXJhbD4pLAogICAgIHRoZSBORkEgbWF5IG5l ZWQgdG8gdHJhY2sgbWFueSBhY3RpdmUgbWF0Y2hpbmcgY29udGV4dHMgc2ltdWx0YW5lb3VzbHks CkBAIC02NzYsNyArNjc2LDcgQEAgRlJPTSBzdG9jawogICAgPC9wYXJhPgogCiAgICA8cGFyYT4K LSAgICBXaGVuIGV4YW1pbmluZyBxdWVyeSBwbGFucyBmb3Igcm93IHBhdHRlcm4gcmVjb2duaXRp b24gd2l0aAorICAgIFdoZW4gZXhhbWluaW5nIHF1ZXJ5IHBsYW5zIGZvciBSb3cgUGF0dGVybiBS ZWNvZ25pdGlvbiB3aXRoCiAgICAgPGNvbW1hbmQ+RVhQTEFJTjwvY29tbWFuZD4sIHRoZSBwYXR0 ZXJuIG91dHB1dCBtYXkgaW5jbHVkZSBzcGVjaWFsCiAgICAgbWFya2VycyB0aGF0IGluZGljYXRl IG9wdGltaXphdGlvbiBvcHBvcnR1bml0aWVzLiBBIGRvdWJsZSBxdW90ZQogICAgIDxsaXRlcmFs PiI8L2xpdGVyYWw+IG1hcmtzIHdoZXJlIHBhdHRlcm4gYWJzb3JwdGlvbiBjYW4gb2NjdXIsCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sIGIvZG9jL3NyYy9z Z21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbAppbmRleCBhYjgwNjkwZjdiZS4uZDEwOWEyZDIyYmMg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbApAQCAtMjc5LDkgKzI3OSw5IEBACiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIG5hdmlnYXRpb24g ZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4KKyAgIFJvdyBQYXR0ZXJuIFJlY29nbml0aW9uIG5hdmln YXRpb24gZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4KICAgIDx4cmVmIGxpbmtlbmQ9ImZ1bmN0aW9u cy1ycHItbmF2aWdhdGlvbi10YWJsZSIvPi4gIFRoZXNlIGZ1bmN0aW9ucwotICAgY2FuIGJlIHVz ZWQgdG8gZGVzY3JpYmUgREVGSU5FIGNsYXVzZSBvZiBSb3cgcGF0dGVybiByZWNvZ25pdGlvbi4K KyAgIGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlIHRoZSBERUZJTkUgY2xhdXNlIG9mIFJvdyBQYXR0 ZXJuIFJlY29nbml0aW9uLgogICA8L3BhcmE+CiAKICAgIDx0YWJsZSBpZD0iZnVuY3Rpb25zLXJw ci1uYXZpZ2F0aW9uLXRhYmxlIj4KQEAgLTMwOSwxMiArMzA5LDEzIEBACiAgICAgICAgPC9wYXJh PgogICAgICAgIDxwYXJhPgogICAgICAgICBSZXR1cm5zIHRoZSBjb2x1bW4gdmFsdWUgYXQgdGhl IHJvdyA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPgotICAgICAgICByb3dzIGJlZm9yZSB0 aGUgY3VycmVudCByb3cgd2l0aGluIHRoZSB3aW5kb3cgZnJhbWU7Ci0gICAgICAgIHJldHVybnMg TlVMTCBpZiB0aGUgdGFyZ2V0IHJvdyBpcyBvdXRzaWRlIHRoZSB3aW5kb3cgZnJhbWUuCisgICAg ICAgIHJvd3MgYmVmb3JlIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHBhcnRpdGlvbjsKKyAg ICAgICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRp dGlvbi4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8g MSBpZiBvbWl0dGVkLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0 IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7CiAgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVy cyB0byB0aGUgY3VycmVudCByb3cgaXRzZWxmLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwv cGFyYW1ldGVyPiBtdXN0IG5vdCBiZSBOVUxMLgorICAgICAgICBDYW4gb25seSBiZSB1c2VkIGlu IGEgPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UuCiAgICAgICAgPC9wYXJhPjwvZW50 cnk+CiAgICAgICA8L3Jvdz4KIApAQCAtMzI4LDEyICszMjksMTMgQEAKICAgICAgICA8L3BhcmE+ CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFJldHVybnMgdGhlIGNvbHVtbiB2YWx1ZSBhdCB0aGUg cm93IDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+Ci0gICAgICAgIHJvd3MgYWZ0ZXIgdGhl IGN1cnJlbnQgcm93IHdpdGhpbiB0aGUgd2luZG93IGZyYW1lOwotICAgICAgICByZXR1cm5zIE5V TEwgaWYgdGhlIHRhcmdldCByb3cgaXMgb3V0c2lkZSB0aGUgd2luZG93IGZyYW1lLgorICAgICAg ICByb3dzIGFmdGVyIHRoZSBjdXJyZW50IHJvdyB3aXRoaW4gdGhlIHBhcnRpdGlvbjsKKyAgICAg ICAgcmV0dXJucyBOVUxMIGlmIHRoZSB0YXJnZXQgcm93IGlzIG91dHNpZGUgdGhlIHBhcnRpdGlv bi4KICAgICAgICAgPHBhcmFtZXRlcj5vZmZzZXQ8L3BhcmFtZXRlcj4gZGVmYXVsdHMgdG8gMSBp ZiBvbWl0dGVkLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVyPiBtdXN0IGJl IGEgbm9uLW5lZ2F0aXZlIGludGVnZXI7CiAgICAgICAgIGFuIG9mZnNldCBvZiAwIHJlZmVycyB0 byB0aGUgY3VycmVudCByb3cgaXRzZWxmLgogICAgICAgICA8cGFyYW1ldGVyPm9mZnNldDwvcGFy YW1ldGVyPiBtdXN0IG5vdCBiZSBOVUxMLgorICAgICAgICBDYW4gb25seSBiZSB1c2VkIGluIGEg PGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPiBjbGF1c2UuCiAgICAgICAgPC9wYXJhPjwvZW50cnk+ CiAgICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9zZWxlY3Quc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKaW5kZXggNWU0YmE5ZDNjYzYuLjUyNzJk NmMwYmZhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3NlbGVjdC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvc2VsZWN0LnNnbWwKQEAgLTExMzMsMzQgKzExMzMsMzQgQEAgRVhDTFVE RSBOTyBPVEhFUlMKICAgIDxwYXJhPgogICAgIFRoZQogICAgIG9wdGlvbmFsIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb3dfcGF0dGVybl9jb21tb25fc3ludGF4PC9yZXBsYWNlYWJs ZT4KLSAgICBkZWZpbmVzIHRoZSA8Zmlyc3R0ZXJtPnJvdyBwYXR0ZXJuIHJlY29nbml0aW9uIGNv bmRpdGlvbjwvZmlyc3R0ZXJtPiBmb3IKKyAgICBkZWZpbmVzIHRoZSA8Zmlyc3R0ZXJtPlJvdyBQ YXR0ZXJuIFJlY29nbml0aW9uIGNvbmRpdGlvbjwvZmlyc3R0ZXJtPiBmb3IKICAgICB0aGlzCiAg ICAgd2luZG93LiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm93X3BhdHRlcm5fY29t bW9uX3N5bnRheDwvcmVwbGFjZWFibGU+Ci0gICAgaW5jbHVkZXMgZm9sbG93aW5nIHN1YmNsYXVz ZXMuCisgICAgaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBzdWJjbGF1c2VzLgogCiA8c3lub3BzaXM+ CiBbIHsgQUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XIHwgQUZURVIgTUFUQ0ggU0tJUCBU TyBORVhUIFJPVyB9IF0KIFsgSU5JVElBTCB8IFNFRUsgXQotUEFUVEVSTiAoIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuX3ZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBb IDxyZXBsYWNlYWJsZT5xdWFudGlmaWVyPC9yZXBsYWNlYWJsZT4gXSBbLCAuLi5dICkKK1BBVFRF Uk4gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybl92YXJpYWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+cXVhbnRpZmllcjwvcmVwbGFjZWFibGU+IF0g WyAuLi4gXSApCiBERUZJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmluaXRp b25fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXQogPC9zeW5vcHNpcz4KICAg ICA8bGl0ZXJhbD5BRlRFUiBNQVRDSCBTS0lQIFBBU1QgTEFTVCBST1c8L2xpdGVyYWw+IG9yIDxs aXRlcmFsPkFGVEVSIE1BVENICi0gICAgU0tJUCBUTyBORVhUIFJPVzwvbGl0ZXJhbD4gY29udHJv bHMgaG93IHRvIHByb2NlZWQgdG8gbmV4dCByb3cgcG9zaXRpb24KLSAgICBhZnRlciBhIG1hdGNo IGZvdW5kLiBXaXRoIDxsaXRlcmFsPkFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUCi0gICAgUk9X PC9saXRlcmFsPiAodGhlIGRlZmF1bHQpIG5leHQgcm93IHBvc2l0aW9uIGlzIG5leHQgdG8gdGhl IGxhc3Qgcm93IG9mCi0gICAgcHJldmlvdXMgbWF0Y2guIE9uIHRoZSBvdGhlciBoYW5kLCB3aXRo IDxsaXRlcmFsPkFGVEVSIE1BVENIIFNLSVAgVE8gTkVYVAotICAgIFJPVzwvbGl0ZXJhbD4gbmV4 dCByb3cgcG9zaXRpb24gaXMgbmV4dCB0byB0aGUgZmlyc3Qgcm93IG9mIHByZXZpb3VzCi0gICAg bWF0Y2guIDxsaXRlcmFsPklOSVRJQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNFRUs8L2xpdGVy YWw+IGRlZmluZXMgaG93IGEKLSAgICBzdWNjZXNzZnVsIHBhdHRlcm4gbWF0Y2hpbmcgc3RhcnRz IGZyb20gd2hpY2ggcm93IGluIGEKLSAgICBmcmFtZS4gSWYgPGxpdGVyYWw+SU5JVElBTDwvbGl0 ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgbWF0Y2ggbXVzdCBzdGFydAorICAgIFNLSVAgVE8gTkVY VCBST1c8L2xpdGVyYWw+IGNvbnRyb2xzIGhvdyB0byBwcm9jZWVkIHRvIHRoZSBuZXh0IHJvdyBw b3NpdGlvbgorICAgIGFmdGVyIGEgbWF0Y2ggaXMgZm91bmQuIFdpdGggPGxpdGVyYWw+QUZURVIg TUFUQ0ggU0tJUCBQQVNUIExBU1QKKyAgICBST1c8L2xpdGVyYWw+ICh0aGUgZGVmYXVsdCkgdGhl IG5leHQgcm93IHBvc2l0aW9uIGlzIG5leHQgdG8gdGhlIGxhc3Qgcm93IG9mCisgICAgdGhlIHBy ZXZpb3VzIG1hdGNoLiBPbiB0aGUgb3RoZXIgaGFuZCwgd2l0aCA8bGl0ZXJhbD5BRlRFUiBNQVRD SCBTS0lQIFRPIE5FWFQKKyAgICBST1c8L2xpdGVyYWw+IHRoZSBuZXh0IHJvdyBwb3NpdGlvbiBp cyBuZXh0IHRvIHRoZSBmaXJzdCByb3cgb2YgdGhlIHByZXZpb3VzCisgICAgbWF0Y2guIDxsaXRl cmFsPklOSVRJQUw8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlNFRUs8L2xpdGVyYWw+IHNwZWNpZmll cyBmcm9tCisgICAgd2hpY2ggcm93IGluIHRoZSBmcmFtZSBwYXR0ZXJuIG1hdGNoaW5nIGJlZ2lu cy4KKyAgICBJZiA8bGl0ZXJhbD5JTklUSUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBt YXRjaCBtdXN0IHN0YXJ0CiAgICAgZnJvbSB0aGUgZmlyc3Qgcm93IGluIHRoZSBmcmFtZS4gSWYg PGxpdGVyYWw+U0VFSzwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLAotICAgIHRoZSBzZXQgb2YgbWF0 Y2hpbmcgcm93cyBkbyBub3QgbmVjZXNzYXJpbHkgc3RhcnQgZnJvbSB0aGUgZmlyc3Qgcm93LiBU aGUKKyAgICB0aGUgc2V0IG9mIG1hdGNoaW5nIHJvd3MgZG9lcyBub3QgbmVjZXNzYXJpbHkgc3Rh cnQgZnJvbSB0aGUgZmlyc3Qgcm93LiBUaGUKICAgICBkZWZhdWx0IGlzIDxsaXRlcmFsPklOSVRJ QUw8L2xpdGVyYWw+LiBDdXJyZW50bHkKICAgICBvbmx5IDxsaXRlcmFsPklOSVRJQUw8L2xpdGVy YWw+IGlzIHN1cHBvcnRlZC4gPGxpdGVyYWw+REVGSU5FPC9saXRlcmFsPgogICAgIGRlZmluZXMg ZGVmaW5pdGlvbiB2YXJpYWJsZXMgYWxvbmcgd2l0aCBhIGJvb2xlYW4KICAgICBleHByZXNzaW9u LiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBkZWZpbmVzIGEgc2VxdWVuY2Ugb2Ygcm93cyB0 aGF0CiAgICAgc2F0aXNmaWVzIGNlcnRhaW4gY29uZGl0aW9ucyB1c2luZyB2YXJpYWJsZXMgZGVm aW5lZAotICAgIGluIDxsaXRlcmFsPkRFRklORTwvbGl0ZXJhbD4gY2xhdXNlIChhbiBlbXB0eSA8 bGl0ZXJhbD5QQVRURVJOKCk8L2xpdGVyYWw+CisgICAgaW4gdGhlIDxsaXRlcmFsPkRFRklORTwv bGl0ZXJhbD4gY2xhdXNlIChhbiBlbXB0eSA8bGl0ZXJhbD5QQVRURVJOKCk8L2xpdGVyYWw+CiAg ICAgaXMgbm90IHN1cHBvcnRlZCkuIEVhY2ggcGF0dGVybiB2YXJpYWJsZSBjYW4gYmUgZm9sbG93 ZWQgYnkgYSBxdWFudGlmaWVyCiAgICAgdG8gc3BlY2lmeSBob3cgbWFueSB0aW1lcyBpdCBzaG91 bGQgbWF0Y2g6CiAgICAgPGxpdGVyYWw+KjwvbGl0ZXJhbD4gKHplcm8gb3IgbW9yZSksCkBAIC0x MTk4LDcgKzExOTgsNyBAQCBERUZJTkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRl ZmluaXRpb25fdmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IEFTCiAKICAgIDxwYXJhPgogICAg IE5vdGUgdGhhdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgdW5pcXVlIHBhdHRlcm4gdmFyaWFibGVz Ci0gICAgdXNlZCBpbiA8bGl0ZXJhbD5QQVRURVJOPC9saXRlcmFsPiBjbGF1c2UgaXMgMjUxLgor ICAgIHVzZWQgaW4gdGhlIDxsaXRlcmFsPlBBVFRFUk48L2xpdGVyYWw+IGNsYXVzZSBpcyAyNTEu CiAgICAgSWYgdGhpcyBsaW1pdCBpcyBleGNlZWRlZCwgYW4gZXJyb3Igd2lsbCBiZSByYWlzZWQu CiAgICAgQWRkaXRpb25hbGx5LCB0aGUgbWF4aW11bSBuZXN0aW5nIGRlcHRoIG9mIHBhdHRlcm4g Z3JvdXBzCiAgICAgKHBhcmVudGhlc2VzKSBpcyAyNTMgbGV2ZWxzLgotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Disposition: attachment; filename="nocfbot-0029-Fix-nav_slot-pass-by-ref-dangling-pointer.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trry128 RnJvbSBjMzNhY2E0MTgzMTk4MTZiZGU4ODNkMWFkNmIwN2Y3ZWZmYmRkZGVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMTM6NTk6MjkgKzA5MDAKU3ViamVjdDogW1BBVENIXSBGaXggbmF2 X3Nsb3QgcGFzcy1ieS1yZWYgZGFuZ2xpbmcgcG9pbnRlciBpbiBSUFIgbmF2aWdhdGlvbgoKV2hl biBhIERFRklORSBleHByZXNzaW9uIGNvbnRhaW5zIG11bHRpcGxlIG5hdmlnYXRpb24gY2FsbHMg dGFyZ2V0aW5nCmRpZmZlcmVudCBwb3NpdGlvbnMgKGUuZy4sIFBSRVYoeCwxKSA+IFBSRVYoeCwy KSksIHRoZSBzZWNvbmQgY2FsbApyZS1mZXRjaGVzIG5hdl9zbG90LCBmcmVlaW5nIHRoZSBwcmV2 aW91cyB0dXBsZSB2aWEgcGZyZWUuICBBbnkKcGFzcy1ieS1yZWYgZGF0dW0gZXh0cmFjdGVkIGZy b20gdGhlIGZpcnN0IG5hdmlnYXRpb24gYmVjb21lcyBhCmRhbmdsaW5nIHBvaW50ZXIuICBGaXgg YnkgY29weWluZyBwYXNzLWJ5LXJlZiByZXN1bHRzIGludG8gcGVyLXR1cGxlCm1lbW9yeSBpbiB0 aGUgUkVTVE9SRSBzdGVwLgotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgfCAgNSArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyB8IDIwICsr KysrKysKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgfCAgMiArCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Jwci5vdXQgICAgIHwgODAgKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsICAgICAgICAgIHwgMzQgKysr KysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKaW5kZXggNjM0OWE1NjRhOTguLjhkOGRhNjdlNzlmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMKQEAgLTEzMDQsNyArMTMwNCwxMiBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAq bm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAogCQkJCS8qIEVtaXQgUkVTVE9SRSBvcGNvZGU6IHJl c3RvcmUgb3JpZ2luYWwgc2xvdCAqLwogCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9SUFJfTkFW X1JFU1RPUkU7CisJCQkJc2NyYXRjaC5yZXN2YWx1ZSA9IHJlc3Y7CisJCQkJc2NyYXRjaC5yZXNu dWxsID0gcmVzbnVsbDsKIAkJCQlzY3JhdGNoLmQucnByX25hdi53aW5zdGF0ZSA9IHdpbnN0YXRl OworCQkJCWdldF90eXBsZW5ieXZhbChuYXYtPnJlc3VsdHR5cGUsCisJCQkJCQkJCSZzY3JhdGNo LmQucnByX25hdi5yZXN1bHR0eXBsZW4sCisJCQkJCQkJCSZzY3JhdGNoLmQucnByX25hdi5yZXN1 bHR0eXBieXZhbCk7CiAJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwogCQkJ CWJyZWFrOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggMmVj NTc5NzMyY2MuLmUyZDQxYzMwOThmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMKQEAgLTYxNTYsNiArNjE1NiwxMyBAQCBFeGVjRXZhbFJQUk5hdlNldChFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiAgKiBXaGVuIHNs b3Qgc3dhcCB3YXMgZWxpZGVkICh0YXJnZXQgPT0gY3VycmVudHBvcyksIHRoaXMgaXMgYSBoYXJt bGVzcwogICogbm8tb3Agc2luY2Ugc2F2ZWQgYW5kIGN1cnJlbnQgc2xvdHMgYXJlIGlkZW50aWNh bC4KICAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIGFueSBsb2NhbCBz bG90IGNhY2hlLgorICoKKyAqIEZvciBwYXNzLWJ5LXJlZmVyZW5jZSByZXN1bHQgdHlwZXMsIHRo ZSByZXN1bHQgZGF0dW0gcG9pbnRzIGludG8KKyAqIG5hdl9zbG90J3MgdHVwbGUgbWVtb3J5LiAg SWYgYSBzdWJzZXF1ZW50IG5hdmlnYXRpb24gaW4gdGhlIHNhbWUKKyAqIGV4cHJlc3Npb24gcmUt ZmV0Y2hlcyBuYXZfc2xvdCBmb3IgYSBkaWZmZXJlbnQgcG9zaXRpb24sIHRoZSBvbGQKKyAqIHR1 cGxlIGlzIGZyZWVkLCBsZWF2aW5nIGEgZGFuZ2xpbmcgcG9pbnRlci4gIFdlIHByZXZlbnQgdGhp cyBieQorICogY29weWluZyBwYXNzLWJ5LXJlZiByZXN1bHRzIGludG8gcGVyLXR1cGxlIG1lbW9y eSwgd2hpY2ggc3Vydml2ZXMKKyAqIHVudGlsIHRoZSBuZXh0IFJlc2V0RXhwckNvbnRleHQuCiAg Ki8KIHZvaWQKIEV4ZWNFdmFsUlBSTmF2UmVzdG9yZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLApAQCAtNjE2NCw0ICs2MTcxLDE3IEBAIEV4ZWNFdmFsUlBSTmF2UmVzdG9yZShF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAogCVdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSA9IG9wLT5kLnJwcl9uYXYud2luc3RhdGU7CiAKIAllY29udGV4dC0+ZWN4dF9vdXRlcnR1 cGxlID0gd2luc3RhdGUtPm5hdl9zYXZlZF9vdXRlcnR1cGxlOworCisJLyogU3RhYmlsaXplIHBh c3MtYnktcmVmIHJlc3VsdCBhZ2FpbnN0IG5hdl9zbG90IHJlLWZldGNoICovCisJaWYgKCFvcC0+ ZC5ycHJfbmF2LnJlc3VsdHR5cGJ5dmFsICYmCisJCSEqb3AtPnJlc251bGwpCisJeworCQlNZW1v cnlDb250ZXh0IG9sZENvbnRleHQ7CisKKwkJb2xkQ29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhlY29udGV4dC0+ZWN4dF9wZXJfdHVwbGVfbWVtb3J5KTsKKwkJKm9wLT5yZXN2YWx1ZSA9 IGRhdHVtQ29weSgqb3AtPnJlc3ZhbHVlLAorCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkgIG9w LT5kLnJwcl9uYXYucmVzdWx0dHlwbGVuKTsKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENv bnRleHQpOworCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHBy LmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IDgzNDgwMGE0MDYyLi5l NmIyYWIzMDQwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAor KysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC03MDMsNiArNzAzLDggQEAg dHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJCQlEYXR1bQkgICAqb2Zmc2V0X3ZhbHVlOwkv KiBvZmZzZXQgdmFsdWUocyksIG9yIE5VTEwgKi8KIAkJCWJvb2wJICAgKm9mZnNldF9pc251bGw7 CS8qIG9mZnNldCBudWxsIGZsYWcocykgKi8KIAkJCS8qIEZvciBjb21wb3VuZCBuYXY6IG9mZnNl dF92YWx1ZVswXSA9IGlubmVyLCBbMV0gPSBvdXRlciAqLworCQkJaW50MTYJCXJlc3VsdHR5cGxl bjsJLyogUkVTVE9SRTogcmVzdWx0IHR5cGUgbGVuZ3RoICovCisJCQlib29sCQlyZXN1bHR0eXBi eXZhbDsgLyogUkVTVE9SRTogcmVzdWx0IHBhc3MtYnktdmFsdWU/ICovCiAJCX0JCQlycHJfbmF2 OwogCiAJCS8qIGZvciBFRU9QX0FHR18qREVTRVJJQUxJWkUgKi8KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnByLm91dAppbmRleCAwNGVjMjVkNGNmNS4uMzJhYThiYzM3MjIgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnByLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Jwci5vdXQKQEAgLTE2MzUsNiArMTYzNSw4NiBAQCBXSU5ET1cgdyBBUyAoCiAgY29tcGFu eTIgfCAwNy0xMC0yMDIzIHwgIDEzMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg MAogKDIwIHJvd3MpCiAKKy0tIFBhc3MtYnktcmVmIHR5cGVzOiB0d28gUFJFViBjYWxscyB0YXJn ZXRpbmcgZGlmZmVyZW50IHBvc2l0aW9ucy4KKy0tIFZlcmlmaWVzIHRoYXQgZGF0dW1Db3B5IGlu IFJFU1RPUkUgcHJldmVudHMgZGFuZ2xpbmcgcG9pbnRlcnMgd2hlbgorLS0gbmF2X3Nsb3QgaXMg cmUtZmV0Y2hlZCBmb3IgdGhlIHNlY29uZCBuYXZpZ2F0aW9uLgorLS0gdGRhdGU6OnRleHQgZ2l2 ZXMgZGlzdGluY3QgdGV4dCB2YWx1ZXMgcGVyIHJvdyAoZS5nLiAnMDctMDEtMjAyMycpLgorLS0g QiBtYXRjaGVzIHdoZW4gMS1iYWNrIGRhdGUgdGV4dCA+IDItYmFjayBkYXRlIHRleHQgKGFsd2F5 cyB0cnVlIGZvcgorLS0gYXNjZW5kaW5nIGRhdGVzKSwgc28gQisgZXh0ZW5kcyB0aGUgZnVsbCBw YXJ0aXRpb24gYWZ0ZXIgQS4KK1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgdGRhdGU6OnRleHQgQVMg dGRhdGVfdGV4dCwKKyAgICAgICBmaXJzdF92YWx1ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBsYXN0 X3ZhbHVlKHRkYXRlOjp0ZXh0KSBPVkVSIHcsIGNvdW50KCopIE9WRVIgdworRlJPTSBzdG9jawor V0lORE9XIHcgQVMgKAorICAgIFBBUlRJVElPTiBCWSBjb21wYW55IE9SREVSIEJZIHRkYXRlCisg ICAgUk9XUyBCRVRXRUVOIENVUlJFTlQgUk9XIEFORCBVTkJPVU5ERUQgRk9MTE9XSU5HCisgICAg QUZURVIgTUFUQ0ggU0tJUCBQQVNUIExBU1QgUk9XCisgICAgUEFUVEVSTiAoQSBCKykKKyAgICBE RUZJTkUKKyAgICAgICAgQSBBUyBUUlVFLAorICAgICAgICBCIEFTIFBSRVYodGRhdGU6OnRleHQs IDEpID4gUFJFVih0ZGF0ZTo6dGV4dCwgMikKKyk7CisgY29tcGFueSAgfCAgIHRkYXRlICAgIHwg dGRhdGVfdGV4dCB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGNvdW50IAorLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0KKyBjb21wYW55MSB8IDA3LTAxLTIwMjMgfCAwNy0wMS0yMDIzIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTAyLTIwMjMgfCAwNy0wMi0yMDIz IHwgMDctMDItMjAyMyAgfCAwNy0xMC0yMDIzIHwgICAgIDkKKyBjb21wYW55MSB8IDA3LTAzLTIw MjMgfCAwNy0wMy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21w YW55MSB8IDA3LTA0LTIwMjMgfCAwNy0wNC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA1LTIwMjMgfCAwNy0wNS0yMDIzIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA2LTIwMjMgfCAwNy0wNi0y MDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA3 LTIwMjMgfCAwNy0wNy0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBj b21wYW55MSB8IDA3LTA4LTIwMjMgfCAwNy0wOC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA5LTIwMjMgfCAwNy0wOS0yMDIzIHwgICAgICAg ICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAwNy0x MC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3 LTAxLTIwMjMgfCAwNy0wMS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAK KyBjb21wYW55MiB8IDA3LTAyLTIwMjMgfCAwNy0wMi0yMDIzIHwgMDctMDItMjAyMyAgfCAwNy0x MC0yMDIzIHwgICAgIDkKKyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAwNy0wMy0yMDIzIHwgICAg ICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA0LTIwMjMgfCAw Ny0wNC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8 IDA3LTA1LTIwMjMgfCAwNy0wNS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg IDAKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMgfCAwNy0wNi0yMDIzIHwgICAgICAgICAgICAgfCAg ICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA3LTIwMjMgfCAwNy0wNy0yMDIzIHwg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA4LTIwMjMg fCAwNy0wOC0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MiB8IDA3LTA5LTIwMjMgfCAwNy0wOS0yMDIzIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg ICAgIDAKKyBjb21wYW55MiB8IDA3LTEwLTIwMjMgfCAwNy0xMC0yMDIzIHwgICAgICAgICAgICAg fCAgICAgICAgICAgIHwgICAgIDAKKygyMCByb3dzKQorCistLSBudW1lcmljOiBQUkVWKHByaWNl OjpudW1lcmljLCAxKSA+IFBSRVYocHJpY2U6Om51bWVyaWMsIDIpCistLSBCIG1hdGNoZXMgd2hl biBwcmljZSAxLWJhY2sgPiBwcmljZSAyLWJhY2sgKGFzY2VuZGluZyBwYWlyKS4KK1NFTEVDVCBj b21wYW55LCB0ZGF0ZSwgcHJpY2U6Om51bWVyaWMgQVMgbnByaWNlLAorICAgICAgIGZpcnN0X3Zh bHVlKHByaWNlOjpudW1lcmljKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2U6Om51bWVyaWMpIE9W RVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAoCisgICAgUEFS VElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdFRU4gQ1VSUkVO VCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBTS0lQIFBBU1Qg TEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAgICBBIEFTIFRS VUUsCisgICAgICAgIEIgQVMgUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVWKHByaWNlOjpu dW1lcmljLCAyKQorKTsKKyBjb21wYW55ICB8ICAgdGRhdGUgICAgfCBucHJpY2UgfCBmaXJzdF92 YWx1ZSB8IGxhc3RfdmFsdWUgfCBjb3VudCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBjb21wYW55MSB8IDA3LTAx LTIwMjMgfCAgICAxMDAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBh bnkxIHwgMDctMDItMjAyMyB8ICAgIDIwMCB8ICAgICAgICAgMjAwIHwgICAgICAgIDE1MCB8ICAg ICAyCisgY29tcGFueTEgfCAwNy0wMy0yMDIzIHwgICAgMTUwIHwgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTA0LTIwMjMgfCAgICAxNDAgfCAgICAgICAg ICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkxIHwgMDctMDUtMjAyMyB8ICAgIDE1 MCB8ICAgICAgICAgMTUwIHwgICAgICAgICA5MCB8ICAgICAyCisgY29tcGFueTEgfCAwNy0wNi0y MDIzIHwgICAgIDkwIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55 MSB8IDA3LTA3LTIwMjMgfCAgICAxMTAgfCAgICAgICAgIDExMCB8ICAgICAgICAxMjAgfCAgICAg MworIGNvbXBhbnkxIHwgMDctMDgtMjAyMyB8ICAgIDEzMCB8ICAgICAgICAgICAgIHwgICAgICAg ICAgICB8ICAgICAwCisgY29tcGFueTEgfCAwNy0wOS0yMDIzIHwgICAgMTIwIHwgICAgICAgICAg ICAgfCAgICAgICAgICAgIHwgICAgIDAKKyBjb21wYW55MSB8IDA3LTEwLTIwMjMgfCAgICAxMzAg fCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDEtMjAy MyB8ICAgICA1MCB8ICAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIg fCAwNy0wMi0yMDIzIHwgICAyMDAwIHwgICAgICAgIDIwMDAgfCAgICAgICAxNTAwIHwgICAgIDIK KyBjb21wYW55MiB8IDA3LTAzLTIwMjMgfCAgIDE1MDAgfCAgICAgICAgICAgICB8ICAgICAgICAg ICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMDQtMjAyMyB8ICAgMTQwMCB8ICAgICAgICAgICAg IHwgICAgICAgICAgICB8ICAgICAwCisgY29tcGFueTIgfCAwNy0wNS0yMDIzIHwgICAxNTAwIHwg ICAgICAgIDE1MDAgfCAgICAgICAgIDYwIHwgICAgIDIKKyBjb21wYW55MiB8IDA3LTA2LTIwMjMg fCAgICAgNjAgfCAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwg MDctMDctMjAyMyB8ICAgMTEwMCB8ICAgICAgICAxMTAwIHwgICAgICAgMTIwMCB8ICAgICAzCisg Y29tcGFueTIgfCAwNy0wOC0yMDIzIHwgICAxMzAwIHwgICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgIDAKKyBjb21wYW55MiB8IDA3LTA5LTIwMjMgfCAgIDEyMDAgfCAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAgICAgMAorIGNvbXBhbnkyIHwgMDctMTAtMjAyMyB8ICAgMTMwMCB8ICAg ICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAwCisoMjAgcm93cykKKwogLS0KIC0tIEZJUlNU L0xBU1QgbmF2aWdhdGlvbgogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Jw ci5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCmluZGV4IGEwNWI0MjljZTc0Li43 MjRkNDYwYjJkYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcnByLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9ycHIuc3FsCkBAIC03NzYsNiArNzc2LDQwIEBAIFdJTkRP VyB3IEFTICgKICAgICBERUZJTkUgQSBBUyBwcmljZSA+IFBSRVYocHJpY2UsIDEpIEFORCBwcmlj ZSA8IE5FWFQocHJpY2UsIDEpCiApOwogCistLSBQYXNzLWJ5LXJlZiB0eXBlczogdHdvIFBSRVYg Y2FsbHMgdGFyZ2V0aW5nIGRpZmZlcmVudCBwb3NpdGlvbnMuCistLSBWZXJpZmllcyB0aGF0IGRh dHVtQ29weSBpbiBSRVNUT1JFIHByZXZlbnRzIGRhbmdsaW5nIHBvaW50ZXJzIHdoZW4KKy0tIG5h dl9zbG90IGlzIHJlLWZldGNoZWQgZm9yIHRoZSBzZWNvbmQgbmF2aWdhdGlvbi4KKy0tIHRkYXRl Ojp0ZXh0IGdpdmVzIGRpc3RpbmN0IHRleHQgdmFsdWVzIHBlciByb3cgKGUuZy4gJzA3LTAxLTIw MjMnKS4KKy0tIEIgbWF0Y2hlcyB3aGVuIDEtYmFjayBkYXRlIHRleHQgPiAyLWJhY2sgZGF0ZSB0 ZXh0IChhbHdheXMgdHJ1ZSBmb3IKKy0tIGFzY2VuZGluZyBkYXRlcyksIHNvIEIrIGV4dGVuZHMg dGhlIGZ1bGwgcGFydGl0aW9uIGFmdGVyIEEuCitTRUxFQ1QgY29tcGFueSwgdGRhdGUsIHRkYXRl Ojp0ZXh0IEFTIHRkYXRlX3RleHQsCisgICAgICAgZmlyc3RfdmFsdWUodGRhdGU6OnRleHQpIE9W RVIgdywgbGFzdF92YWx1ZSh0ZGF0ZTo6dGV4dCkgT1ZFUiB3LCBjb3VudCgqKSBPVkVSIHcKK0ZS T00gc3RvY2sKK1dJTkRPVyB3IEFTICgKKyAgICBQQVJUSVRJT04gQlkgY29tcGFueSBPUkRFUiBC WSB0ZGF0ZQorICAgIFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVEIEZPTExP V0lORworICAgIEFGVEVSIE1BVENIIFNLSVAgUEFTVCBMQVNUIFJPVworICAgIFBBVFRFUk4gKEEg QispCisgICAgREVGSU5FCisgICAgICAgIEEgQVMgVFJVRSwKKyAgICAgICAgQiBBUyBQUkVWKHRk YXRlOjp0ZXh0LCAxKSA+IFBSRVYodGRhdGU6OnRleHQsIDIpCispOworCistLSBudW1lcmljOiBQ UkVWKHByaWNlOjpudW1lcmljLCAxKSA+IFBSRVYocHJpY2U6Om51bWVyaWMsIDIpCistLSBCIG1h dGNoZXMgd2hlbiBwcmljZSAxLWJhY2sgPiBwcmljZSAyLWJhY2sgKGFzY2VuZGluZyBwYWlyKS4K K1NFTEVDVCBjb21wYW55LCB0ZGF0ZSwgcHJpY2U6Om51bWVyaWMgQVMgbnByaWNlLAorICAgICAg IGZpcnN0X3ZhbHVlKHByaWNlOjpudW1lcmljKSBPVkVSIHcsIGxhc3RfdmFsdWUocHJpY2U6Om51 bWVyaWMpIE9WRVIgdywgY291bnQoKikgT1ZFUiB3CitGUk9NIHN0b2NrCitXSU5ET1cgdyBBUyAo CisgICAgUEFSVElUSU9OIEJZIGNvbXBhbnkgT1JERVIgQlkgdGRhdGUKKyAgICBST1dTIEJFVFdF RU4gQ1VSUkVOVCBST1cgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcKKyAgICBBRlRFUiBNQVRDSCBT S0lQIFBBU1QgTEFTVCBST1cKKyAgICBQQVRURVJOIChBIEIrKQorICAgIERFRklORQorICAgICAg ICBBIEFTIFRSVUUsCisgICAgICAgIEIgQVMgUFJFVihwcmljZTo6bnVtZXJpYywgMSkgPiBQUkVW KHByaWNlOjpudW1lcmljLCAyKQorKTsKKwogLS0KIC0tIEZJUlNUL0xBU1QgbmF2aWdhdGlvbgog LS0KLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Disposition: attachment; filename="nocfbot-0030-Add-inline-comments-design-notes.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trtyw29 RnJvbSA3NmI2MGZiNTM4OTA2MzQ2MTQ0YmU3NDMwYjg1OGRkZDQ3MWVjM2FiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NDk6MjcgKzA5MDAKU3ViamVjdDogW1BBVENIXSBBZGQgaW5s aW5lIGNvbW1lbnRzIGZvciBjb21wbGV4IFJQUiBhbGdvcml0aG1zIGFuZCBkZXNpZ24KIG5vdGVz CgpEb2N1bWVudCBFTkQgY2hhaW4gdHJhdmVyc2FsIGluIG5mYV9tYXRjaCgpLCBmYXN0LWZvcndh cmQgcGF0aHMKaW4gbmZhX2FkdmFuY2VfZW5kKCksIGFic29ycHRpb24gc2FmZXR5IHJ1bGVzIHdp dGggbmF2aWdhdGlvbgpsb29rdXAgdGFibGUsIHBlci1jb250ZXh0IGV2YWx1YXRpb24gc3RyYXRl Z3kgdGFibGUsIGZpeGVkLWxlbmd0aApncm91cCB1bnJvbGxpbmcgcmF0aW9uYWxlLCBhbmQgQkVH SU4vRU5EIHBvaW50ZXIgbGF5b3V0IGRpYWdyYW0uCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY1JQUi5jICAgfCA5NyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMgfCA0MSArKysrKysrKysrKystLQogMiBmaWxlcyBj aGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y1JQUi5jCmluZGV4IGJhZWU0NWNlNTRlLi43YmE3YjZmYjY3MiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JQUi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS UFIuYwpAQCAtNDQwLDcgKzQ0MCwxNCBAQAogICogICBDYXNlIDI6IEdST1VQKyB3aXRoIGZpeGVk LWxlbmd0aCBjaGlsZHJlbiAobWluID09IG1heCwgcmVjdXJzaXZlbHkpCiAgKiAgICAgICAgICAg ZS5nLiwgKEEgQikrLCAoQSBCezJ9KSssICgoQSAoQiBDKXsyfSl7Mn0pKwogICogICAgICAgICAg IC0+IEFCU09SQkFCTEVfQlJBTkNIIG9uIGFsbCBlbGVtZW50cyB3aXRoaW4gdGhlIGdyb3VwLAot ICogICAgICAgICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIG9uIEVORAorICog ICAgICAgICAgICAgIEFCU09SQkFCTEUgfCBBQlNPUkJBQkxFX0JSQU5DSCBvbiBFTkQKKyAqCisg KiAgICAgICAgICAgV2h5IHRoaXMgaXMgc2FmZTogd2hlbiBldmVyeSBjaGlsZCBoYXMgbWluID09 IG1heCwgdGhlIGdyb3VwCisgKiAgICAgICAgICAgaXMgc2VtYW50aWNhbGx5IGVxdWl2YWxlbnQg dG8gdW5yb2xsaW5nIGl0cyBib2R5IGludG8gezEsMX0KKyAqICAgICAgICAgICBlbGVtZW50cy4g IEUuZy4sIChBIEJ7Mn0pKyBiZWhhdmVzIGxpa2UgKEEgQiBCKSsuICBFYWNoCisgKiAgICAgICAg ICAgaXRlcmF0aW9uIGNvbnN1bWVzIGEgZml4ZWQgbnVtYmVyIG9mIHJvd3MsIHNvIGFuIGVhcmxp ZXIKKyAqICAgICAgICAgICBjb250ZXh0J3MgY291bnQgYWx3YXlzIGRvbWluYXRlcyBhIGxhdGVy IG9uZSdzIChtb25vdG9uaWNpdHkpLgorICoKICAqICAgQ2FzZSAzOiBHUk9VUCsgd2hvc2UgYm9k eSBzdGFydHMgd2l0aCBWQVIrIChlLmcuLCAoQSsgQikrKQogICogICAgICAgICAgIC0+IFJlY3Vy c2VzIGZyb20gQkVHSU4gaW50byB0aGUgYm9keSwgYXBwbHlpbmcgQ2FzZSAxLgogICogICAgICAg ICAgICAgQUJTT1JCQUJMRSB8IEFCU09SQkFCTEVfQlJBTkNIIHNldCBvbiBBLgpAQCAtNjQ3LDYg KzY1NCwxOSBAQAogICogdmFyaWFibGVzLiAgVGhlIG9yaWdpbmFsIG5hdl9tYXRjaF9zdGFydCBh bmQgY3VycmVudHBvcyBhcmUgc2F2ZWQgYW5kCiAgKiByZXN0b3JlZCBhZnRlciByZS1ldmFsdWF0 aW9uLgogICoKKyAqIFN1bW1hcnkgb2YgZXZhbHVhdGlvbiBzdHJhdGVneSBieSBuYXZpZ2F0aW9u IGNvbnRlbnQ6CisgKgorICogICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgICBldmFs dWF0aW9uCisgKiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAqICAgTm8gbmF2aWdhdGlvbiAgICAgICAgICAgICAgICAgICAgc2hhcmVk IChvbmNlIHBlciByb3cpCisgKiAgIFBSRVYvTkVYVCBvbmx5ICAgICAgICAgICAgICAgICAgIHNo YXJlZCAob25jZSBwZXIgcm93KQorICogICBMQVNUIChubyBvZmZzZXQpICAgICAgICAgICAgICAg ICBzaGFyZWQgKG9uY2UgcGVyIHJvdykKKyAqICAgTEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAg ICAgICAgcGVyLWNvbnRleHQKKyAqICAgRklSU1QgKGFueSkgICAgICAgICAgICAgICAgICAgICAg cGVyLWNvbnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIEZJUlNUKSAgICAgICAgICAgcGVyLWNv bnRleHQKKyAqICAgQ29tcG91bmQgKGlubmVyIExBU1QsIG5vIG9mZi4pICAgc2hhcmVkIChvbmNl IHBlciByb3cpCisgKiAgIENvbXBvdW5kIChpbm5lciBMQVNULCB3L29mZi4pICAgIHBlci1jb250 ZXh0CisgKgogICogVkktNS4gVHVwbGVzdG9yZSBNYXJrIGFuZCBUcmltIChub2RlV2luZG93QWdn LmMpCiAgKgogICogTmF2aWdhdGlvbiBmdW5jdGlvbnMgcmVxdWlyZSBhY2Nlc3MgdG8gcGFzdCBy b3dzIHZpYSB0aGUgdHVwbGVzdG9yZS4KQEAgLTc2MiwxMSArNzgyLDI2IEBACiAgKiAgIChiKSBV bmJvdW5kZWQgZnJhbWUgKFJPV1MgQkVUV0VFTiBDVVJSRU5UIFJPVyBBTkQgVU5CT1VOREVECiAg KiAgICAgICBGT0xMT1dJTkcpLiAgTGltaXRlZCBmcmFtZXMgYXBwbHkgZGlmZmVyZW50bHkgdG8g ZWFjaCBjb250ZXh0LAogICogICAgICAgYnJlYWtpbmcgdGhlIG1vbm90b25pY2l0eSBwcmluY2lw bGUuCi0gKiAgIChjKSBObyBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBpbiBERUZJ TkUuICBGSVJTVCwKLSAqICAgICAgIExBU1Qtd2l0aC1vZmZzZXQsIGFuZCBjb21wb3VuZCBuYXZp Z2F0aW9uIHJlZmVyZW5jaW5nIG1hdGNoX3N0YXJ0Ci0gKiAgICAgICAoUFJFVl9GSVJTVCwgTkVY VF9GSVJTVCwgUFJFVl9MQVNUL05FWFRfTEFTVCB3aXRoIG9mZnNldCkKLSAqICAgICAgIGNhdXNl IGRpZmZlcmVudCBjb250ZXh0cyB0byBldmFsdWF0ZSB0byBkaWZmZXJlbnQgdmFsdWVzIGZvciB0 aGUKLSAqICAgICAgIHNhbWUgcm93LCBicmVha2luZyBtb25vdG9uaWNpdHkuCisgKiAgIChjKSBO byBtYXRjaF9zdGFydC1kZXBlbmRlbnQgbmF2aWdhdGlvbiBpbiBERUZJTkUuCisgKgorICogICAg ICAgTWVjaGFuaXNtOiBlYWNoIGNvbnRleHQgaGFzIGEgZGlmZmVyZW50IG1hdGNoU3RhcnRSb3cs IHNvIEZJUlNUCisgKiAgICAgICByZXNvbHZlcyB0byBhIGRpZmZlcmVudCByb3cgZm9yIGVhY2gg Y29udGV4dCBhdCB0aGUgc2FtZQorICogICAgICAgY3VycmVudHBvcy4gIEFuIGVhcmxpZXIgY29u dGV4dCdzIERFRklORSByZXN1bHQgbm8gbG9uZ2VyCisgKiAgICAgICBzdWJzdW1lcyBhIGxhdGVy IG9uZSdzLCBtYWtpbmcgY291bnQtZG9taW5hbmNlIGNvbXBhcmlzb24KKyAqICAgICAgIGludmFs aWQuICBSYXRoZXIgdGhhbiBjb21wYXJpbmcgbWF0Y2hTdGFydFJvdyBhdCBydW50aW1lCisgKiAg ICAgICAod2hpY2ggd291bGQgY29tcGxpY2F0ZSB0aGUgYWJzb3JiIHBhdGgpLCBhbnkgbWF0Y2hf c3RhcnQKKyAqICAgICAgIGRlcGVuZGVuY3kgZGlzYWJsZXMgYWJzb3JwdGlvbiBlbnRpcmVseS4K KyAqCisgKiAgICAgICBOYXZpZ2F0aW9uIGNvbnRlbnQgICAgICAgICAgICAgIG1hdGNoX3N0YXJ0 IGRlcC4gIGFic29ycHRpb24KKyAqICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogICAgICAgTm8gbmF2aWdhdGlvbiAg ICAgICAgICAgICAgICAgICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBQUkVWL05F WFQgb25seSAgICAgICAgICAgICAgICAgIG5vbmUgICAgICAgICAgICAgIHNhZmUKKyAqICAgICAg IExBU1QgKG5vIG9mZnNldCkgICAgICAgICAgICAgICAgbm9uZSAgICAgICAgICAgICAgc2FmZQor ICogICAgICAgTEFTVCAod2l0aCBvZmZzZXQpICAgICAgICAgICAgICBib3VuZGFyeSBjaGVjayAg ICB1bnNhZmUKKyAqICAgICAgIEZJUlNUIChhbnkpICAgICAgICAgICAgICAgICAgICAgZGlyZWN0 ICAgICAgICAgICAgdW5zYWZlCisgKiAgICAgICBDb21wb3VuZCAoaW5uZXIgRklSU1QpICAgICAg ICAgIGRpcmVjdCAgICAgICAgICAgIHVuc2FmZQorICogICAgICAgQ29tcG91bmQgKGlubmVyIExB U1QsIG5vIG9mZi4pICBub25lICAgICAgICAgICAgICBzYWZlCisgKiAgICAgICBDb21wb3VuZCAo aW5uZXIgTEFTVCwgdy9vZmYuKSAgIGJvdW5kYXJ5IGNoayAgICAgIHVuc2FmZQogICoKICAqIFJ1 bnRpbWUgY29uZGl0aW9ucyAoZXZhbHVhdGVkIHBlciBjb250ZXh0IHBhaXIpOgogICoKQEAgLTIy NjAsNyArMjI5NSwxMyBAQCBuZmFfYWJzb3JiX2NvbnRleHRzKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSkKICAqIG5mYV9ldmFsX3Zhcl9tYXRjaAogICoKICAqIEV2YWx1YXRlIGlmIGEgVkFSIGVs ZW1lbnQgbWF0Y2hlcyB0aGUgY3VycmVudCByb3cuCi0gKiBVbmRlZmluZWQgdmFyaWFibGVzICh2 YXJJZCA+PSBkZWZpbmVWYXJpYWJsZUxpc3QgbGVuZ3RoKSBkZWZhdWx0IHRvIFRSVUUuCisgKgor ICogdmFyTWF0Y2hlZCBpcyBhIHByZS1ldmFsdWF0ZWQgYm9vbGVhbiBhcnJheSBpbmRleGVkIGJ5 IHZhcklkLCBjb21wdXRlZAorICogb25jZSBwZXIgcm93IGJ5IGV2YWx1YXRpbmcgYWxsIERFRklO RSBleHByZXNzaW9ucy4gIE5VTEwgbWVhbnMgbm8gREVGSU5FCisgKiBjbGF1c2VzIGV4aXN0IChv bmx5IHBvc3NpYmxlIGR1cmluZyBlYXJseSBkZXZlbG9wbWVudC90ZXN0aW5nKS4KKyAqCisgKiBQ ZXIgU1FMOjIwMTYgUjAyMCwgcGF0dGVybiB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiBERUZJTkUg YXJlIGltcGxpY2l0bHkKKyAqIFRSVUUgLS0gdGhleSBtYXRjaCBldmVyeSByb3cuICBUaGlzIGlz IGNoZWNrZWQgdmlhIHZhcklkID49IGxpc3RfbGVuZ3RoLgogICovCiBzdGF0aWMgYm9vbAogbmZh X2V2YWxfdmFyX21hdGNoKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgUlBSUGF0dGVybkVsZW1l bnQgKmVsZW0sCkBAIC0yMzM3LDkgKzIzNzgsMjAgQEAgbmZhX21hdGNoKFdpbmRvd0FnZ1N0YXRl ICp3aW5zdGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LCBib29sICp2YXJNYXRjaGVkKQogCiAJCQkJ LyoKIAkJCQkgKiBGb3IgVkFSIGF0IG1heCBjb3VudCB3aXRoIEVORCBuZXh0LCBhZHZhbmNlIHRo cm91Z2ggRU5ECi0JCQkJICogY2hhaW4gdG8gcmVhY2ggdGhlIGFic29ycHRpb24ganVkZ21lbnQg cG9pbnQuIE9ubHkKKwkJCQkgKiBjaGFpbiB0byByZWFjaCB0aGUgYWJzb3JwdGlvbiBqdWRnbWVu dCBwb2ludC4gIE9ubHkKIAkJCQkgKiBkZXRlcm1pbmlzdGljIGV4aXRzIChjb3VudCA+PSBtYXgs IG1heCBmaW5pdGUpIGFyZSBoYW5kbGVkOwogCQkJCSAqIHVuYm91bmRlZCBWQVJzIHN0YXkgZm9y IGFkdmFuY2UgcGhhc2UuCisJCQkJICoKKwkJCQkgKiBJbiBuZXN0ZWQgcGF0dGVybnMgbGlrZSAo KEEgQil7Mn0pezN9LCBhIFZBUiByZWFjaGluZyBpdHMKKwkJCQkgKiBtYXggdHJpZ2dlcnMgYW4g ZXhpdCBjYXNjYWRlOiBpbm5lciBFTkQgaW5jcmVtZW50cyBpbm5lcgorCQkJCSAqIGdyb3VwIGNv dW50LCB3aGljaCBtYXkgaXRzZWxmIHJlYWNoIG1heCwgcmVxdWlyaW5nIGFuIGV4aXQKKwkJCQkg KiB0byB0aGUgbmV4dCBvdXRlciBFTkQuICBUaGUgbG9vcCBiZWxvdyB3YWxrcyB0aGlzIGNoYWlu LgorCQkJCSAqCisJCQkJICogQUJTT1JCQUJMRV9CUkFOQ0ggbWFya3MgZWxlbWVudHMgaW5zaWRl IHRoZSBhYnNvcmJhYmxlCisJCQkJICogcmVnaW9uOyBBQlNPUkJBQkxFIG1hcmtzIHRoZSBvdXRl cm1vc3QganVkZ21lbnQgcG9pbnQKKwkJCQkgKiB3aGVyZSBjb3VudC1kb21pbmFuY2UgaXMgZXZh bHVhdGVkLiAgV2UgY2hhaW4gdGhyb3VnaAorCQkJCSAqIEJSQU5DSCBlbGVtZW50cyB1bnRpbCBy ZWFjaGluZyB0aGUgQUJTT1JCQUJMRSBwb2ludCBvcgorCQkJCSAqIGFuIGVsZW1lbnQgdGhhdCBj YW4gc3RpbGwgbG9vcCAoY291bnQgPCBtYXgpLgogCQkJCSAqLwogCQkJCWlmIChSUFJFbGVtSXNB YnNvcmJhYmxlQnJhbmNoKGVsZW0pICYmCiAJCQkJCSFSUFJFbGVtSXNBYnNvcmJhYmxlKGVsZW0p ICYmCkBAIC0yNTYxLDEyICsyNjEzLDI1IEBAIG5mYV9hZHZhbmNlX2VuZChXaW5kb3dBZ2dTdGF0 ZSAqd2luc3RhdGUsIFJQUk5GQUNvbnRleHQgKmN0eCwKIAkJUlBSUGF0dGVybkVsZW1lbnQgKmp1 bXBFbGVtOwogCQlSUFJORkFTdGF0ZSAqZmZTdGF0ZSA9IE5VTEw7CiAKLQkJLyogU25hcHNob3Qg c3RhdGUgZm9yIGZmIHBhdGggYmVmb3JlIG1vZGlmeWluZyBmb3IgbG9vcC1iYWNrICovCisJCS8q CisJCSAqIFR3byBwYXRocyBhcmUgZXhwbG9yZWQgaW4gcGFyYWxsZWwgd2hlbiB0aGUgZ3JvdXAg Ym9keSBpcworCQkgKiBudWxsYWJsZSAoUlBSX0VMRU1fRU1QVFlfTE9PUCk6CisJCSAqCisJCSAq IDEuIFByaW1hcnkgcGF0aDogbG9vcCBiYWNrIGFuZCBhdHRlbXB0IHJlYWwgbWF0Y2hlcyBpbiB0 aGUKKwkJICogICAgbmV4dCBpdGVyYXRpb24gKHN0YXRlLCBtb2RpZmllZCBiZWxvdykuCisJCSAq CisJCSAqIDIuIEZhc3QtZm9yd2FyZCBwYXRoOiBza2lwIGRpcmVjdGx5IHRvIGFmdGVyIHRoZSBn cm91cCwKKwkJICogICAgdHJlYXRpbmcgYWxsIHJlbWFpbmluZyByZXF1aXJlZCBpdGVyYXRpb25z IGFzIGVtcHR5CisJCSAqICAgIG1hdGNoZXMgKGZmU3RhdGUsIGhhbmRsZWQgYWZ0ZXIgdGhlIHBy aW1hcnkgcGF0aCkuCisJCSAqCisJCSAqIFRoZSBzbmFwc2hvdCBtdXN0IGJlIHRha2VuIEJFRk9S RSBtb2RpZnlpbmcgc3RhdGUgZm9yIHRoZQorCQkgKiBsb29wLWJhY2ssIHNpbmNlIGJvdGggcGF0 aHMgZGl2ZXJnZSBmcm9tIHRoZSBzYW1lIHBvaW50LgorCQkgKi8KIAkJaWYgKFJQUkVsZW1DYW5F bXB0eUxvb3AoZWxlbSkpCiAJCQlmZlN0YXRlID0gbmZhX3N0YXRlX2NyZWF0ZSh3aW5zdGF0ZSwg c3RhdGUtPmVsZW1JZHgsCiAJCQkJCQkJCQkgICBzdGF0ZS0+Y291bnRzLCBzdGF0ZS0+aXNBYnNv cmJhYmxlKTsKIAotCQkvKiBMb29wIGJhY2sgZm9yIHJlYWwgbWF0Y2hlcyAocHJpbWFyeSBwYXRo KSAqLworCQkvKiBQcmltYXJ5IHBhdGg6IGxvb3AgYmFjayBmb3IgcmVhbCBtYXRjaGVzICovCiAJ CWZvciAoaW50IGQgPSBkZXB0aCArIDE7IGQgPCBwYXR0ZXJuLT5tYXhEZXB0aDsgZCsrKQogCQkJ c3RhdGUtPmNvdW50c1tkXSA9IDA7CiAJCXN0YXRlLT5lbGVtSWR4ID0gZWxlbS0+anVtcDsKQEAg LTI1NzUsMTIgKzI2NDAsMTIgQEAgbmZhX2FkdmFuY2VfZW5kKFdpbmRvd0FnZ1N0YXRlICp3aW5z dGF0ZSwgUlBSTkZBQ29udGV4dCAqY3R4LAogCQkJCQkJICBjdXJyZW50UG9zKTsKIAogCQkvKgot CQkgKiBGYXN0LWZvcndhcmQgZmFsbGJhY2sgZm9yIG51bGxhYmxlIGJvZGllcy4gIEUuZy4gKEE/ KXsyLDN9IHdoZW4gQQotCQkgKiBkb2Vzbid0IG1hdGNoOiB0aGUgbG9vcC1iYWNrIHByb2R1Y2Vz IGVtcHR5IGl0ZXJhdGlvbnMgdGhhdCBjeWNsZQotCQkgKiBkZXRlY3Rpb24gd291bGQga2lsbC4g IEluc3RlYWQsIGV4aXQgZGlyZWN0bHkgdHJlYXRpbmcgYWxsCi0JCSAqIHJlbWFpbmluZyByZXF1 aXJlZCBpdGVyYXRpb25zIGFzIGVtcHR5LiAgUm91dGUgdG8gZWxlbS0+bmV4dCAobm90Ci0JCSAq IG5mYV9hZHZhbmNlX2VuZCkgdG8gYXZvaWQgY3JlYXRpbmcgY29tcGV0aW5nIGdyZWVkeS9yZWx1 Y3RhbnQgbG9vcAotCQkgKiBzdGF0ZXMuCisJCSAqIEZhc3QtZm9yd2FyZCBwYXRoIGZvciBudWxs YWJsZSBib2RpZXMuICBFLmcuIChBPyl7MiwzfSB3aGVuCisJCSAqIEEgZG9lc24ndCBtYXRjaDog dGhlIHByaW1hcnkgbG9vcC1iYWNrIHByb2R1Y2VzIGVtcHR5CisJCSAqIGl0ZXJhdGlvbnMgdGhh dCBjeWNsZSBkZXRlY3Rpb24gd291bGQga2lsbC4gIEluc3RlYWQsIGV4aXQKKwkJICogZGlyZWN0 bHkgd2l0aCBjb3VudCBzYXRpc2ZpZWQuICBSb3V0ZSB0byBlbGVtLT5uZXh0IChub3QKKwkJICog bmZhX2FkdmFuY2VfZW5kKSB0byBhdm9pZCBjcmVhdGluZyBjb21wZXRpbmcgZ3JlZWR5L3JlbHVj dGFudAorCQkgKiBsb29wIHN0YXRlcy4KIAkJICovCiAJCWlmIChmZlN0YXRlICE9IE5VTEwpCiAJ CXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3Jwci5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcnByLmMKaW5kZXggNzY3YTIxNDAxNmMuLjc1NGZjZDUzMDk5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYworKysgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9ycHIuYwpAQCAtNDc4LDYgKzQ3OCwxOSBAQCBtZXJnZUNv bnNlY3V0aXZlQWx0cyhMaXN0ICpjaGlsZHJlbikKICAqIG1lcmdlR3JvdXBQcmVmaXhTdWZmaXgK ICAqCQlNZXJnZSBzZXF1ZW5jZSBwcmVmaXgvc3VmZml4IGludG8gR1JPVVAgd2l0aCBtYXRjaGlu ZyBjaGlsZHJlbi4KICAqCisgKiBXaGVuIGEgR1JPVVAncyBjaGlsZHJlbiBhcHBlYXIgYXMgYSBw cmVmaXggYmVmb3JlIGFuZC9vciBzdWZmaXggYWZ0ZXIKKyAqIHRoZSBHUk9VUCBpbiBhIFNFUSwg YWJzb3JiIHRoZW0gYnkgaW5jcmVtZW50aW5nIHRoZSBHUk9VUCdzIHF1YW50aWZpZXIuCisgKiBU aGlzIHJ1bnMgaXRlcmF0aXZlbHk6IEEgQiBBIEIgKEEgQikrIEEgQiAtPiAoQSBCKXs1LH0uCisg KgorICogQWxnb3JpdGhtOgorICogICBGb3IgZWFjaCBHUk9VUCBlbmNvdW50ZXJlZCBpbiB0aGUg c2VxdWVuY2U6CisgKiAgIDEuIFBSRUZJWCBwaGFzZTogY29tcGFyZSB0aGUgbGFzdCBOIGVsZW1l bnRzIGFscmVhZHkgaW4gdGhlIHJlc3VsdAorICogICAgICBsaXN0IGFnYWluc3QgdGhlIEdST1VQ J3MgY2hpbGRyZW4uICBPbiBtYXRjaCwgcmVtb3ZlIHRoZW0gZnJvbQorICogICAgICByZXN1bHQg YW5kIGluY3JlbWVudCB0aGUgR1JPVVAncyBtaW4vbWF4LiAgUmVwZWF0IHVudGlsIG5vIG1hdGNo LgorICogICAyLiBTVUZGSVggcGhhc2U6IGNvbXBhcmUgdGhlIG5leHQgTiBlbGVtZW50cyBpbiB0 aGUgaW5wdXQgYWdhaW5zdAorICogICAgICB0aGUgR1JPVVAncyBjaGlsZHJlbi4gIE9uIG1hdGNo LCBza2lwIHRoZW0gKHZpYSBza2lwVW50aWwpIGFuZAorICogICAgICBpbmNyZW1lbnQgbWluL21h eC4gIFJlcGVhdCB1bnRpbCBubyBtYXRjaC4KKyAqCiAgKiBFeGFtcGxlczoKICAqICAgQSBCIChB IEIpKyAtPiAoQSBCKXsyLH0KICAqICAgKEEgQikrIEEgQiAtPiAoQSBCKXsyLH0KQEAgLTgxMyw4 ICs4MjYsMTYgQEAgdHJ5TXVsdGlwbHlRdWFudGlmaWVycyhSUFJQYXR0ZXJuTm9kZSAqcGF0dGVy bikKIAl9CiAKIAkvKgotCSAqIENhc2UgMi8zOiBTYWZlIHdoZW4gY2hpbGQgaXMgZmluaXRlIEFO RCAob3V0ZXIgaXMgZXhhY3QgT1IgY2hpbGQgaXMKLQkgKiB7MSwxfSkKKwkgKiBDYXNlIDI6IE91 dGVyIGV4YWN0IChtaW4gPT0gbWF4KTogKEF7MiwzfSl7NH0gLT4gQXs4LDEyfS4KKwkgKiAgICAg ICAgIFNhZmUgYmVjYXVzZSBldmVyeSBpdGVyYXRpb24gcHJvZHVjZXMgdGhlIHNhbWUgcmFuZ2Uu CisJICoKKwkgKiBDYXNlIDM6IENoaWxkIHsxLDF9OiAoQSl7Miw1fSAtPiBBezIsNX0uCisJICog ICAgICAgICBTYWZlIGJlY2F1c2UgdGhlIGNoaWxkIGNvbnRyaWJ1dGVzIGV4YWN0bHkgb25lIHBl cgorCSAqICAgICAgICAgaXRlcmF0aW9uLCBzbyB0aGUgb3V0ZXIgcmFuZ2UgbWFwcyBkaXJlY3Rs eS4KKwkgKgorCSAqIFVuc2FmZSBleGFtcGxlOiAoQXsyfSl7MiwzfSBwcm9kdWNlcyBjb3VudHMg NCBvciA2IG9ubHksIG5vdAorCSAqIHRoZSBmdWxsIHJhbmdlIDQuLjYsIHNvIHdlIGNhbm5vdCBm bGF0dGVuIHdoZW4gY2hpbGQgaGFzIGEKKwkgKiBub24tdHJpdmlhbCByYW5nZSBBTkQgb3V0ZXIg aXMgYWxzbyBhIHJhbmdlLgogCSAqLwogCWlmIChjaGlsZC0+bWF4ICE9IFJQUl9RVUFOVElUWV9J TkYgJiYKIAkJKHBhdHRlcm4tPm1pbiA9PSBwYXR0ZXJuLT5tYXggfHwKQEAgLTgyNCw2ICs4NDUs NyBAQCB0cnlNdWx0aXBseVF1YW50aWZpZXJzKFJQUlBhdHRlcm5Ob2RlICpwYXR0ZXJuKQogCQlp ZiAobmV3X21pbl82NCA+PSBSUFJfUVVBTlRJVFlfSU5GKQogCQkJcmV0dXJuIHBhdHRlcm47CiAK KwkJLyogT3V0ZXIgdW5ib3VuZGVkOiByZXN1bHQgaXMgdW5ib3VuZGVkIHJlZ2FyZGxlc3Mgb2Yg Y2hpbGQgKi8KIAkJaWYgKHBhdHRlcm4tPm1heCA9PSBSUFJfUVVBTlRJVFlfSU5GKQogCQkJbmV3 X21heF82NCA9IFJQUl9RVUFOVElUWV9JTkY7CiAJCWVsc2UKQEAgLTExODYsOCArMTIwOCwxOSBA QCBmaWxsUlBSUGF0dGVyblZhcihSUFJQYXR0ZXJuTm9kZSAqbm9kZSwgUlBSUGF0dGVybiAqcGF0 LCBpbnQgKmlkeCwgUlBSRGVwdGggZGVwdAogICogZmlsbFJQUlBhdHRlcm5Hcm91cAogICoJCUZp bGwgYSBHUk9VUCBwYXR0ZXJuIGFuZCBpdHMgY2hpbGRyZW4uCiAgKgotICogQ3JlYXRlcyBlbGVt ZW50cyBmb3IgZ3JvdXAgY29udGVudCBhdCBpbmNyZWFzZWQgZGVwdGgsIHBsdXMgYW4gRU5EIG1h cmtlcgotICogaWYgdGhlIGdyb3VwIGhhcyBhIG5vbi10cml2aWFsIHF1YW50aWZpZXIuCisgKiBD cmVhdGVzIGVsZW1lbnRzIGZvciBncm91cCBjb250ZW50IGF0IGluY3JlYXNlZCBkZXB0aCwgcGx1 cyBCRUdJTi9FTkQKKyAqIG1hcmtlciBwYWlyIGlmIHRoZSBncm91cCBoYXMgYSBub24tdHJpdmlh bCBxdWFudGlmaWVyIChub3QgezEsMX0pLgorICoKKyAqIEVsZW1lbnQgbGF5b3V0IGZvciAoQSBC KXsyLDN9OgorICoKKyAqICAgW0JFR0lOXSAgW0FdICBbQl0gIFtFTkRdICBbbmV4dCBlbGVtZW50 Li4uXQorICogICAgIHwgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIF4KKyAqICAgICB8ICAg ICAgICAgICAgICAgICAgKy0tIGp1bXAgLS0rIChsb29wIGJhY2sgdG8gZmlyc3QgY2hpbGQpCisg KiAgICAgKy0tLS0ganVtcCAtLS0tLS0tLS0tLS0tLS0tLS0tKyAoc2tpcCB0byBhZnRlciBFTkQp CisgKgorICogQkVHSU4uanVtcCBwb2ludHMgcGFzdCBFTkQgKHNraXAgcGF0aCB3aGVuIGNvdW50 ID49IG1heCBvciBtaW4gPT0gMCkuCisgKiBFTkQuanVtcCBwb2ludHMgdG8gdGhlIGZpcnN0IGNo aWxkIChsb29wLWJhY2sgcGF0aCkuCisgKiBCRUdJTi5uZXh0IGFuZCBFTkQubmV4dCBhcmUgc2V0 IGxhdGVyIGJ5IGZpbmFsaXplUlBSUGF0dGVybigpLgogICoKICAqIFJldHVybnMgdHJ1ZSBpZiB0 aGlzIGdyb3VwIGlzIG51bGxhYmxlLiAgQSBncm91cCBpcyBudWxsYWJsZSB3aGVuIGl0cwogICog bWluIGlzIDAgKGNhbiBiZSBza2lwcGVkIGVudGlyZWx5KSBvciBpdHMgYm9keSBpcyBudWxsYWJs ZSAoZXZlcnkgcGF0aAotLSAKMi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d Content-Type: text/plain; charset="US-ASCII"; name="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Disposition: attachment; filename="nocfbot-0031-Remove-unused-include-fix-header-ordering.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo5trvdw30 RnJvbSBhMDc0Y2RiNDVmZmFhNmE0NmEwYjYwYTU4MWEyZWI1MjdkODU1Y2FkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZW5zb24gQ2hvaSA8YXNzYW0yNThAZ21haWwuY29tPgpEYXRl OiBUdWUsIDcgQXByIDIwMjYgMjA6NTI6MTMgKzA5MDAKU3ViamVjdDogW1BBVENIXSBSZW1vdmUg dW51c2VkIGluY2x1ZGUgYW5kIGZpeCBoZWFkZXIgb3JkZXJpbmcgaW4gUlBSIGZpbGVzCgotLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAyICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgIHwgMyArLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9ycHIuYyAgICAgICAgfCAzICstLQogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5k ZXggZTJkNDFjMzA5OGYuLjU4YjY2OTNlZDc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKQEAgLTU2LDggKzU2LDggQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAK LSNpbmNsdWRlICJjb21tb24vaW50LmgiCiAjaW5jbHVkZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgor I2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHVwY29udmVydC5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNl LmgiCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKaW5kZXggODQ5ZWJmOGFiYjAuLjAy ZjE3ZTU0NzJjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVdpbmRvd0FnZy5jCkBAIC0zNCwxMCAr MzQsOSBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9k ZXRhaWxzLmgiCi0jaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKLSNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGxhdGlvbl9kLmgiCisjaW5jbHVkZSAiY29tbW9uL2ludC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY1JQUi5oIgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3Jwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jwci5jCmluZGV4 IDhmYmUxMmUxNTE4Li44ODY0YjIwZTZjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3Jwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9ycHIuYwpAQCAtMzAs OSArMzAsOCBAQAogI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgogI2luY2x1ZGUgIm9wdGlt aXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcnByLmgiCi0jaW5jbHVkZSAi cGFyc2VyL3BhcnNlX2NsYXVzZS5oIgotI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2xsYXRlLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJz ZV9jb2xsYXRlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfcnByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgotLSAK Mi41MC4xIChBcHBsZSBHaXQtMTU1KQoK --000000000000d35376064fd07e6d--