<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>71436</bug_id>
          
          <creation_ts>2011-11-02 19:32:46 -0700</creation_ts>
          <short_desc>DFG inlining breaks function.arguments[something] if the argument being retrieved was subjected to DFG&apos;s unboxing optimizations</short_desc>
          <delta_ts>2011-11-03 13:05:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71439</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>oliver</cc>
    
    <cc>paroga</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>495157</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-02 19:32:46 -0700</bug_when>
    <thetext>InlineCallFrame should know not only where to find arguments but also how to transmogrify the value in the register file into an appopriate JSValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495160</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-02 19:37:09 -0700</bug_when>
    <thetext>The fix appears to be perf-neutral.


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
&quot;FixArguments2&quot; at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree             FixArguments2                                  
SunSpider:
   3d-cube                                7.5212+-0.2259    ?     7.5264+-0.2016       ?
   3d-morph                               7.5806+-0.1293    ?     7.6602+-0.1197       ? might be 1.0105x slower
   3d-raytrace                            7.7395+-0.3591    ?     7.7609+-0.2671       ?
   access-binary-trees                    1.7049+-0.1229          1.5558+-0.0472         might be 1.0958x faster
   access-fannkuch                        6.4364+-0.0762    ?     6.6471+-0.1966       ? might be 1.0327x slower
   access-nbody                           3.6906+-0.0683    ?     3.7790+-0.1119       ? might be 1.0240x slower
   access-nsieve                          2.6218+-0.0958          2.5735+-0.0536         might be 1.0188x faster
   bitops-3bit-bits-in-byte               1.3111+-0.0258          1.3077+-0.0201       
   bitops-bits-in-byte                    2.4357+-0.0576    ?     2.4644+-0.0748       ? might be 1.0118x slower
   bitops-bitwise-and                     3.3885+-0.0629    ?     3.4189+-0.1450       ?
   bitops-nsieve-bits                     5.5731+-0.1750          5.4807+-0.1525         might be 1.0169x faster
   controlflow-recursive                  2.1854+-0.0507    ^     2.0846+-0.0403       ^ definitely 1.0483x faster
   crypto-aes                             7.6902+-0.2532          7.4891+-0.2266         might be 1.0269x faster
   crypto-md5                             2.6997+-0.0774    ?     2.7296+-0.0899       ? might be 1.0111x slower
   crypto-sha1                            2.5243+-0.0595          2.4615+-0.0598         might be 1.0255x faster
   date-format-tofte                     10.4991+-0.2963         10.4769+-0.4194       
   date-format-xparb                      9.5655+-0.3331          9.1388+-0.1880         might be 1.0467x faster
   math-cordic                            6.4924+-0.1236    ?     6.5218+-0.1695       ?
   math-partial-sums                      7.6284+-0.1768          7.5994+-0.1429       
   math-spectral-norm                     2.5934+-0.0582    ?     2.6100+-0.0851       ?
   regexp-dna                            11.9187+-0.2538         11.5446+-0.2464         might be 1.0324x faster
   string-base64                          4.0977+-0.0684    ?     4.1413+-0.1647       ? might be 1.0106x slower
   string-fasta                           6.4471+-0.2620          6.4470+-0.2433       
   string-tagcloud                       11.9003+-0.3490         11.7710+-0.3049         might be 1.0110x faster
   string-unpack-code                    20.6661+-0.5599    ?    20.8308+-0.4553       ?
   string-validate-input                  5.5422+-0.2844          5.3479+-0.2877         might be 1.0363x faster

   &lt;arithmetic&gt; *                         6.2482+-0.0445          6.2065+-0.0422       
   &lt;geometric&gt;                            5.0304+-0.0402          4.9870+-0.0373       
   &lt;harmonic&gt;                             4.0181+-0.0461          3.9653+-0.0365         might be 1.0133x faster

                                            TipOfTree             FixArguments2                                  
V8:
   crypto                                73.0528+-0.3744    ?    73.9699+-0.7800       ? might be 1.0126x slower
   deltablue                            166.6788+-1.5937    ?   167.7910+-1.4707       ?
   earley-boyer                          90.6311+-0.5744         90.2339+-0.6199       
   raytrace                              62.4455+-0.5666    ?    63.4027+-0.5737       ? might be 1.0153x slower
   regexp                               106.2410+-0.7429        105.9297+-0.4786       
   richards                             126.4750+-1.2671        126.3324+-0.7869       
   splay                                 73.0375+-0.8011         72.7076+-1.3812       

   &lt;arithmetic&gt;                          99.7945+-0.3571    ?   100.0525+-0.3435       ?
   &lt;geometric&gt; *                         94.5590+-0.2962    ?    94.8452+-0.3748       ?
   &lt;harmonic&gt;                            90.0230+-0.2745    ?    90.3694+-0.4148       ?

                                            TipOfTree             FixArguments2                                  
Kraken:
   ai-astar                             490.2909+-3.3742    !   499.2071+-3.3754       ! definitely 1.0182x slower
   audio-beat-detection                 192.5149+-1.5999    ^   188.1374+-1.3947       ^ definitely 1.0233x faster
   audio-dft                            266.3441+-4.9703    ?   272.0965+-5.4826       ? might be 1.0216x slower
   audio-fft                            124.5641+-1.5011        124.4237+-0.7452       
   audio-oscillator                     253.3752+-2.1550        251.6580+-2.1351       
   imaging-darkroom                     302.2765+-4.9493        300.9969+-3.9633       
   imaging-desaturate                   225.7327+-1.1631        224.6029+-0.6902       
   imaging-gaussian-blur                553.2719+-3.7647        552.5799+-2.7106       
   json-parse-financial                  58.4904+-1.2073         57.5959+-0.3045         might be 1.0155x faster
   json-stringify-tinderbox              67.2634+-0.5878    ?    67.5680+-0.4717       ?
   stanford-crypto-aes                   98.0389+-0.6873         96.4402+-0.9744         might be 1.0166x faster
   stanford-crypto-ccm                  100.6559+-0.6126         99.8655+-0.6742       
   stanford-crypto-pbkdf2               196.0212+-1.5899    ^   192.4810+-0.9740       ^ definitely 1.0184x faster
   stanford-crypto-sha256-iterative      81.2195+-0.5315         80.4779+-0.8924       

   &lt;arithmetic&gt; *                       215.0042+-0.3776        214.8665+-0.5934       
   &lt;geometric&gt;                          171.1345+-0.4278        170.3530+-0.4277       
   &lt;harmonic&gt;                           137.1886+-0.5532    ^   136.2271+-0.3852       ^ definitely 1.0071x faster

                                            TipOfTree             FixArguments2                                  
All benchmarks:
   &lt;arithmetic&gt;                          82.3633+-0.1384         82.3376+-0.1803       
   &lt;geometric&gt;                           22.2647+-0.0986         22.1379+-0.0918       
   &lt;harmonic&gt;                             7.0671+-0.0787          6.9762+-0.0625         might be 1.0130x faster

                                            TipOfTree             FixArguments2                                  
Geomean of preferred means:
   &lt;scaled-result&gt;                       50.2685+-0.1402         50.1959+-0.1225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495168</commentid>
    <comment_count>2</comment_count>
      <attachid>113425</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-02 20:06:38 -0700</bug_when>
    <thetext>Created attachment 113425
the patch

It&apos;s ready for review modulo that I&apos;m going to wait with committing until the EWS is also happy, since this introduces some new headers.  Most of the build systems don&apos;t care so I might get lucky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495171</commentid>
    <comment_count>3</comment_count>
      <attachid>113425</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-02 20:21:22 -0700</bug_when>
    <thetext>Comment on attachment 113425
the patch

Attachment 113425 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10148432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495174</commentid>
    <comment_count>4</comment_count>
      <attachid>113425</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-11-02 20:26:43 -0700</bug_when>
    <thetext>Comment on attachment 113425
the patch

Attachment 113425 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10257464</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495200</commentid>
    <comment_count>5</comment_count>
      <attachid>113431</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-02 22:04:42 -0700</bug_when>
    <thetext>Created attachment 113431
the patch

Trying to fix !ENABLE(DFG_JIT) build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495216</commentid>
    <comment_count>6</comment_count>
      <attachid>113431</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-02 23:34:55 -0700</bug_when>
    <thetext>Comment on attachment 113431
the patch

is it possible to break this into two patches -- one to separate the headers one to do the functional change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495222</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-02 23:47:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 113431 [details])
&gt; is it possible to break this into two patches -- one to separate the headers one to do the functional change?

See: https://bugs.webkit.org/show_bug.cgi?id=71439</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495227</commentid>
    <comment_count>8</comment_count>
      <attachid>113438</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-03 00:02:28 -0700</bug_when>
    <thetext>Created attachment 113438
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495228</commentid>
    <comment_count>9</comment_count>
      <attachid>113438</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-11-03 00:07:47 -0700</bug_when>
    <thetext>Comment on attachment 113438
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=113438&amp;action=review

r+, but i don&apos;t see any reason not to merge stackOffset and isCall

&gt; Source/JavaScriptCore/bytecode/CodeOrigin.h:84
&gt;      unsigned stackOffset;
&gt; -    unsigned numArgumentsIncludingThis : 31;
&gt; -    bool isCall : 1;
&gt; +    bool isCall;

Can we merge stackOffset and isCall here?  I can&apos;t see us needing a 1gig stack offset...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495230</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-03 00:09:33 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 113438 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113438&amp;action=review
&gt; 
&gt; r+, but i don&apos;t see any reason not to merge stackOffset and isCall
&gt; 
&gt; &gt; Source/JavaScriptCore/bytecode/CodeOrigin.h:84
&gt; &gt;      unsigned stackOffset;
&gt; &gt; -    unsigned numArgumentsIncludingThis : 31;
&gt; &gt; -    bool isCall : 1;
&gt; &gt; +    bool isCall;
&gt; 
&gt; Can we merge stackOffset and isCall here?  I can&apos;t see us needing a 1gig stack offset...

Fair point.  I missed that somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495250</commentid>
    <comment_count>11</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-03 01:07:34 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/99148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495706</commentid>
    <comment_count>12</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-11-03 12:14:50 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Landed in http://trac.webkit.org/changeset/99148

It broke the interpreter build, since MacroAssembler isn&apos;t defined in ValueRecovery.h. Can somebody have a look at it? I&apos;m not sure about the best solution to keep the #ifdefs at a minimum. :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495732</commentid>
    <comment_count>13</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-03 12:51:14 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Landed in http://trac.webkit.org/changeset/99148
&gt; 
&gt; It broke the interpreter build, since MacroAssembler isn&apos;t defined in ValueRecovery.h. Can somebody have a look at it? I&apos;m not sure about the best solution to keep the #ifdefs at a minimum. :-/

Ooops, sorry about that!  I should have seen that one coming.  The best fix is probably to make sure that MacroAssembler::RegisterID, or some variant thereof, is defined regardless of whether or not we actually have a valid MacroAssembler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495734</commentid>
    <comment_count>14</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-11-03 13:03:10 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Landed in http://trac.webkit.org/changeset/99148
&gt; &gt; 
&gt; &gt; It broke the interpreter build, since MacroAssembler isn&apos;t defined in ValueRecovery.h. Can somebody have a look at it? I&apos;m not sure about the best solution to keep the #ifdefs at a minimum. :-/
&gt; 
&gt; Ooops, sorry about that!
NP!

&gt; I should have seen that one coming.
FYI: WinCE buildbot builds with interpreter.

&gt; The best fix is probably to make sure that MacroAssembler::RegisterID, or some variant thereof, is defined regardless of whether or not we actually have a valid MacroAssembler.

Can you take care of this? Or tell me the best place (and name) for defining the (FP)RegisterID type?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495736</commentid>
    <comment_count>15</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-11-03 13:05:16 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; &gt; Landed in http://trac.webkit.org/changeset/99148
&gt; &gt; &gt; 
&gt; &gt; &gt; It broke the interpreter build, since MacroAssembler isn&apos;t defined in ValueRecovery.h. Can somebody have a look at it? I&apos;m not sure about the best solution to keep the #ifdefs at a minimum. :-/
&gt; &gt; 
&gt; &gt; Ooops, sorry about that!
&gt; NP!
&gt; 
&gt; &gt; I should have seen that one coming.
&gt; FYI: WinCE buildbot builds with interpreter.
&gt; 
&gt; &gt; The best fix is probably to make sure that MacroAssembler::RegisterID, or some variant thereof, is defined regardless of whether or not we actually have a valid MacroAssembler.
&gt; 
&gt; Can you take care of this? Or tell me the best place (and name) for defining the (FP)RegisterID type?

I&apos;m doing it! :-)

See: https://bugs.webkit.org/show_bug.cgi?id=71498</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113425</attachid>
            <date>2011-11-02 20:06:38 -0700</date>
            <delta_ts>2011-11-02 22:04:42 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixargumentsunboxed_patch_1.diff</filename>
            <type>text/plain</type>
            <size>74527</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTkxMzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAK
KzIwMTEtMTEtMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgaW5saW5pbmcgYnJlYWtzIGZ1bmN0aW9uLmFyZ3VtZW50c1tzb21ldGhpbmddIGlmIHRoZSBh
cmd1bWVudCBiZWluZworICAgICAgICByZXRyaWV2ZWQgd2FzIHN1YmplY3RlZCB0byBERkcncyB1
bmJveGluZyBvcHRpbWl6YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtYWtlcyBpbmxpbmVkIGFyZ3VtZW50cyByZXRyaWV2
YWwgdXNlIHNvbWUgb2YgdGhlIHNhbWUgbWFjaGluZXJ5IGFzCisgICAgICAgIE9TUiB0byBkZXRl
cm1pbmUgd2hlcmUgZnJvbSwgYW5kIGhvdywgdG8gcmV0cmlldmUgYSB2YWx1ZSB0aGF0IHRoZSBE
RkcKKyAgICAgICAgbWlnaHQgaGF2ZSBzb21laG93IHNxdWlycmVsZWQgYXdheSB3aGlsZSB0aGUg
b2xkIEpJVCB3b3VsZCBwdXQgaXQgaW4gaXRzCisgICAgICAgIG9idmlvdXMgbG9jYXRpb24sIHVz
aW5nIGFuIG9idmlvdXMgZm9ybWF0LgorICAgICAgICAKKyAgICAgICAgVG8gdGhhdCBlbmQsIHBy
ZXZpb3VzbHkgREZHLWludGVybmFsIG5vdGlvbnMgc3VjaCBhcyBEYXRhRm9ybWF0LAorICAgICAg
ICBWaXJ0dWFsUmVnaXN0ZXIsIGFuZCBWYWx1ZVJlY292ZXJ5IGFyZSBub3cgaW4gYnl0ZWNvZGUv
IHNpbmNlIHRoZXkgYXJlCisgICAgICAgIHN0b3JlZCBhcyBwYXJ0IG9mIElubGluZUNhbGxGcmFt
ZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKiBieXRlY29kZS9E
YXRhRm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpkYXRhRm9ybWF0VG9TdHJpbmcpOgor
ICAgICAgICAoSlNDOjpuZWVkRGF0YUZvcm1hdENvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpp
c0pTRm9ybWF0KToKKyAgICAgICAgKEpTQzo6aXNKU0ludGVnZXIpOgorICAgICAgICAoSlNDOjpp
c0pTRG91YmxlKToKKyAgICAgICAgKEpTQzo6aXNKU0NlbGwpOgorICAgICAgICAoSlNDOjppc0pT
Qm9vbGVhbik6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6VmFsdWVSZWNvdmVyeSk6CisgICAgICAgIChKU0M6
OlZhbHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZSk6CisgICAgICAgIChKU0M6OlZh
bHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyKToKKyAgICAg
ICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6YWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2Vs
bCk6CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZUFz
VW5ib3hlZEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjppbkdQUik6Cisg
ICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OmluUGFpcik6CisgICAgICAgIChKU0M6OlZhbHVl
UmVjb3Zlcnk6OmluRlBSKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6ZGlzcGxhY2Vk
SW5SZWdpc3RlckZpbGUpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojpjb25zdGFudCk6
CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OnRlY2huaXF1ZSk6CisgICAgICAgIChKU0M6
OlZhbHVlUmVjb3Zlcnk6OmlzSW5SZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292
ZXJ5OjpncHIpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp0YWdHUFIpOgorICAgICAg
ICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpwYXlsb2FkR1BSKToKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZnByKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6dmlydHVhbFJlZ2lz
dGVyKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6ZHVtcCk6CisgICAgICAgICogYnl0
ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmg6IEFkZGVkLgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFj
dFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToK
KyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkpOgorICAgICAg
ICAqIGRmZy9ERkdHZW5lcmF0aW9uSW5mby5oOgorICAgICAgICAoSlNDOjpERkc6OkdlbmVyYXRp
b25JbmZvOjppc0pTRm9ybWF0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGl0U3BlY3VsYXRpdmVXaXRoT1NSKToK
KyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6SklUQ29tcGlsZXI6OmV4aXRTcGVjdWxhdGl2ZVdpdGhPU1IpOgorICAgICAgICAqIGRmZy9E
RkdOb2RlLmg6CisgICAgICAgICogZGZnL0RGR1Byb3BhZ2F0b3IuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlByb3BhZ2F0b3I6OnByb3BhZ2F0ZU5vZGVQcmVkaWN0aW9ucyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYWx1ZVNvdXJj
ZTo6ZHVtcCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oOgorICAgICAgICAq
IGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dHJ1
ZUNhbGxlckZyYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAg
ICAgKEpTQzo6RXhlY1N0YXRlOjppbmxpbmVDYWxsRnJhbWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL1JlZ2lzdGVyLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphc0lubGluZUNhbGxGcmFt
ZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkSW50MzIpOgorICAgICAgICAoSlND
OjpSZWdpc3Rlcjo6dW5ib3hlZEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6dW5i
b3hlZENlbGwpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6
OkFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb25BbmRDb3B5UmVnaXN0ZXJzKToKKwogMjAxMS0xMS0w
MiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIElubGluZWQgdXNl
cyBvZiB0aGUgZ2xvYmFsIG9iamVjdCBzaG91bGQgdXNlIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTkxMTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOSBAQAogCQkwQkYyOEEyOTExQTMzREMz
MDA2MzhGODQgLyogU2l6ZUxpbWl0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwQkYyOEEyODExQTMzREMzMDA2MzhGODQgLyogU2l6ZUxpbWl0cy5j
cHAgKi87IH07CiAJCTBGMTZENzI2MTQyQzM5QzAwMENGNzg0QSAvKiBCaXRWZWN0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNkQ3MjQxNDJD
MzlBMjAwQ0Y3ODRBIC8qIEJpdFZlY3Rvci5jcHAgKi87IH07CiAJCTBGMjQyREE3MTNGM0IxRTgw
MDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0MkRBNTEzRjNCMUJCMDA3QURENEMgLyogV2Vh
a1JlZmVyZW5jZUhhcnZlc3Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNDI2QTQ4MTQ2MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQyNkE0
NTE0NjBDQkFCMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNDI2QTQ5MTQ2MENCQjcwMDEzMUY4RiAv
KiBWaXJ0dWFsUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQyNkE0
QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0MjZBNEExNDYwQ0Q2QjAwMTMxRjhGIC8qIERhdGFG
b3JtYXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjYyMDE3NDE0M0ZDRDMzMDA2OEI3N0MgLyogREZHVmFyaWFibGVBY2Nlc3NEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MjE0M0ZD
RDJGMDA2OEI3N0MgLyogREZHVmFyaWFibGVBY2Nlc3NEYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzUxNDNGQ0QzNzAwNjhCNzdD
IC8qIERGR09wZXJhbmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjYyMDE3MTE0M0ZDRDJGMDA2OEI3N0MgLyogREZHT3BlcmFuZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NjE0M0ZD
RDNCMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNzAxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Jhc2lj
QmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtODEwLDYgKzgxMyw5IEBACiAJCTBCRjI4QTI4MTFBMzNEQzMwMDYzOEY4NCAvKiBTaXplTGlt
aXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpemVMaW1pdHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE2RDcyNDE0MkMzOUEyMDBDRjc4
NEEgLyogQml0VmVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEJpdFZlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjQyREE1MTNG
M0IxQkIwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MjZBNDUxNDYwQ0JBQjAwMTMxRjhGIC8qIFZhbHVlUmVjb3Zl
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsdWVSZWNvdmVyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQyNkE0NjE0NjBDQkFCMDAxMzFGOEYgLyog
VmlydHVhbFJlZ2lzdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1
YWxSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQyNkE0QTE0NjBD
RDZCMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEYXRhRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjIwMTZE
MTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Fic3RyYWN0U3RhdGUuY3BwOyBwYXRoID0gZGZnL0RG
R0Fic3RyYWN0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2
RTE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBERkdBYnN0cmFjdFN0YXRlLmg7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2RjE0M0ZDRDJG
MDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdBYnN0cmFjdFZhbHVlLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RWYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM5MCw2ICsyMzk2LDkgQEAKIAkJOTY5
QTA3OEYwRUQxRDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjQyNkE0QTE0NjBDRDZCMDAxMzFGOEYgLyogRGF0
YUZvcm1hdC5oICovLAorCQkJCTBGNDI2QTQ1MTQ2MENCQUIwMDEzMUY4RiAvKiBWYWx1ZVJlY292
ZXJ5LmggKi8sCisJCQkJMEY0MjZBNDYxNDYwQ0JBQjAwMTMxRjhGIC8qIFZpcnR1YWxSZWdpc3Rl
ci5oICovLAogCQkJCTBGQkQ3RTY3MTQ0Nzk5OEYwMDQ4MTMxNSAvKiBDb2RlT3JpZ2luLmggKi8s
CiAJCQkJMEZEODJFOEUxNDIwN0E1MTAwMTc5Qzk0IC8qIFZhbHVlUHJvZmlsZS5jcHAgKi8sCiAJ
CQkJMEZEODJFODQxNDFGM0ZEQTAwMTc5Qzk0IC8qIFByZWRpY3RlZFR5cGUuY3BwICovLApAQCAt
Mjg4NSw2ICsyODk0LDkgQEAKIAkJCQkwRjYyMDE3ODE0M0ZDRDQ0MDA2OEI3N0MgLyogREZHQWJz
dHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCRDdFNjkxNDQ3OTk5NjAwNDgxMzE1
IC8qIENvZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQz
RjkwNCAvKiBQYXJzZXJUb2tlbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDI2QTQ4MTQ2MENC
QjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQyNkE0
OTE0NjBDQkI3MDAxMzFGOEYgLyogVmlydHVhbFJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjQyNkE0QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHJl
dmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmln
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBDb2RlT3JpZ2lu
X2gKICNkZWZpbmUgQ29kZU9yaWdpbl9oCiAKKyNpbmNsdWRlICJWYWx1ZVJlY292ZXJ5LmgiCiAj
aW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDEyICs3NiwxMiBAQCBzdHJ1Y3QgQ29kZU9y
aWdpbiB7CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKKyAgICBWZWN0b3I8VmFsdWVS
ZWNvdmVyeT4gYXJndW1lbnRzOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gZXhl
Y3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOwogICAgIENvZGVP
cmlnaW4gY2FsbGVyOwogICAgIHVuc2lnbmVkIHN0YWNrT2Zmc2V0OwotICAgIHVuc2lnbmVkIG51
bUFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgOiAzMTsKLSAgICBib29sIGlzQ2FsbCA6IDE7CisgICAg
Ym9vbCBpc0NhbGw7CiB9OwogCiBzdHJ1Y3QgQ29kZU9yaWdpbkF0Q2FsbFJldHVybk9mZnNldCB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERhdGFGb3JtYXRfaAorI2RlZmluZSBEYXRh
Rm9ybWF0X2gKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBKU0Mg
eworCisvLyA9PT0gRGF0YUZvcm1hdCA9PT0KKy8vCisvLyBUaGlzIGVudW0gdHJhY2tzIHRoZSBj
dXJyZW50IHJlcHJlc2VudGF0aW9uIGluIHdoaWNoIGEgdmFsdWUgaXMgYmVpbmcgaGVsZC4KKy8v
IFZhbHVlcyBtYXkgYmUgdW5ib3hlZCBwcmltaXRpdmVzIChpbnQzMiwgZG91YmxlLCBvciBjZWxs
KSwgb3IgYm94ZWQgYXMgYSBKU1ZhbHVlLgorLy8gRm9yIGJveGVkIHZhbHVlcywgd2UgbWF5IGtu
b3cgdGhlIHR5cGUgb2YgYm94aW5nIHRoYXQgaGFzIHRha2VuIHBsYWNlLgorLy8gKE1heSBhbHNv
IG5lZWQgYm9vbCwgYXJyYXksIG9iamVjdCwgc3RyaW5nIHR5cGVzISkKK2VudW0gRGF0YUZvcm1h
dCB7CisgICAgRGF0YUZvcm1hdE5vbmUgPSAwLAorICAgIERhdGFGb3JtYXRJbnRlZ2VyID0gMSwK
KyAgICBEYXRhRm9ybWF0RG91YmxlID0gMiwKKyAgICBEYXRhRm9ybWF0Qm9vbGVhbiA9IDMsCisg
ICAgRGF0YUZvcm1hdENlbGwgPSA0LAorICAgIERhdGFGb3JtYXRTdG9yYWdlID0gNSwKKyAgICBE
YXRhRm9ybWF0SlMgPSA4LAorICAgIERhdGFGb3JtYXRKU0ludGVnZXIgPSBEYXRhRm9ybWF0SlMg
fCBEYXRhRm9ybWF0SW50ZWdlciwKKyAgICBEYXRhRm9ybWF0SlNEb3VibGUgPSBEYXRhRm9ybWF0
SlMgfCBEYXRhRm9ybWF0RG91YmxlLAorICAgIERhdGFGb3JtYXRKU0NlbGwgPSBEYXRhRm9ybWF0
SlMgfCBEYXRhRm9ybWF0Q2VsbCwKKyAgICBEYXRhRm9ybWF0SlNCb29sZWFuID0gRGF0YUZvcm1h
dEpTIHwgRGF0YUZvcm1hdEJvb2xlYW4KK307CisKKyNpZm5kZWYgTkRFQlVHCitpbmxpbmUgY29u
c3QgY2hhciogZGF0YUZvcm1hdFRvU3RyaW5nKERhdGFGb3JtYXQgZGF0YUZvcm1hdCkKK3sKKyAg
ICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKKyAgICBjYXNlIERhdGFGb3JtYXROb25lOgorICAgICAg
ICByZXR1cm4gIk5vbmUiOworICAgIGNhc2UgRGF0YUZvcm1hdEludGVnZXI6CisgICAgICAgIHJl
dHVybiAiSW50ZWdlciI7CisgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgorICAgICAgICByZXR1
cm4gIkRvdWJsZSI7CisgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKKyAgICAgICAgcmV0dXJuICJD
ZWxsIjsKKyAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgorICAgICAgICByZXR1cm4gIkJvb2xl
YW4iOworICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgICAgIHJldHVybiAiU3RvcmFn
ZSI7CisgICAgY2FzZSBEYXRhRm9ybWF0SlM6CisgICAgICAgIHJldHVybiAiSlMiOworICAgIGNh
c2UgRGF0YUZvcm1hdEpTSW50ZWdlcjoKKyAgICAgICAgcmV0dXJuICJKU0ludGVnZXIiOworICAg
IGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgorICAgICAgICByZXR1cm4gIkpTRG91YmxlIjsKKyAg
ICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6CisgICAgICAgIHJldHVybiAiSlNDZWxsIjsKKyAgICBj
YXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CisgICAgICAgIHJldHVybiAiSlNCb29sZWFuIjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgIH0KK30KKyNlbmRpZgor
CisjaWYgVVNFKEpTVkFMVUU2NCkKK2lubGluZSBib29sIG5lZWREYXRhRm9ybWF0Q29udmVyc2lv
bihEYXRhRm9ybWF0IGZyb20sIERhdGFGb3JtYXQgdG8pCit7CisgICAgQVNTRVJUKGZyb20gIT0g
RGF0YUZvcm1hdE5vbmUpOworICAgIEFTU0VSVCh0byAhPSBEYXRhRm9ybWF0Tm9uZSk7CisgICAg
c3dpdGNoIChmcm9tKSB7CisgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKKyAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CisgICAgICAgIHJldHVybiB0byAhPSBmcm9tOworICAgIGNhc2UgRGF0
YUZvcm1hdENlbGw6CisgICAgY2FzZSBEYXRhRm9ybWF0SlM6CisgICAgY2FzZSBEYXRhRm9ybWF0
SlNJbnRlZ2VyOgorICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgorICAgIGNhc2UgRGF0YUZv
cm1hdEpTQ2VsbDoKKyAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CisgICAgICAgIHN3aXRj
aCAodG8pIHsKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0RG91YmxlOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2Ug
RGF0YUZvcm1hdENlbGw6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXRKU0ludGVnZXI6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgor
ICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpT
Qm9vbGVhbjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIC8vIFRoaXMgY2FwdHVyZXMgRGF0YUZvcm1hdEJvb2xlYW4sIHdoaWNoIGlzIGN1
cnJlbnRseSB1bnVzZWQuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgfQorICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgICAgIEFTU0VSVCh0byA9PSBE
YXRhRm9ybWF0U3RvcmFnZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICAvLyBUaGlzIGNhcHR1cmVzIERhdGFGb3JtYXRCb29sZWFuLCB3aGljaCBpcyBjdXJy
ZW50bHkgdW51c2VkLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIHRydWU7Cit9CisKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxpbmUgYm9vbCBu
ZWVkRGF0YUZvcm1hdENvbnZlcnNpb24oRGF0YUZvcm1hdCBmcm9tLCBEYXRhRm9ybWF0IHRvKQor
eworICAgIEFTU0VSVChmcm9tICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBBU1NFUlQodG8gIT0g
RGF0YUZvcm1hdE5vbmUpOworICAgIHN3aXRjaCAoZnJvbSkgeworICAgIGNhc2UgRGF0YUZvcm1h
dEludGVnZXI6CisgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKKyAgICBjYXNlIERhdGFGb3JtYXRC
b29sZWFuOgorICAgICAgICByZXR1cm4gKCh0byAmIERhdGFGb3JtYXRKUykgfHwgdG8gPT0gRGF0
YUZvcm1hdERvdWJsZSk7CisgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgorICAgIGNhc2UgRGF0
YUZvcm1hdEpTRG91YmxlOgorICAgICAgICByZXR1cm4gKHRvICE9IERhdGFGb3JtYXREb3VibGUg
JiYgdG8gIT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKKyAgICBjYXNlIERhdGFGb3JtYXRKUzoKKyAg
ICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6CisgICAgY2FzZSBEYXRhRm9ybWF0SlNDZWxsOgor
ICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKKyAgICAgICAgcmV0dXJuICghKHRvICYgRGF0
YUZvcm1hdEpTKSB8fCB0byA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOworICAgIGNhc2UgRGF0YUZv
cm1hdFN0b3JhZ2U6CisgICAgICAgIEFTU0VSVCh0byA9PSBEYXRhRm9ybWF0U3RvcmFnZSk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworaW5saW5lIGJv
b2wgaXNKU0Zvcm1hdChEYXRhRm9ybWF0IGZvcm1hdCwgRGF0YUZvcm1hdCBleHBlY3RlZEZvcm1h
dCkKK3sKKyAgICBBU1NFUlQoZXhwZWN0ZWRGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOworICAgIHJl
dHVybiAoZm9ybWF0IHwgRGF0YUZvcm1hdEpTKSA9PSBleHBlY3RlZEZvcm1hdDsKK30KKworaW5s
aW5lIGJvb2wgaXNKU0ludGVnZXIoRGF0YUZvcm1hdCBmb3JtYXQpCit7CisgICAgcmV0dXJuIGlz
SlNGb3JtYXQoZm9ybWF0LCBEYXRhRm9ybWF0SlNJbnRlZ2VyKTsKK30KKworaW5saW5lIGJvb2wg
aXNKU0RvdWJsZShEYXRhRm9ybWF0IGZvcm1hdCkKK3sKKyAgICByZXR1cm4gaXNKU0Zvcm1hdChm
b3JtYXQsIERhdGFGb3JtYXRKU0RvdWJsZSk7Cit9CisKK2lubGluZSBib29sIGlzSlNDZWxsKERh
dGFGb3JtYXQgZm9ybWF0KQoreworICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwgRGF0YUZv
cm1hdEpTQ2VsbCk7Cit9CisKK2lubGluZSBib29sIGlzSlNCb29sZWFuKERhdGFGb3JtYXQgZm9y
bWF0KQoreworICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwgRGF0YUZvcm1hdEpTQm9vbGVh
bik7Cit9CisKK30KKworI2VuZGlmIC8vIERhdGFGb3JtYXRfaAorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFZhbHVlUmVjb3ZlcnlfaAorI2RlZmluZSBWYWx1ZVJlY292
ZXJ5X2gKKworI2luY2x1ZGUgIkRhdGFGb3JtYXQuaCIKKyNpbmNsdWRlICJKU1ZhbHVlLmgiCisj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKKyNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIERlc2Ny
aWJlcyBob3cgdG8gcmVjb3ZlciBhIGdpdmVuIGJ5dGVjb2RlIHZpcnR1YWwgcmVnaXN0ZXIgYXQg
YSBnaXZlbgorLy8gY29kZSBwb2ludC4KK2VudW0gVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSB7Cisg
ICAgLy8gSXQncyBhbHJlYWR5IGluIHRoZSByZWdpc3RlciBmaWxlIGF0IHRoZSByaWdodCBsb2Nh
dGlvbi4KKyAgICBBbHJlYWR5SW5SZWdpc3RlckZpbGUsCisgICAgLy8gSXQncyBhbHJlYWR5IGlu
IHRoZSByZWdpc3RlciBmaWxlIGJ1dCB1bmJveGVkLgorICAgIEFscmVhZHlJblJlZ2lzdGVyRmls
ZUFzVW5ib3hlZEludDMyLAorICAgIEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGws
CisgICAgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQm9vbGVhbiwKKyAgICAvLyBJdCdz
IGluIGEgcmVnaXN0ZXIuCisgICAgSW5HUFIsCisgICAgVW5ib3hlZEludDMySW5HUFIsCisgICAg
VW5ib3hlZEJvb2xlYW5JbkdQUiwKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEluUGFpciwK
KyNlbmRpZgorICAgIEluRlBSLAorICAgIC8vIEl0J3MgaW4gdGhlIHJlZ2lzdGVyIGZpbGUsIGJ1
dCBhdCBhIGRpZmZlcmVudCBsb2NhdGlvbi4KKyAgICBEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZSwK
KyAgICAvLyBJdCdzIGluIHRoZSByZWdpc3RlciBmaWxlLCBhdCBhIGRpZmZlcmVudCBsb2NhdGlv
biwgYW5kIGl0J3MgdW5ib3hlZC4KKyAgICBJbnQzMkRpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAor
ICAgIERvdWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAorICAgIC8vIEl0J3MgYSBjb25zdGFu
dC4KKyAgICBDb25zdGFudCwKKyAgICAvLyBEb24ndCBrbm93IGhvdyB0byByZWNvdmVyIGl0Lgor
ICAgIERvbnRLbm93Cit9OworCitjbGFzcyBWYWx1ZVJlY292ZXJ5IHsKK3B1YmxpYzoKKyAgICBW
YWx1ZVJlY292ZXJ5KCkKKyAgICAgICAgOiBtX3RlY2huaXF1ZShEb250S25vdykKKyAgICB7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmls
ZSgpCisgICAgeworICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0
Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxlOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBhbHJlYWR5SW5SZWdp
c3RlckZpbGVBc1VuYm94ZWRJbnQzMigpCisgICAgeworICAgICAgICBWYWx1ZVJlY292ZXJ5IHJl
c3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxl
QXNVbmJveGVkSW50MzI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGwo
KQorICAgIHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5t
X3RlY2huaXF1ZSA9IEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGw7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFs
cmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW4oKQorICAgIHsKKyAgICAgICAgVmFs
dWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEFscmVhZHlJ
blJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW47CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGluR1BSKE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIGdwciwgRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyIHx8IGRh
dGFGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgZGF0YUZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbik7CisjZW5kaWYKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIGlm
IChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKQorICAgICAgICAgICAgcmVzdWx0Lm1f
dGVjaG5pcXVlID0gVW5ib3hlZEludDMySW5HUFI7CisgICAgICAgIGVsc2UgaWYgKGRhdGFGb3Jt
YXQgPT0gRGF0YUZvcm1hdEJvb2xlYW4pCisgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUg
PSBVbmJveGVkQm9vbGVhbkluR1BSOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBJbkdQUjsKKyAgICAgICAgcmVzdWx0Lm1fc291cmNlLmdwciA9IGdwcjsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBpblBhaXIoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lz
dGVySUQgdGFnR1BSLCBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBwYXlsb2FkR1BSKQorICAg
IHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2hu
aXF1ZSA9IEluUGFpcjsKKyAgICAgICAgcmVzdWx0Lm1fc291cmNlLnBhaXIudGFnR1BSID0gdGFn
R1BSOworICAgICAgICByZXN1bHQubV9zb3VyY2UucGFpci5wYXlsb2FkR1BSID0gcGF5bG9hZEdQ
UjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKworICAgIHN0YXRpYyBW
YWx1ZVJlY292ZXJ5IGluRlBSKE1hY3JvQXNzZW1ibGVyOjpGUFJlZ2lzdGVySUQgZnByKQorICAg
IHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2hu
aXF1ZSA9IEluRlBSOworICAgICAgICByZXN1bHQubV9zb3VyY2UuZnByID0gZnByOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBk
aXNwbGFjZWRJblJlZ2lzdGVyRmlsZShWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZywgRGF0YUZv
cm1hdCBkYXRhRm9ybWF0KQorICAgIHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7Cisg
ICAgICAgIHN3aXRjaCAoZGF0YUZvcm1hdCkgeworICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnRl
Z2VyOgorICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gSW50MzJEaXNwbGFjZWRJblJl
Z2lzdGVyRmlsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNh
c2UgRGF0YUZvcm1hdERvdWJsZToKKyAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IERv
dWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRO
b25lICYmIGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UpOworICAgICAgICAgICAgcmVz
dWx0Lm1fdGVjaG5pcXVlID0gRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQubV9zb3VyY2UudmlydHVhbFJlZyA9IHZp
cnR1YWxSZWc7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBWYWx1ZVJlY292ZXJ5IGNvbnN0YW50KEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBW
YWx1ZVJlY292ZXJ5IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQ29uc3Rh
bnQ7CisgICAgICAgIHJlc3VsdC5tX3NvdXJjZS5jb25zdGFudCA9IEpTVmFsdWU6OmVuY29kZSh2
YWx1ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIFZhbHVlUmVj
b3ZlcnlUZWNobmlxdWUgdGVjaG5pcXVlKCkgY29uc3QgeyByZXR1cm4gbV90ZWNobmlxdWU7IH0K
KyAgICAKKyAgICBib29sIGlzSW5SZWdpc3RlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dp
dGNoIChtX3RlY2huaXF1ZSkgeworICAgICAgICBjYXNlIEluR1BSOgorICAgICAgICBjYXNlIFVu
Ym94ZWRJbnQzMkluR1BSOgorICAgICAgICBjYXNlIFVuYm94ZWRCb29sZWFuSW5HUFI6CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgY2FzZSBJblBhaXI6CisjZW5kaWYKKyAgICAgICAg
Y2FzZSBJbkZQUjoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGdwcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEludDMySW5H
UFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEJvb2xlYW5JbkdQUik7CisgICAgICAgIHJldHVy
biBtX3NvdXJjZS5ncHI7CisgICAgfQorICAgIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgdGFnR1BSKCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJblBhaXIpOworICAgICAgICByZXR1cm4gbV9zb3VyY2Uu
cGFpci50YWdHUFI7CisgICAgfQorICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IHBheWxvYWRHUFIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09
IEluUGFpcik7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS5wYWlyLnBheWxvYWRHUFI7CisgICAg
fQorI2VuZGlmCisgICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCBmcHIoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IEluRlBSKTsKKyAgICAg
ICAgcmV0dXJuIG1fc291cmNlLmZwcjsKKyAgICB9CisgICAgCisgICAgVmlydHVhbFJlZ2lzdGVy
IHZpcnR1YWxSZWdpc3RlcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90ZWNobmlx
dWUgPT0gRGlzcGxhY2VkSW5SZWdpc3RlckZpbGUgfHwgbV90ZWNobmlxdWUgPT0gSW50MzJEaXNw
bGFjZWRJblJlZ2lzdGVyRmlsZSB8fCBtX3RlY2huaXF1ZSA9PSBEb3VibGVEaXNwbGFjZWRJblJl
Z2lzdGVyRmlsZSk7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS52aXJ0dWFsUmVnOworICAgIH0K
KyAgICAKKyAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX3RlY2huaXF1ZSA9PSBDb25zdGFudCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNv
ZGUobV9zb3VyY2UuY29uc3RhbnQpOworICAgIH0KKyAgICAKKyNpZm5kZWYgTkRFQlVHCisgICAg
dm9pZCBkdW1wKEZJTEUqIG91dCkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGVjaG5p
cXVlKCkpIHsKKyAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGU6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgIi0iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFs
cmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyOgorICAgICAgICAgICAgZnByaW50Zihv
dXQsICIoaW50MzIpIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbHJlYWR5
SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRDZWxsOgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIo
Y2VsbCkiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFscmVhZHlJblJlZ2lz
dGVyRmlsZUFzVW5ib3hlZEJvb2xlYW46CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgIihib29s
KSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW5HUFI6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgIiUlciVkIiwgZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgVW5ib3hlZEludDMySW5HUFI6CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgImlu
dDMyKCUlciVkKSIsIGdwcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVu
Ym94ZWRCb29sZWFuSW5HUFI6CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgImJvb2woJSVyJWQp
IiwgZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW5GUFI6CisgICAg
ICAgICAgICBmcHJpbnRmKG91dCwgIiUlciVkIiwgZnByKCkpOworICAgICAgICAgICAgYnJlYWs7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgY2FzZSBJblBhaXI6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgInBhaXIoJSVyJWQsICUlciVkKSIsIHRhZ0dQUigpLCBwYXlsb2FkR1BS
KCkpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgY2FzZSBEaXNwbGFjZWRJ
blJlZ2lzdGVyRmlsZToKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiKiVkIiwgdmlydHVhbFJl
Z2lzdGVyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW50MzJEaXNwbGFj
ZWRJblJlZ2lzdGVyRmlsZToKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiKmludDMyKCVkKSIs
IHZpcnR1YWxSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERv
dWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIq
ZG91YmxlKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENvbnN0YW50OgorICAgICAgICAgICAgZnByaW50ZihvdXQsICJbJXNdIiwgY29u
c3RhbnQoKS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IERvbnRLbm93OgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIhIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiPyVkIiwg
dGVjaG5pcXVlKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisjZW5k
aWYKKyAgICAKK3ByaXZhdGU6CisgICAgVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSBtX3RlY2huaXF1
ZTsKKyAgICB1bmlvbiB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGdwcjsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCBmcHI7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpS
ZWdpc3RlcklEIHRhZ0dQUjsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IHBheWxvYWRHUFI7CisgICAgICAgIH0gcGFpcjsKKyNlbmRpZgorICAgICAgICBWaXJ0dWFsUmVn
aXN0ZXIgdmlydHVhbFJlZzsKKyAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7CisgICAg
fSBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gVmFsdWVS
ZWNvdmVyeV9oCisKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1
YWxSZWdpc3Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9WaXJ0dWFsUmVnaXN0ZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFZpcnR1YWxSZWdpc3Rlcl9oCisjZGVmaW5lIFZpcnR1YWxSZWdpc3Rlcl9oCisKKyNpbmNsdWRl
IDx3dGYvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIFR5cGUgZm9yIGEgdmly
dHVhbCByZWdpc3RlciBudW1iZXIgKHNwaWxsIGxvY2F0aW9uKS4KKy8vIFVzaW5nIGFuIGVudW0g
dG8gbWFrZSB0aGlzIHR5cGUtY2hlY2tlZCBhdCBjb21waWxlIHRpbWUsIHRvIGF2ZXJ0IHByb2dy
YW1tZXIgZXJyb3JzLgorZW51bSBWaXJ0dWFsUmVnaXN0ZXIgeyBJbnZhbGlkVmlydHVhbFJlZ2lz
dGVyID0gLTEgfTsKK0NPTVBJTEVfQVNTRVJUKHNpemVvZihWaXJ0dWFsUmVnaXN0ZXIpID09IHNp
emVvZihpbnQpLCBWaXJ0dWFsUmVnaXN0ZXJfaXNfMzJiaXQpOworCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIFZpcnR1YWxSZWdpc3Rlcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDk5MTE2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjU5LDYgKzY1OSw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZShOb2Rl
SW5kZXggbm8KICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIFBoYW50b206
CisgICAgY2FzZSBJbmxpbmVTdGFydDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDMsNyArMTAwMywxMSBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhib29sCiAgICAgLy8gVGhpcyBpcyB3aGVyZSB0
aGUgYWN0dWFsIGlubGluaW5nIHJlYWxseSBoYXBwZW5zLgogICAgIHVuc2lnbmVkIG9sZEluZGV4
ID0gbV9jdXJyZW50SW5kZXg7CiAgICAgbV9jdXJyZW50SW5kZXggPSAwOworCisgICAgYWRkVG9H
cmFwaChJbmxpbmVTdGFydCk7CisgICAgCiAgICAgcGFyc2VDb2RlQmxvY2soKTsKKyAgICAKICAg
ICBtX2N1cnJlbnRJbmRleCA9IG9sZEluZGV4OwogICAgIAogICAgIC8vIElmIHRoZSBpbmxpbmVk
IGNvZGUgY3JlYXRlZCBzb21lIG5ldyBiYXNpYyBibG9ja3MsIHRoZW4gd2UgaGF2ZSBsaW5raW5n
IHRvIGRvLgpAQCAtMjMyNiw3ICsyMzMwLDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNr
RW50cnk6OklubGluZQogICAgICAgICBpbmxpbmVDYWxsRnJhbWUuc3RhY2tPZmZzZXQgPSBpbmxp
bmVDYWxsRnJhbWVTdGFydCArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAg
ICAgICAgaW5saW5lQ2FsbEZyYW1lLmNhbGxlZS5zZXQoKmJ5dGVDb2RlUGFyc2VyLT5tX2dsb2Jh
bERhdGEsIGJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNh
bGxlZSk7CiAgICAgICAgIGlubGluZUNhbGxGcmFtZS5jYWxsZXIgPSBieXRlQ29kZVBhcnNlci0+
Y3VycmVudENvZGVPcmlnaW4oKTsKLSAgICAgICAgaW5saW5lQ2FsbEZyYW1lLm51bUFyZ3VtZW50
c0luY2x1ZGluZ1RoaXMgPSBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVyczsKKyAgICAgICAgaW5s
aW5lQ2FsbEZyYW1lLmFyZ3VtZW50cy5yZXNpemUoY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMp
OyAvLyBTZXQgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgaW5jbHVkaW5nIHRoaXMsIGJ1dCBkb24n
dCBjb25maWd1cmUgdGhlIHZhbHVlIHJlY292ZXJpZXMsIHlldC4KICAgICAgICAgaW5saW5lQ2Fs
bEZyYW1lLmlzQ2FsbCA9IGlzQ2FsbChraW5kKTsKICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1f
Y29kZUJsb2NrLT5pbmxpbmVDYWxsRnJhbWVzKCkuYXBwZW5kKGlubGluZUNhbGxGcmFtZSk7CiAg
ICAgICAgIG1faW5saW5lQ2FsbEZyYW1lID0gJmJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+
aW5saW5lQ2FsbEZyYW1lcygpLmxhc3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHR2VuZXJhdGlvbkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCwxNTYgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRhdGFG
b3JtYXQuaCIKICNpbmNsdWRlIDxkZmcvREZHSklUQ29tcGlsZXIuaD4KIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewogCi0vLyA9PT0gRGF0YUZvcm1hdCA9PT0KLS8vCi0vLyBUaGlz
IGVudW0gdHJhY2tzIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uIGluIHdoaWNoIGEgdmFsdWUg
aXMgYmVpbmcgaGVsZC4KLS8vIFZhbHVlcyBtYXkgYmUgdW5ib3hlZCBwcmltaXRpdmVzIChpbnQz
MiwgZG91YmxlLCBvciBjZWxsKSwgb3IgYm94ZWQgYXMgYSBKU1ZhbHVlLgotLy8gRm9yIGJveGVk
IHZhbHVlcywgd2UgbWF5IGtub3cgdGhlIHR5cGUgb2YgYm94aW5nIHRoYXQgaGFzIHRha2VuIHBs
YWNlLgotLy8gKE1heSBhbHNvIG5lZWQgYm9vbCwgYXJyYXksIG9iamVjdCwgc3RyaW5nIHR5cGVz
ISkKLWVudW0gRGF0YUZvcm1hdCB7Ci0gICAgRGF0YUZvcm1hdE5vbmUgPSAwLAotICAgIERhdGFG
b3JtYXRJbnRlZ2VyID0gMSwKLSAgICBEYXRhRm9ybWF0RG91YmxlID0gMiwKLSAgICBEYXRhRm9y
bWF0Qm9vbGVhbiA9IDMsCi0gICAgRGF0YUZvcm1hdENlbGwgPSA0LAotICAgIERhdGFGb3JtYXRT
dG9yYWdlID0gNSwKLSAgICBEYXRhRm9ybWF0SlMgPSA4LAotICAgIERhdGFGb3JtYXRKU0ludGVn
ZXIgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0SW50ZWdlciwKLSAgICBEYXRhRm9ybWF0SlNE
b3VibGUgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0RG91YmxlLAotICAgIERhdGFGb3JtYXRK
U0NlbGwgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0Q2VsbCwKLSAgICBEYXRhRm9ybWF0SlNC
b29sZWFuID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdEJvb2xlYW4KLX07Ci0KLSNpZm5kZWYg
TkRFQlVHCi1pbmxpbmUgY29uc3QgY2hhciogZGF0YUZvcm1hdFRvU3RyaW5nKERhdGFGb3JtYXQg
ZGF0YUZvcm1hdCkKLXsKLSAgICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKLSAgICBjYXNlIERhdGFG
b3JtYXROb25lOgotICAgICAgICByZXR1cm4gIk5vbmUiOwotICAgIGNhc2UgRGF0YUZvcm1hdElu
dGVnZXI6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlciI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgotICAgICAgICByZXR1cm4gIkRvdWJsZSI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoK
LSAgICAgICAgcmV0dXJuICJDZWxsIjsKLSAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAg
ICAgICByZXR1cm4gIkJvb2xlYW4iOwotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAg
ICAgIHJldHVybiAiU3RvcmFnZSI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlM6Ci0gICAgICAgIHJl
dHVybiAiSlMiOwotICAgIGNhc2UgRGF0YUZvcm1hdEpTSW50ZWdlcjoKLSAgICAgICAgcmV0dXJu
ICJKU0ludGVnZXIiOwotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgotICAgICAgICByZXR1
cm4gIkpTRG91YmxlIjsKLSAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6Ci0gICAgICAgIHJldHVy
biAiSlNDZWxsIjsKLSAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46Ci0gICAgICAgIHJldHVy
biAiSlNCb29sZWFuIjsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gIlVua25vd24iOwot
ICAgIH0KLX0KLSNlbmRpZgotCi0jaWYgVVNFKEpTVkFMVUU2NCkKLWlubGluZSBib29sIG5lZWRE
YXRhRm9ybWF0Q29udmVyc2lvbihEYXRhRm9ybWF0IGZyb20sIERhdGFGb3JtYXQgdG8pCi17Ci0g
ICAgQVNTRVJUKGZyb20gIT0gRGF0YUZvcm1hdE5vbmUpOwotICAgIEFTU0VSVCh0byAhPSBEYXRh
Rm9ybWF0Tm9uZSk7Ci0gICAgc3dpdGNoIChmcm9tKSB7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SW50
ZWdlcjoKLSAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6Ci0gICAgICAgIHJldHVybiB0byAhPSBm
cm9tOwotICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlM6Ci0g
ICAgY2FzZSBEYXRhRm9ybWF0SlNJbnRlZ2VyOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91Ymxl
OgotICAgIGNhc2UgRGF0YUZvcm1hdEpTQ2VsbDoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xl
YW46Ci0gICAgICAgIHN3aXRjaCAodG8pIHsKLSAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdl
cjoKLSAgICAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAgIGNhc2UgRGF0YUZvcm1h
dEpTOgotICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6Ci0gICAgICAgIGNhc2UgRGF0
YUZvcm1hdEpTRG91YmxlOgotICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6Ci0gICAgICAg
IGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2FwdHVyZXMgRGF0YUZvcm1hdEJv
b2xlYW4sIHdoaWNoIGlzIGN1cnJlbnRseSB1bnVzZWQuCi0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAg
ICAgIEFTU0VSVCh0byA9PSBEYXRhRm9ybWF0U3RvcmFnZSk7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICAvLyBUaGlzIGNhcHR1cmVzIERhdGFGb3JtYXRCb29s
ZWFuLCB3aGljaCBpcyBjdXJyZW50bHkgdW51c2VkLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCi1pbmxpbmUgYm9vbCBuZWVkRGF0YUZvcm1hdENvbnZlcnNpb24oRGF0YUZvcm1hdCBmcm9t
LCBEYXRhRm9ybWF0IHRvKQotewotICAgIEFTU0VSVChmcm9tICE9IERhdGFGb3JtYXROb25lKTsK
LSAgICBBU1NFUlQodG8gIT0gRGF0YUZvcm1hdE5vbmUpOwotICAgIHN3aXRjaCAoZnJvbSkgewot
ICAgIGNhc2UgRGF0YUZvcm1hdEludGVnZXI6Ci0gICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKLSAg
ICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAgICAgICByZXR1cm4gKCh0byAmIERhdGFGb3Jt
YXRKUykgfHwgdG8gPT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0gICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgotICAgICAgICByZXR1cm4gKHRvICE9
IERhdGFGb3JtYXREb3VibGUgJiYgdG8gIT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICBjYXNl
IERhdGFGb3JtYXRKUzoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6Ci0gICAgY2FzZSBE
YXRhRm9ybWF0SlNDZWxsOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKLSAgICAgICAg
cmV0dXJuICghKHRvICYgRGF0YUZvcm1hdEpTKSB8fCB0byA9PSBEYXRhRm9ybWF0SlNEb3VibGUp
OwotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAgICAgIEFTU0VSVCh0byA9PSBEYXRh
Rm9ybWF0U3RvcmFnZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0j
ZW5kaWYKLQotaW5saW5lIGJvb2wgaXNKU0Zvcm1hdChEYXRhRm9ybWF0IGZvcm1hdCwgRGF0YUZv
cm1hdCBleHBlY3RlZEZvcm1hdCkKLXsKLSAgICBBU1NFUlQoZXhwZWN0ZWRGb3JtYXQgJiBEYXRh
Rm9ybWF0SlMpOwotICAgIHJldHVybiAoZm9ybWF0IHwgRGF0YUZvcm1hdEpTKSA9PSBleHBlY3Rl
ZEZvcm1hdDsKLX0KLQotaW5saW5lIGJvb2wgaXNKU0ludGVnZXIoRGF0YUZvcm1hdCBmb3JtYXQp
Ci17Ci0gICAgcmV0dXJuIGlzSlNGb3JtYXQoZm9ybWF0LCBEYXRhRm9ybWF0SlNJbnRlZ2VyKTsK
LX0KLQotaW5saW5lIGJvb2wgaXNKU0RvdWJsZShEYXRhRm9ybWF0IGZvcm1hdCkKLXsKLSAgICBy
ZXR1cm4gaXNKU0Zvcm1hdChmb3JtYXQsIERhdGFGb3JtYXRKU0RvdWJsZSk7Ci19Ci0KLWlubGlu
ZSBib29sIGlzSlNDZWxsKERhdGFGb3JtYXQgZm9ybWF0KQotewotICAgIHJldHVybiBpc0pTRm9y
bWF0KGZvcm1hdCwgRGF0YUZvcm1hdEpTQ2VsbCk7Ci19Ci0KLWlubGluZSBib29sIGlzSlNCb29s
ZWFuKERhdGFGb3JtYXQgZm9ybWF0KQotewotICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwg
RGF0YUZvcm1hdEpTQm9vbGVhbik7Ci19Ci0KIC8vID09PSBHZW5lcmF0aW9uSW5mbyA9PT0KIC8v
CiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIGEg
bGl2ZSB2YWx1ZXMgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4KQEAgLTMwNiw3ICsxNjEsNyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgYm9vbCBpc0pTRm9ybWF0KERhdGFGb3JtYXQgZXhwZWN0ZWRGb3Jt
YXQpCiAgICAgewotICAgICAgICByZXR1cm4gREZHOjppc0pTRm9ybWF0KHJlZ2lzdGVyRm9ybWF0
KCksIGV4cGVjdGVkRm9ybWF0KSB8fCBERkc6OmlzSlNGb3JtYXQoc3BpbGxGb3JtYXQoKSwgZXhw
ZWN0ZWRGb3JtYXQpOworICAgICAgICByZXR1cm4gSlNDOjppc0pTRm9ybWF0KHJlZ2lzdGVyRm9y
bWF0KCksIGV4cGVjdGVkRm9ybWF0KSB8fCBKU0M6OmlzSlNGb3JtYXQoc3BpbGxGb3JtYXQoKSwg
ZXhwZWN0ZWRGb3JtYXQpOwogICAgIH0KICAgICAKICAgICBib29sIGlzSlNJbnRlZ2VyKCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlcjMyXzY0
LmNwcAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjgsNyArNTI4LDcgQEAgdm9p
ZCBKSVRDb21waWxlcjo6ZXhpdFNwZWN1bGF0aXZlV2l0aE9TUgogICAgICAgICBzdG9yZVB0cihj
YWxsZXJGcmFtZUdQUiwgcGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkpKTsKICAgICAgICAg
c3RvcmVQdHIoVHJ1c3RlZEltbVB0cihqdW1wVGFyZ2V0KSwgcGF5bG9hZEZvcigoVmlydHVhbFJl
Z2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpSZXR1
cm5QQykpKTsKICAgICAgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHRhZ0Zv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBzdG9yZTMyKEltbTMyKGlubGluZUNh
bGxGcmFtZS0+bnVtQXJndW1lbnRzSW5jbHVkaW5nVGhpcyksIHBheWxvYWRGb3IoKFZpcnR1YWxS
ZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCkpKTsKKyAgICAgICAgc3RvcmUzMihJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFy
Z3VtZW50cy5zaXplKCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxG
cmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKSk7CiAgICAg
ICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0ZvcigoVmlydHVhbFJlZ2lz
dGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZWUp
KSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZWUuZ2V0KCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+
c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkpKTsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gOTkx
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmV4aXRTcGVj
dWxhdGl2ZVdpdGhPU1IKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihpbmxpbmVDYWxs
RnJhbWUtPmNhbGxlZS0+c2NvcGUoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5s
aW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpKTsK
ICAgICAgICAgc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVy
RnJhbWUpKSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIGFk
ZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpKSk7Ci0gICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGlubGluZUNhbGxGcmFtZS0+bnVtQXJndW1lbnRz
SW5jbHVkaW5nVGhpcykpKSwgYWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOworICAg
ICAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbmxp
bmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCkpKTsKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJh
bWUtPmNhbGxlZS5nZXQoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2Fs
bEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSkpOwogICAgIH0KICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiA5OTExNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjAsNiArMjIwLDExIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogYXJpdGhOb2RlRmxh
Z3MKICAgICAvKiBNYXJrZXIgZm9yIGFyZ3VtZW50cyBiZWluZyBzZXQuICovXAogICAgIG1hY3Jv
KFNldEFyZ3VtZW50LCAwKSBcCiAgICAgXAorICAgIC8qIEhpbnQgdGhhdCBpbmxpbmluZyBiZWdp
bnMgaGVyZS4gTm8gY29kZSBpcyBnZW5lcmF0ZWQgZm9yIHRoaXMgbm9kZS4gSXQncyBvbmx5ICov
XAorICAgIC8qIHVzZWQgZm9yIGNvcHlpbmcgT1NSIGRhdGEgaW50byBpbmxpbmUgZnJhbWUgZGF0
YSwgdG8gc3VwcG9ydCByZWlmaWNhdGlvbiBvZiAqL1wKKyAgICAvKiBjYWxsIGZyYW1lcyBvZiBp
bmxpbmVkIGZ1bmN0aW9ucy4gKi9cCisgICAgbWFjcm8oSW5saW5lU3RhcnQsIDApIFwKKyAgICBc
CiAgICAgLyogTm9kZXMgZm9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4gKi9cCiAgICAgbWFjcm8oQml0
QW5kLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhCaXRPciwgTm9kZVJlc3VsdEludDMy
KSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJ
KHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDggKzYwNyw5IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgUHV0QnlPZmZzZXQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAot
ICAgICAgICAvLyBUaGlzIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgZG8gYW55dGhp
bmcuCisgICAgICAgIC8vIFRoZXNlIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgZG8g
YW55dGhpbmcuCiAgICAgICAgIGNhc2UgUGhhbnRvbToKKyAgICAgICAgY2FzZSBJbmxpbmVTdGFy
dDoKICAgICAgICAgICAgIGJyZWFrOwogI2Vsc2UKICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
cmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDkxLDYgKzI0OTEsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAvLyBUaGlzIGlzIGEg
bm8tb3AuCiAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7
CisgICAgICAgIAorICAgIGNhc2UgSW5saW5lU3RhcnQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAobm9kZS5oYXNSZXN1bHQo
KSAmJiBub2RlLm11c3RHZW5lcmF0ZSgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYwLDU5ICs2MCw2IEBAIHZvaWQgVmFsdWVTb3VyY2U6OmR1bXAoRklMRSogb3V0KSBjb25z
dAogICAgICAgICBicmVhazsKICAgICB9CiB9Ci0KLXZvaWQgVmFsdWVSZWNvdmVyeTo6ZHVtcChG
SUxFKiBvdXQpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh0ZWNobmlxdWUoKSkgewotICAgIGNhc2Ug
QWxyZWFkeUluUmVnaXN0ZXJGaWxlOgotICAgICAgICBmcHJpbnRmKG91dCwgIi0iKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjoK
LSAgICAgICAgZnByaW50ZihvdXQsICIoaW50MzIpIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbDoKLSAgICAgICAgZnByaW50Zihv
dXQsICIoY2VsbCkiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbHJlYWR5SW5SZWdpc3Rl
ckZpbGVBc1VuYm94ZWRCb29sZWFuOgotICAgICAgICBmcHJpbnRmKG91dCwgIihib29sKSIpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluR1BSOgotICAgICAgICBmcHJpbnRmKG91dCwgIiUl
JXMiLCBHUFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBVbmJveGVkSW50MzJJbkdQUjoKLSAgICAgICAgZnByaW50ZihvdXQsICJpbnQzMiglJSVzKSIs
IEdQUkluZm86OmRlYnVnTmFtZShncHIoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFVu
Ym94ZWRCb29sZWFuSW5HUFI6Ci0gICAgICAgIGZwcmludGYob3V0LCAiYm9vbCglJSVzKSIsIEdQ
UkluZm86OmRlYnVnTmFtZShncHIoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluRlBS
OgotICAgICAgICBmcHJpbnRmKG91dCwgIiUlJXMiLCBGUFJJbmZvOjpkZWJ1Z05hbWUoZnByKCkp
KTsKLSAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBjYXNlIEluUGFp
cjoKLSAgICAgICAgZnByaW50ZihvdXQsICJwYWlyKCUlJXMsICUlJXMpIiwgR1BSSW5mbzo6ZGVi
dWdOYW1lKHRhZ0dQUigpKSwgR1BSSW5mbzo6ZGVidWdOYW1lKHBheWxvYWRHUFIoKSkpOwotICAg
ICAgICBicmVhazsKLSNlbmRpZgotICAgIGNhc2UgRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU6Ci0g
ICAgICAgIGZwcmludGYob3V0LCAiKiVkIiwgdmlydHVhbFJlZ2lzdGVyKCkpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEludDMyRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU6Ci0gICAgICAgIGZw
cmludGYob3V0LCAiKmludDMyKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBEb3VibGVEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZToKLSAgICAgICAgZnBy
aW50ZihvdXQsICIqZG91YmxlKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDb25zdGFudDoKLSAgICAgICAgZnByaW50ZihvdXQsICJbJXNdIiwgY29u
c3RhbnQoKS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBEb250S25v
dzoKLSAgICAgICAgZnByaW50ZihvdXQsICIhIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGZwcmludGYob3V0LCAiPyVkIiwgdGVjaG5pcXVlKCkpOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci19CiAjZW5kaWYKIAogT1NSRXhpdDo6T1NSRXhpdChKU1ZhbHVlU291cmNl
IGpzVmFsdWVTb3VyY2UsIFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlLCBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBjaGVjaywgU3BlY3VsYXRpdmVKSVQqIGppdCwgdW5zaWduZWQgcmVjb3ZlcnlJbmRl
eCkKQEAgLTMxNiw4ICsyNjMsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShCYXNp
Y0Jsb2NrJgogI2lmIERGR19FTkFCTEUoREVCVUdfVkVSQk9TRSkKICAgICAgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiU3BlY3VsYXRpdmVKSVQgc2tpcHBpbmcgTm9kZSBAJWQgKGJjIyV1KSBhdCBK
SVQgb2Zmc2V0IDB4JXggICAgICIsIChpbnQpbV9jb21waWxlSW5kZXgsIG5vZGUuY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4LCBtX2ppdC5kZWJ1Z09mZnNldCgpKTsKICNlbmRpZgotICAgICAgICAg
ICAgaWYgKG5vZGUub3AgPT0gU2V0TG9jYWwpCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUub3Ap
IHsKKyAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6CiAgICAgICAgICAgICAgICAgY29tcGlsZU1v
dkhpbnQobm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2Ug
SW5saW5lU3RhcnQ6IHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNh
bGxGcmFtZSA9IG5vZGUuY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYXJndW1lbnRzU3RhcnQgPSBpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
IC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHMuc2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlY292ZXJ5ID0gY29tcHV0ZVZhbHVlUmVjb3ZlcnlGb3Io
bV92YXJpYWJsZXNbYXJndW1lbnRzU3RhcnQgKyBpXSk7CisgICAgICAgICAgICAgICAgICAgIC8v
IFRoZSByZWNvdmVyeSBjYW5ub3QgcG9pbnQgdG8gcmVnaXN0ZXJzLCBzaW5jZSB0aGUgY2FsbCBm
cmFtZSByZWlmaWNhdGlvbiBpc24ndAorICAgICAgICAgICAgICAgICAgICAvLyBhcyBzbWFydCBh
cyBPU1IsIHNvIGl0IGNhbid0IGhhbmRsZSB0aGF0LiBUaGUgZXhjZXB0aW9uIGlzIHRoZSB0aGlz
IGFyZ3VtZW50LAorICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCB3ZSBkb24ndCByZWFsbHkg
bmVlZCB0byBiZSBhYmxlIHRvIHJlY292ZXIuCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
aSB8fCAhcmVjb3ZlcnkuaXNJblJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5s
aW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaV0gPSByZWNvdmVyeTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgCiAjaWYgREZHX0VOQUJMRShERUJV
R19WRVJCT1NFKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiVmFsdWVSZWNvdmVyeS5oIgogI2luY2x1
ZGUgPGRmZy9ERkdBYnN0cmFjdFN0YXRlLmg+CiAjaW5jbHVkZSA8ZGZnL0RGR0pJVENvZGVHZW5l
cmF0b3IuaD4KIApAQCAtMTQ1LDE5NCArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBOb2RlSW5kZXgg
bV9ub2RlSW5kZXg7CiB9OwogICAgIAotLy8gRGVzY3JpYmVzIGhvdyB0byByZWNvdmVyIGEgZ2l2
ZW4gYnl0ZWNvZGUgdmlydHVhbCByZWdpc3RlciBhdCBhIGdpdmVuCi0vLyBjb2RlIHBvaW50Lgot
ZW51bSBWYWx1ZVJlY292ZXJ5VGVjaG5pcXVlIHsKLSAgICAvLyBJdCdzIGFscmVhZHkgaW4gdGhl
IHJlZ2lzdGVyIGZpbGUgYXQgdGhlIHJpZ2h0IGxvY2F0aW9uLgotICAgIEFscmVhZHlJblJlZ2lz
dGVyRmlsZSwKLSAgICAvLyBJdCdzIGFscmVhZHkgaW4gdGhlIHJlZ2lzdGVyIGZpbGUgYnV0IHVu
Ym94ZWQuCi0gICAgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkSW50MzIsCi0gICAgQWxy
ZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbCwKLSAgICBBbHJlYWR5SW5SZWdpc3RlckZp
bGVBc1VuYm94ZWRCb29sZWFuLAotICAgIC8vIEl0J3MgaW4gYSByZWdpc3Rlci4KLSAgICBJbkdQ
UiwKLSAgICBVbmJveGVkSW50MzJJbkdQUiwKLSAgICBVbmJveGVkQm9vbGVhbkluR1BSLAotI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgSW5QYWlyLAotI2VuZGlmCi0gICAgSW5GUFIsCi0gICAg
Ly8gSXQncyBpbiB0aGUgcmVnaXN0ZXIgZmlsZSwgYnV0IGF0IGEgZGlmZmVyZW50IGxvY2F0aW9u
LgotICAgIERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAotICAgIC8vIEl0J3MgaW4gdGhlIHJlZ2lz
dGVyIGZpbGUsIGF0IGEgZGlmZmVyZW50IGxvY2F0aW9uLCBhbmQgaXQncyB1bmJveGVkLgotICAg
IEludDMyRGlzcGxhY2VkSW5SZWdpc3RlckZpbGUsCi0gICAgRG91YmxlRGlzcGxhY2VkSW5SZWdp
c3RlckZpbGUsCi0gICAgLy8gSXQncyBhIGNvbnN0YW50LgotICAgIENvbnN0YW50LAotICAgIC8v
IERvbid0IGtub3cgaG93IHRvIHJlY292ZXIgaXQuCi0gICAgRG9udEtub3cKLX07Ci0KLWNsYXNz
IFZhbHVlUmVjb3ZlcnkgewotcHVibGljOgotICAgIFZhbHVlUmVjb3ZlcnkoKQotICAgICAgICA6
IG1fdGVjaG5pcXVlKERvbnRLbm93KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZh
bHVlUmVjb3ZlcnkgYWxyZWFkeUluUmVnaXN0ZXJGaWxlKCkKLSAgICB7Ci0gICAgICAgIFZhbHVl
UmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBBbHJlYWR5SW5S
ZWdpc3RlckZpbGU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHN0
YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyKCkK
LSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQubV90
ZWNobmlxdWUgPSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgYWxy
ZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbCgpCi0gICAgewotICAgICAgICBWYWx1ZVJl
Y292ZXJ5IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVn
aXN0ZXJGaWxlQXNVbmJveGVkQ2VsbDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0g
ICAgCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgYWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJv
eGVkQm9vbGVhbigpCi0gICAgewotICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQm9v
bGVhbjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZh
bHVlUmVjb3ZlcnkgaW5HUFIoR1BSUmVnIGdwciwgRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQotICAg
IHsKLSAgICAgICAgQVNTRVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUpOwotI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJ
bnRlZ2VyIHx8IGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgZGF0YUZvcm1hdCA9PSBE
YXRhRm9ybWF0Qm9vbGVhbik7Ci0jZW5kaWYKLSAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7
Ci0gICAgICAgIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKQotICAgICAgICAg
ICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gVW5ib3hlZEludDMySW5HUFI7Ci0gICAgICAgIGVsc2Ug
aWYgKGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdEJvb2xlYW4pCi0gICAgICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBVbmJveGVkQm9vbGVhbkluR1BSOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBJbkdQUjsKLSAgICAgICAgcmVzdWx0Lm1fc291cmNl
LmdwciA9IGdwcjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0jaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBpblBhaXIoR1BSUmVnIHRh
Z0dQUiwgR1BSUmVnIHBheWxvYWRHUFIpCi0gICAgewotICAgICAgICBWYWx1ZVJlY292ZXJ5IHJl
c3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gSW5QYWlyOwotICAgICAgICByZXN1
bHQubV9zb3VyY2UucGFpci50YWdHUFIgPSB0YWdHUFI7Ci0gICAgICAgIHJlc3VsdC5tX3NvdXJj
ZS5wYWlyLnBheWxvYWRHUFIgPSBwYXlsb2FkR1BSOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLSNlbmRpZgotCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgaW5GUFIoRlBSUmVnIGZw
cikKLSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBJbkZQUjsKLSAgICAgICAgcmVzdWx0Lm1fc291cmNlLmZwciA9IGZwcjsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZhbHVlUmVj
b3ZlcnkgZGlzcGxhY2VkSW5SZWdpc3RlckZpbGUoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWcs
IERhdGFGb3JtYXQgZGF0YUZvcm1hdCkKLSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVz
dWx0OwotICAgICAgICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKLSAgICAgICAgY2FzZSBEYXRhRm9y
bWF0SW50ZWdlcjoKLSAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEludDMyRGlzcGxh
Y2VkSW5SZWdpc3RlckZpbGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6Ci0gICAgICAgICAgICByZXN1bHQubV90ZWNobmlx
dWUgPSBEb3VibGVEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZTsKLSAgICAgICAgICAgIGJyZWFrOwot
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoZGF0YUZvcm1hdCAhPSBEYXRh
Rm9ybWF0Tm9uZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlKTsKLSAgICAgICAg
ICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0Lm1fc291cmNlLnZpcnR1YWxS
ZWcgPSB2aXJ0dWFsUmVnOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAg
ICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBjb25zdGFudChKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9
IENvbnN0YW50OwotICAgICAgICByZXN1bHQubV9zb3VyY2UuY29uc3RhbnQgPSBKU1ZhbHVlOjpl
bmNvZGUodmFsdWUpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBW
YWx1ZVJlY292ZXJ5VGVjaG5pcXVlIHRlY2huaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVjaG5p
cXVlOyB9Ci0gICAgCi0gICAgR1BSUmVnIGdwcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEludDMySW5H
UFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEJvb2xlYW5JbkdQUik7Ci0gICAgICAgIHJldHVy
biBtX3NvdXJjZS5ncHI7Ci0gICAgfQotICAgIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAg
R1BSUmVnIHRhZ0dQUigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUg
PT0gSW5QYWlyKTsKLSAgICAgICAgcmV0dXJuIG1fc291cmNlLnBhaXIudGFnR1BSOwotICAgIH0K
LSAgICAKLSAgICBHUFJSZWcgcGF5bG9hZEdQUigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5QYWlyKTsKLSAgICAgICAgcmV0dXJuIG1fc291cmNlLnBhaXIu
cGF5bG9hZEdQUjsKLSAgICB9Ci0jZW5kaWYKLSAgICAKLSAgICBGUFJSZWcgZnByKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJbkZQUik7Ci0gICAgICAgIHJl
dHVybiBtX3NvdXJjZS5mcHI7Ci0gICAgfQotICAgIAotICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0
dWFsUmVnaXN0ZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09
IERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlIHx8IG1fdGVjaG5pcXVlID09IEludDMyRGlzcGxhY2Vk
SW5SZWdpc3RlckZpbGUgfHwgbV90ZWNobmlxdWUgPT0gRG91YmxlRGlzcGxhY2VkSW5SZWdpc3Rl
ckZpbGUpOwotICAgICAgICByZXR1cm4gbV9zb3VyY2UudmlydHVhbFJlZzsKLSAgICB9Ci0gICAg
Ci0gICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90
ZWNobmlxdWUgPT0gQ29uc3RhbnQpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1f
c291cmNlLmNvbnN0YW50KTsKLSAgICB9Ci0gICAgCi0jaWZuZGVmIE5ERUJVRwotICAgIHZvaWQg
ZHVtcChGSUxFKiBvdXQpIGNvbnN0OwotI2VuZGlmCi0gICAgCi1wcml2YXRlOgotICAgIFZhbHVl
UmVjb3ZlcnlUZWNobmlxdWUgbV90ZWNobmlxdWU7Ci0gICAgdW5pb24gewotICAgICAgICBHUFJS
ZWcgZ3ByOwotICAgICAgICBGUFJSZWcgZnByOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAg
ICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBHUFJSZWcgdGFnR1BSOwotICAgICAgICAgICAgR1BS
UmVnIHBheWxvYWRHUFI7Ci0gICAgICAgIH0gcGFpcjsKLSNlbmRpZgotICAgICAgICBWaXJ0dWFs
UmVnaXN0ZXIgdmlydHVhbFJlZzsKLSAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7Ci0g
ICAgfSBtX3NvdXJjZTsKLX07Ci0KIC8vID09PSBPU1JFeGl0ID09PQogLy8KIC8vIFRoaXMgc3Ry
dWN0dXJlIGRlc2NyaWJlcyBob3cgdG8gZXhpdCB0aGUgc3BlY3VsYXRpdmUgcGF0aCBieQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0
YS5oCShyZXZpc2lvbiA5OTExNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFy
aWFibGVBY2Nlc3NEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwxMyBAQAogI2lm
bmRlZiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFfaAogI2RlZmluZSBERkdWYXJpYWJsZUFjY2Vzc0Rh
dGFfaAogCisjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgorI2luY2x1ZGUgIlZpcnR1YWxSZWdp
c3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgRU5BQkxFKERGR19KSVQp
Ci0KICNpbmNsdWRlIDx3dGYvVW5pb25GaW5kLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIAotLy8gVHlwZSBmb3IgYSB2aXJ0dWFsIHJlZ2lzdGVyIG51bWJlciAoc3BpbGwg
bG9jYXRpb24pLgotLy8gVXNpbmcgYW4gZW51bSB0byBtYWtlIHRoaXMgdHlwZS1jaGVja2VkIGF0
IGNvbXBpbGUgdGltZSwgdG8gYXZlcnQgcHJvZ3JhbW1lciBlcnJvcnMuCi1lbnVtIFZpcnR1YWxS
ZWdpc3RlciB7IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIgPSAtMSB9OwotQ09NUElMRV9BU1NFUlQo
c2l6ZW9mKFZpcnR1YWxSZWdpc3RlcikgPT0gc2l6ZW9mKGludCksIFZpcnR1YWxSZWdpc3Rlcl9p
c18zMmJpdCk7Ci0KIGNsYXNzIFZhcmlhYmxlQWNjZXNzRGF0YTogcHVibGljIFVuaW9uRmluZDxW
YXJpYWJsZUFjY2Vzc0RhdGE+IHsKIHB1YmxpYzoKICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEoKQpA
QCAtODYsNiArODAsNCBAQCBwcml2YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
LSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQogI2VuZGlmIC8vIERGR1ZhcmlhYmxlQWNjZXNz
RGF0YV9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmNwcAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBA
IENhbGxGcmFtZSogQ2FsbEZyYW1lOjp0cnVlQ2FsbGVyRnJhbWUoKQogICAgICAgICAgICAgaW5s
aW5lZENhbGxlci0+c2V0Q2FsbGVyRnJhbWUobWFjaGluZUNhbGxlcik7CiAgICAgICAgIAogICAg
ICAgICBpbmxpbmVkQ2FsbGVyLT5zZXRJbmxpbmVDYWxsRnJhbWUoaW5saW5lQ2FsbEZyYW1lKTsK
LSAgICAgICAgaW5saW5lZENhbGxlci0+c2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW5s
aW5lQ2FsbEZyYW1lLT5udW1Bcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAgICAgaW5saW5l
ZENhbGxlci0+c2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHMuc2l6ZSgpKTsKICAgICAgICAgaW5saW5lZENhbGxlci0+c2V0Q2FsbGVlKGNhbGxl
ZUFzRnVuY3Rpb24pOwogICAgICAgICAKICAgICAgICAgaW5saW5lQ2FsbEZyYW1lID0gbmV4dElu
bGluZUNhbGxGcmFtZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDcg
QEAgbmFtZXNwYWNlIEpTQyAgewogICAgICAgICBSZXR1cm5BZGRyZXNzUHRyIHJldHVyblBDKCkg
Y29uc3QgeyByZXR1cm4gUmV0dXJuQWRkcmVzc1B0cih0aGlzW1JlZ2lzdGVyRmlsZTo6UmV0dXJu
UENdLnZQQygpKTsgfQogI2VuZGlmCiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgICAgIElubGlu
ZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lKCkgY29uc3QgeyByZXR1cm4gdGhpc1tSZWdpc3Rl
ckZpbGU6OlJldHVyblBDXS5pbmxpbmVDYWxsRnJhbWUoKTsgfQorICAgICAgICBJbmxpbmVDYWxs
RnJhbWUqIGlubGluZUNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRoaXNbUmVnaXN0ZXJGaWxl
OjpSZXR1cm5QQ10uYXNJbmxpbmVDYWxsRnJhbWUoKTsgfQogI2VuZGlmCiAjaWYgRU5BQkxFKElO
VEVSUFJFVEVSKQogICAgICAgICBJbnN0cnVjdGlvbiogcmV0dXJuVlBDKCkgY29uc3QgeyByZXR1
cm4gdGhpc1tSZWdpc3RlckZpbGU6OlJldHVyblBDXS52UEMoKTsgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgJKHJldmlzaW9uIDk5MTE2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTcxLDcgKzcxLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5hbWVJdGVyYXRvcigpIGNvbnN0OwogICAgICAgICBT
Y29wZUNoYWluTm9kZSogc2NvcGVDaGFpbigpIGNvbnN0OwogICAgICAgICBJbnN0cnVjdGlvbiog
dlBDKCkgY29uc3Q7Ci0gICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lKCkg
Y29uc3Q7CisgICAgICAgIElubGluZUNhbGxGcmFtZSogYXNJbmxpbmVDYWxsRnJhbWUoKSBjb25z
dDsKKyAgICAgICAgaW50MzJfdCB1bmJveGVkSW50MzIoKSBjb25zdDsKKyAgICAgICAgYm9vbCB1
bmJveGVkQm9vbGVhbigpIGNvbnN0OworICAgICAgICBKU0NlbGwqIHVuYm94ZWRDZWxsKCkgY29u
c3Q7CiAKICAgICAgICAgc3RhdGljIFJlZ2lzdGVyIHdpdGhJbnQoaW50MzJfdCBpKQogICAgICAg
ICB7CkBAIC04OCw2ICs5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQ29kZUJs
b2NrKiBjb2RlQmxvY2s7CiAgICAgICAgICAgICBJbnN0cnVjdGlvbiogdlBDOwogICAgICAgICAg
ICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWU7CisgICAgICAgICAgICBFbmNvZGVk
VmFsdWVEZXNjcmlwdG9yIGVuY29kZWRWYWx1ZTsKICAgICAgICAgfSB1OwogICAgIH07CiAKQEAg
LTE2NSwxMCArMTY5LDI5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gdS52UEM7
CiAgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBJbmxpbmVDYWxsRnJhbWUqIFJlZ2lzdGVyOjpp
bmxpbmVDYWxsRnJhbWUoKSBjb25zdAorICAgIEFMV0FZU19JTkxJTkUgSW5saW5lQ2FsbEZyYW1l
KiBSZWdpc3Rlcjo6YXNJbmxpbmVDYWxsRnJhbWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0
dXJuIHUuaW5saW5lQ2FsbEZyYW1lOwogICAgIH0KKyAgICAgICAgCisgICAgQUxXQVlTX0lOTElO
RSBpbnQzMl90IFJlZ2lzdGVyOjp1bmJveGVkSW50MzIoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIHUuZW5jb2RlZFZhbHVlLmFzQml0cy5wYXlsb2FkOworICAgIH0KKworICAgIEFMV0FZ
U19JTkxJTkUgYm9vbCBSZWdpc3Rlcjo6dW5ib3hlZEJvb2xlYW4oKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuICEhdS5lbmNvZGVkVmFsdWUuYXNCaXRzLnBheWxvYWQ7CisgICAgfQorCisg
ICAgQUxXQVlTX0lOTElORSBKU0NlbGwqIFJlZ2lzdGVyOjp1bmJveGVkQ2VsbCgpIGNvbnN0Cisg
ICAgeworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiB1LmVuY29kZWRWYWx1ZS5w
dHI7CisjZWxzZQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KHUuZW5jb2Rl
ZFZhbHVlLmFzQml0cy5wYXlsb2FkKTsKKyNlbmRpZgorICAgIH0KIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCShy
ZXZpc2lvbiA5OTExNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksOCArMjU5LDQzIEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgc2l6ZV90IHJlZ2lzdGVyQXJyYXlTaXplID0gZC0+bnVtUGFyYW1ldGVyczsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFVua25v
d24+ID4gcmVnaXN0ZXJBcnJheSA9IGFkb3B0QXJyYXlQdHIobmV3IFdyaXRlQmFycmllcjxVbmtu
b3duPltyZWdpc3RlckFycmF5U2l6ZV0pOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCByZWdpc3RlckFycmF5U2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyQXJy
YXlbaV0uc2V0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBjYWxsRnJhbWUtPnJlZ2lz
dGVycygpW2kgLSByZWdpc3Rlck9mZnNldF0uanNWYWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChj
YWxsRnJhbWUtPmlzSW5saW5lQ2FsbEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBJbmxpbmVD
YWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNhbGxGcmFtZS0+aW5saW5lQ2FsbEZyYW1lKCk7
CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3RlckFycmF5U2l6
ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlUmVjb3ZlcnkmIHJlY292ZXJ5ID0g
aW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaSArIDFdOworICAgICAgICAgICAgICAgICAgICAv
LyBJbiB0aGUgZnV0dXJlIHdlJ2xsIHN1cHBvcnQgZGlzcGxhY2VkIHJlY292ZXJpZXMgKGluZGlj
YXRpbmcgdGhhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gYXJndW1lbnQgd2FzIGZsdXNo
ZWQgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24pLCBidXQgZm9yIG5vdyB3ZSBkb24ndCBkbworICAg
ICAgICAgICAgICAgICAgICAvLyB0aGF0IHNvIHRoaXMgY29kZSB3aWxsIGZhaWwgaWYgdGhhdCB3
ZXJlIHRvIGhhcHBlbi4gT24gdGhlIG90aGVyIGhhbmQsCisgICAgICAgICAgICAgICAgICAgIC8v
IGl0J3MgbXVjaCBsZXNzIGxpa2VseSB0aGF0IHdlJ2xsIHN1cHBvcnQgaW4tcmVnaXN0ZXIgcmVj
b3ZlcmllcyBzaW5jZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgZG9lcyBub3Qg
KGVhc2lseSkgaGF2ZSBhY2Nlc3MgdG8gcmVnaXN0ZXJzLgorICAgICAgICAgICAgICAgICAgICBK
U1ZhbHVlIHZhbHVlOworICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciogbG9jYXRpb24gPSBj
YWxsRnJhbWUtPnJlZ2lzdGVycygpICsgaSAtIHJlZ2lzdGVyT2Zmc2V0OworICAgICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHJlY292ZXJ5LnRlY2huaXF1ZSgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlOgorICAgICAgICAgICAgICAgICAgICAgICAg
dmFsdWUgPSBsb2NhdGlvbi0+anNWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJv
eGVkSW50MzI6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVtYmVyKGxvY2F0
aW9uLT51bmJveGVkSW50MzIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRDZWxs
OgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBsb2NhdGlvbi0+dW5ib3hlZENlbGwo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBj
YXNlIEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW46CisgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IGpzQm9vbGVhbihsb2NhdGlvbi0+dW5ib3hlZEJvb2xlYW4oKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBDb25zdGFudDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVjb3ZlcnkuY29u
c3RhbnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICByZWdpc3RlckFycmF5W2ldLnNldChjYWxsRnJhbWUtPmds
b2JhbERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3Rl
ckFycmF5U2l6ZTsgKytpKQorICAgICAgICAgICAgICAgICAgICByZWdpc3RlckFycmF5W2ldLnNl
dChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgdGhpcywgY2FsbEZyYW1lLT5yZWdpc3RlcnMoKVtp
IC0gcmVnaXN0ZXJPZmZzZXRdLmpzVmFsdWUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBkLT5yZWdpc3RlcnMgPSByZWdpc3RlckFycmF5LmdldCgpICsgZC0+bnVtUGFyYW1ldGVycyAr
IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAgICAgICAgICAgIGQtPnJlZ2lz
dGVyQXJyYXkgPSByZWdpc3RlckFycmF5LnJlbGVhc2UoKTsKICAgICAgICAgfQpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gOTkxMzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOSBAQAorMjAxMS0xMS0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgorCisgICAgICAgIERGRyBpbmxpbmluZyBicmVha3MgZnVuY3Rpb24uYXJndW1lbnRzW3Nv
bWV0aGluZ10gaWYgdGhlIGFyZ3VtZW50IGJlaW5nCisgICAgICAgIHJldHJpZXZlZCB3YXMgc3Vi
amVjdGVkIHRvIERGRydzIHVuYm94aW5nIG9wdGltaXphdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDM2ICAgICAgICAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvanMvZGZnLWlubGlu
ZS1hcmd1bWVudHMtaW50MzItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pz
L2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
anMvc2NyaXB0LXRlc3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6KToKKyAgICAgICAgKGFy
Z3NUb1N0cik6CisKIDIwMTEtMTEtMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBBZGQgbmV3IFN0b3JhZ2VJbmZvIHRlc3QgdG8gdGhlIHJlc3BlY3RpdmUg
c2tpcCBsaXN0cy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWlubGluZS1hcmd1bWVu
dHMtaW50MzItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMv
ZGZnLWlubGluZS1hcmd1bWVudHMtaW50MzItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA5IEBACitUaGlzIHRlc3RzIHRoYXQgaW5saW5p
bmcgcHJlc2VydmVzIGZ1bmN0aW9uLmFyZ3VtZW50cyBmdW5jdGlvbmFsaXR5IGlmIHRoZSBhcmd1
bWVudHMgd2VyZSByZXByZXNlbnRlZCBhcyB1bmJveGVkIGludDMyLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxLCAyLCAzIgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAy
LCAzLCA0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAzLCA0LCA1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0LCA1LCA2Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA1LCA2LCA3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2LCA3LCA4IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA3LCA4LCA5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4LCA5LCAxMCIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOSwg
MTAsIDExIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxMCwgMTEsIDEyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMSwgMTIs
IDEzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMiwgMTMsIDE0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMywgMTQsIDE1
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxNCwgMTUsIDE2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNSwgMTYsIDE3Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNiwgMTcsIDE4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNywgMTgsIDE5IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxOCwgMTksIDIwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOSwgMjAsIDIxIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAyMCwgMjEsIDIyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMSwgMjIsIDIzIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAyMiwgMjMsIDI0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMywgMjQsIDI1IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAyNCwgMjUsIDI2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyNSwgMjYsIDI3IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAy
NiwgMjcsIDI4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyNywgMjgsIDI5IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyOCwg
MjksIDMwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAyOSwgMzAsIDMxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzMCwgMzEs
IDMyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAzMSwgMzIsIDMzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzMiwgMzMsIDM0
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAzMywgMzQsIDM1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzNCwgMzUsIDM2Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAzNSwgMzYsIDM3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzNiwgMzcsIDM4IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAzNywgMzgsIDM5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzOCwgMzksIDQwIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAzOSwgNDAsIDQxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0MCwgNDEsIDQyIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA0MSwgNDIsIDQzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0MiwgNDMsIDQ0IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA0MywgNDQsIDQ1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0NCwgNDUsIDQ2IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0
NSwgNDYsIDQ3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0NiwgNDcsIDQ4IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0Nywg
NDgsIDQ5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA0OCwgNDksIDUwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0OSwgNTAs
IDUxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA1MCwgNTEsIDUyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1MSwgNTIsIDUz
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA1MiwgNTMsIDU0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1MywgNTQsIDU1Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA1NCwgNTUsIDU2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1NSwgNTYsIDU3IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA1NiwgNTcsIDU4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1NywgNTgsIDU5IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA1OCwgNTksIDYwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1OSwgNjAsIDYxIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA2MCwgNjEsIDYyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2MSwgNjIsIDYzIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA2MiwgNjMsIDY0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2MywgNjQsIDY1IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2
NCwgNjUsIDY2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2NSwgNjYsIDY3IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2Niwg
NjcsIDY4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA2NywgNjgsIDY5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2OCwgNjks
IDcwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA2OSwgNzAsIDcxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3MCwgNzEsIDcy
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA3MSwgNzIsIDczIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3MiwgNzMsIDc0Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA3MywgNzQsIDc1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3NCwgNzUsIDc2IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA3NSwgNzYsIDc3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3NiwgNzcsIDc4IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA3NywgNzgsIDc5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3OCwgNzksIDgwIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA3OSwgODAsIDgxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4MCwgODEsIDgyIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA4MSwgODIsIDgzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4MiwgODMsIDg0IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4
MywgODQsIDg1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4NCwgODUsIDg2IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4NSwg
ODYsIDg3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA4NiwgODcsIDg4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4NywgODgs
IDg5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA4OCwgODksIDkwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4OSwgOTAsIDkx
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA5MCwgOTEsIDkyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5MSwgOTIsIDkzIgor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA5MiwgOTMsIDk0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5MywgOTQsIDk1IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA5NCwgOTUsIDk2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5NSwgOTYsIDk3IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA5NiwgOTcsIDk4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5NywgOTgsIDk5IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA5OCwgOTksIDEwMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTksIDEwMCwgMTAxIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxMDAsIDEwMSwgMTAyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDEsIDEwMiwgMTAzIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxMDIsIDEwMywgMTA0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDMsIDEwNCwgMTA1IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxMDQsIDEwNSwgMTA2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDUsIDEwNiwgMTA3Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxMDYsIDEwNywgMTA4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDcsIDEwOCwgMTA5
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxMDgsIDEwOSwgMTEwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDksIDExMCwg
MTExIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMTAsIDExMSwgMTEyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTEsIDEx
MiwgMTEzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTIsIDExMywgMTE0IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTMs
IDExNCwgMTE1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTQsIDExNSwgMTE2IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
MTUsIDExNiwgMTE3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTYsIDExNywgMTE4IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxMTcsIDExOCwgMTE5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTgsIDExOSwgMTIwIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxMTksIDEyMCwgMTIxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjAsIDEyMSwgMTIyIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxMjEsIDEyMiwgMTIzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjIsIDEyMywgMTI0IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxMjMsIDEyNCwgMTI1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjQsIDEyNSwgMTI2Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxMjUsIDEyNiwgMTI3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjYsIDEyNywgMTI4
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxMjcsIDEyOCwgMTI5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjgsIDEyOSwg
MTMwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMjksIDEzMCwgMTMxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzAsIDEz
MSwgMTMyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzEsIDEzMiwgMTMzIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzIs
IDEzMywgMTM0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzMsIDEzNCwgMTM1IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
MzQsIDEzNSwgMTM2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzUsIDEzNiwgMTM3IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxMzYsIDEzNywgMTM4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzcsIDEzOCwgMTM5IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxMzgsIDEzOSwgMTQwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzksIDE0MCwgMTQxIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxNDAsIDE0MSwgMTQyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDEsIDE0MiwgMTQzIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxNDIsIDE0MywgMTQ0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDMsIDE0NCwgMTQ1Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNDQsIDE0NSwgMTQ2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDUsIDE0NiwgMTQ3
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxNDYsIDE0NywgMTQ4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDcsIDE0OCwg
MTQ5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxNDgsIDE0OSwgMTUwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDksIDE1
MCwgMTUxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTAsIDE1MSwgMTUyIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTEs
IDE1MiwgMTUzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTIsIDE1MywgMTU0IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
NTMsIDE1NCwgMTU1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTQsIDE1NSwgMTU2IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxNTUsIDE1NiwgMTU3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTYsIDE1NywgMTU4IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxNTcsIDE1OCwgMTU5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTgsIDE1OSwgMTYwIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxNTksIDE2MCwgMTYxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjAsIDE2MSwgMTYyIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxNjEsIDE2MiwgMTYzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjIsIDE2MywgMTY0Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNjMsIDE2NCwgMTY1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjQsIDE2NSwgMTY2
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxNjUsIDE2NiwgMTY3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjYsIDE2Nywg
MTY4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxNjcsIDE2OCwgMTY5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjgsIDE2
OSwgMTcwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjksIDE3MCwgMTcxIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzAs
IDE3MSwgMTcyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzEsIDE3MiwgMTczIgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
NzIsIDE3MywgMTc0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzMsIDE3NCwgMTc1IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxNzQsIDE3NSwgMTc2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzUsIDE3NiwgMTc3IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxNzYsIDE3NywgMTc4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzcsIDE3OCwgMTc5IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxNzgsIDE3OSwgMTgwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzksIDE4MCwgMTgxIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxODAsIDE4MSwgMTgyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODEsIDE4MiwgMTgzIgor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxODIsIDE4MywgMTg0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODMsIDE4NCwgMTg1
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxODQsIDE4NSwgMTg2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODUsIDE4Niwg
MTg3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxODYsIDE4NywgMTg4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODcsIDE4
OCwgMTg5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxODgsIDE4OSwgMTkwIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODks
IDE5MCwgMTkxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTAsIDE5MSwgMTkyIgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
OTEsIDE5MiwgMTkzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTIsIDE5MywgMTk0IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxOTMsIDE5NCwgMTk1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTQsIDE5NSwgMTk2IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxOTUsIDE5NiwgMTk3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTYsIDE5NywgMTk4IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxOTcsIDE5OCwgMTk5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTgsIDE5OSwgMjAwIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxOTksIDIwMCwgMjAxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMDAsIDIwMSwgMjAyIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWlubGluZS1hcmd1bWVudHMtaW50MzIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJn
dW1lbnRzLWludDMyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1p
bnQzMi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1p
bnQzMi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3Rz
L2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMw
IEBACitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3RzIHRoYXQgaW5saW5pbmcgcHJlc2VydmVzIGZ1
bmN0aW9uLmFyZ3VtZW50cyBmdW5jdGlvbmFsaXR5IGlmIHRoZSBhcmd1bWVudHMgd2VyZSByZXBy
ZXNlbnRlZCBhcyB1bmJveGVkIGludDMyLiIKKyk7CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICBy
ZXR1cm4gYmFyLmFyZ3VtZW50czsKK30KKworZnVuY3Rpb24gYmFyKGEsYixjKSB7CisgICAgcmV0
dXJuIGZvbyhhLGIsYyk7Cit9CisKK2Z1bmN0aW9uIGJheihhLGIsYykgeworICAgIHJldHVybiBi
YXIoYSxiLGMpOworfQorCitmdW5jdGlvbiBhcmdzVG9TdHIoYXJncykgeworICAgIHZhciBzdHIg
PSBhcmdzICsgIjogIjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBzdHIgKz0gIiwgIjsKKyAgICAgICAgc3Ry
ICs9IGFyZ3NbaV07CisgICAgfQorICAgIHJldHVybiBzdHI7Cit9CisKK2ZvciAodmFyIF9faSA9
IDA7IF9faSA8IDIwMDsgKytfX2kpCisgICAgc2hvdWxkQmUoImFyZ3NUb1N0cihiYXooX19pICsg
MSwgX19pICsgMiwgX19pICsgMykpIiwgIlwiW29iamVjdCBBcmd1bWVudHNdOiAiICsgKF9faSAr
IDEpICsgIiwgIiArIChfX2kgKyAyKSArICIsICIgKyAoX19pICsgMykgKyAiXCIiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="commit-queue"
          id="111790"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113431</attachid>
            <date>2011-11-02 22:04:42 -0700</date>
            <delta_ts>2011-11-03 00:02:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixargumentsunboxed_patch_2.diff</filename>
            <type>text/plain</type>
            <size>74923</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTkxMzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsODMgQEAK
KzIwMTEtMTEtMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgaW5saW5pbmcgYnJlYWtzIGZ1bmN0aW9uLmFyZ3VtZW50c1tzb21ldGhpbmddIGlmIHRoZSBh
cmd1bWVudCBiZWluZworICAgICAgICByZXRyaWV2ZWQgd2FzIHN1YmplY3RlZCB0byBERkcncyB1
bmJveGluZyBvcHRpbWl6YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtYWtlcyBpbmxpbmVkIGFyZ3VtZW50cyByZXRyaWV2
YWwgdXNlIHNvbWUgb2YgdGhlIHNhbWUgbWFjaGluZXJ5IGFzCisgICAgICAgIE9TUiB0byBkZXRl
cm1pbmUgd2hlcmUgZnJvbSwgYW5kIGhvdywgdG8gcmV0cmlldmUgYSB2YWx1ZSB0aGF0IHRoZSBE
RkcKKyAgICAgICAgbWlnaHQgaGF2ZSBzb21laG93IHNxdWlycmVsZWQgYXdheSB3aGlsZSB0aGUg
b2xkIEpJVCB3b3VsZCBwdXQgaXQgaW4gaXRzCisgICAgICAgIG9idmlvdXMgbG9jYXRpb24sIHVz
aW5nIGFuIG9idmlvdXMgZm9ybWF0LgorICAgICAgICAKKyAgICAgICAgVG8gdGhhdCBlbmQsIHBy
ZXZpb3VzbHkgREZHLWludGVybmFsIG5vdGlvbnMgc3VjaCBhcyBEYXRhRm9ybWF0LAorICAgICAg
ICBWaXJ0dWFsUmVnaXN0ZXIsIGFuZCBWYWx1ZVJlY292ZXJ5IGFyZSBub3cgaW4gYnl0ZWNvZGUv
IHNpbmNlIHRoZXkgYXJlCisgICAgICAgIHN0b3JlZCBhcyBwYXJ0IG9mIElubGluZUNhbGxGcmFt
ZXMuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVPcmlnaW4uaDoKKyAgICAgICAgKiBieXRlY29kZS9E
YXRhRm9ybWF0Lmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpkYXRhRm9ybWF0VG9TdHJpbmcpOgor
ICAgICAgICAoSlNDOjpuZWVkRGF0YUZvcm1hdENvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpp
c0pTRm9ybWF0KToKKyAgICAgICAgKEpTQzo6aXNKU0ludGVnZXIpOgorICAgICAgICAoSlNDOjpp
c0pTRG91YmxlKToKKyAgICAgICAgKEpTQzo6aXNKU0NlbGwpOgorICAgICAgICAoSlNDOjppc0pT
Qm9vbGVhbik6CisgICAgICAgICogYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6VmFsdWVSZWNvdmVyeSk6CisgICAgICAgIChKU0M6
OlZhbHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZSk6CisgICAgICAgIChKU0M6OlZh
bHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyKToKKyAgICAg
ICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6YWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2Vs
bCk6CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OmFscmVhZHlJblJlZ2lzdGVyRmlsZUFz
VW5ib3hlZEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjppbkdQUik6Cisg
ICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OmluUGFpcik6CisgICAgICAgIChKU0M6OlZhbHVl
UmVjb3Zlcnk6OmluRlBSKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6ZGlzcGxhY2Vk
SW5SZWdpc3RlckZpbGUpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojpjb25zdGFudCk6
CisgICAgICAgIChKU0M6OlZhbHVlUmVjb3Zlcnk6OnRlY2huaXF1ZSk6CisgICAgICAgIChKU0M6
OlZhbHVlUmVjb3Zlcnk6OmlzSW5SZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292
ZXJ5OjpncHIpOgorICAgICAgICAoSlNDOjpWYWx1ZVJlY292ZXJ5Ojp0YWdHUFIpOgorICAgICAg
ICAoSlNDOjpWYWx1ZVJlY292ZXJ5OjpwYXlsb2FkR1BSKToKKyAgICAgICAgKEpTQzo6VmFsdWVS
ZWNvdmVyeTo6ZnByKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6dmlydHVhbFJlZ2lz
dGVyKToKKyAgICAgICAgKEpTQzo6VmFsdWVSZWNvdmVyeTo6ZHVtcCk6CisgICAgICAgICogYnl0
ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmg6IEFkZGVkLgorICAgICAgICAqIGRmZy9ERkdBYnN0cmFj
dFN0YXRlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdFN0YXRlOjpleGVjdXRlKToK
KyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0
ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkpOgorICAgICAg
ICAqIGRmZy9ERkdHZW5lcmF0aW9uSW5mby5oOgorICAgICAgICAoSlNDOjpERkc6OkdlbmVyYXRp
b25JbmZvOjppc0pTRm9ybWF0KToKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGl0U3BlY3VsYXRpdmVXaXRoT1NSKToK
KyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6SklUQ29tcGlsZXI6OmV4aXRTcGVjdWxhdGl2ZVdpdGhPU1IpOgorICAgICAgICAqIGRmZy9E
RkdOb2RlLmg6CisgICAgICAgICogZGZnL0RGR1Byb3BhZ2F0b3IuY3BwOgorICAgICAgICAoSlND
OjpERkc6OlByb3BhZ2F0b3I6OnByb3BhZ2F0ZU5vZGVQcmVkaWN0aW9ucyk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpWYWx1ZVNvdXJj
ZTo6ZHVtcCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgor
ICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0YS5oOgorICAgICAgICAq
IGludGVycHJldGVyL0NhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkNhbGxGcmFtZTo6dHJ1
ZUNhbGxlckZyYW1lKToKKyAgICAgICAgKiBpbnRlcnByZXRlci9DYWxsRnJhbWUuaDoKKyAgICAg
ICAgKEpTQzo6RXhlY1N0YXRlOjppbmxpbmVDYWxsRnJhbWUpOgorICAgICAgICAqIGludGVycHJl
dGVyL1JlZ2lzdGVyLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjphc0lubGluZUNhbGxGcmFt
ZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkSW50MzIpOgorICAgICAgICAoSlND
OjpSZWdpc3Rlcjo6dW5ib3hlZEJvb2xlYW4pOgorICAgICAgICAoSlNDOjpSZWdpc3Rlcjo6dW5i
b3hlZENlbGwpOgorICAgICAgICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6
OkFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb25BbmRDb3B5UmVnaXN0ZXJzKToKKwogMjAxMS0xMS0w
MiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIElubGluZWQgdXNl
cyBvZiB0aGUgZ2xvYmFsIG9iamVjdCBzaG91bGQgdXNlIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gOTkxMTYpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsOSBAQAogCQkwQkYyOEEyOTExQTMzREMz
MDA2MzhGODQgLyogU2l6ZUxpbWl0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwQkYyOEEyODExQTMzREMzMDA2MzhGODQgLyogU2l6ZUxpbWl0cy5j
cHAgKi87IH07CiAJCTBGMTZENzI2MTQyQzM5QzAwMENGNzg0QSAvKiBCaXRWZWN0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNkQ3MjQxNDJD
MzlBMjAwQ0Y3ODRBIC8qIEJpdFZlY3Rvci5jcHAgKi87IH07CiAJCTBGMjQyREE3MTNGM0IxRTgw
MDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI0MkRBNTEzRjNCMUJCMDA3QURENEMgLyogV2Vh
a1JlZmVyZW5jZUhhcnZlc3Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGNDI2QTQ4MTQ2MENCQjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQyNkE0
NTE0NjBDQkFCMDAxMzFGOEYgLyogVmFsdWVSZWNvdmVyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNDI2QTQ5MTQ2MENCQjcwMDEzMUY4RiAv
KiBWaXJ0dWFsUmVnaXN0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDI2QTQ2MTQ2MENCQUIwMDEzMUY4RiAvKiBWaXJ0dWFsUmVnaXN0ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjQyNkE0
QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0MjZBNEExNDYwQ0Q2QjAwMTMxRjhGIC8qIERhdGFG
b3JtYXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjYyMDE3NDE0M0ZDRDMzMDA2OEI3N0MgLyogREZHVmFyaWFibGVBY2Nlc3NEYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjYyMDE3MjE0M0ZD
RDJGMDA2OEI3N0MgLyogREZHVmFyaWFibGVBY2Nlc3NEYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2MjAxNzUxNDNGQ0QzNzAwNjhCNzdD
IC8qIERGR09wZXJhbmRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjYyMDE3MTE0M0ZDRDJGMDA2OEI3N0MgLyogREZHT3BlcmFuZHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjYyMDE3NjE0M0ZD
RDNCMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2MjAxNzAxNDNGQ0QyRjAwNjhCNzdDIC8qIERGR0Jhc2lj
QmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtODEwLDYgKzgxMyw5IEBACiAJCTBCRjI4QTI4MTFBMzNEQzMwMDYzOEY4NCAvKiBTaXplTGlt
aXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpemVMaW1pdHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE2RDcyNDE0MkMzOUEyMDBDRjc4
NEEgLyogQml0VmVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEJpdFZlY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjQyREE1MTNG
M0IxQkIwMDdBREQ0QyAvKiBXZWFrUmVmZXJlbmNlSGFydmVzdGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY0MjZBNDUxNDYwQ0JBQjAwMTMxRjhGIC8qIFZhbHVlUmVjb3Zl
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmFsdWVSZWNvdmVyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQyNkE0NjE0NjBDQkFCMDAxMzFGOEYgLyog
VmlydHVhbFJlZ2lzdGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1
YWxSZWdpc3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQyNkE0QTE0NjBD
RDZCMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEYXRhRm9ybWF0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNjIwMTZE
MTQzRkNEMkYwMDY4Qjc3QyAvKiBERkdBYnN0cmFjdFN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0Fic3RyYWN0U3RhdGUuY3BwOyBwYXRoID0gZGZnL0RG
R0Fic3RyYWN0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2
RTE0M0ZDRDJGMDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBERkdBYnN0cmFjdFN0YXRlLmg7IHBhdGggPSBkZmcvREZHQWJzdHJh
Y3RTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjYyMDE2RjE0M0ZDRDJG
MDA2OEI3N0MgLyogREZHQWJzdHJhY3RWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdBYnN0cmFjdFZhbHVlLmg7IHBhdGggPSBkZmcvREZHQWJzdHJhY3RWYWx1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM5MCw2ICsyMzk2LDkgQEAKIAkJOTY5
QTA3OEYwRUQxRDNBRTAwRjFGNjgxIC8qIGJ5dGVjb2RlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjQyNkE0QTE0NjBDRDZCMDAxMzFGOEYgLyogRGF0
YUZvcm1hdC5oICovLAorCQkJCTBGNDI2QTQ1MTQ2MENCQUIwMDEzMUY4RiAvKiBWYWx1ZVJlY292
ZXJ5LmggKi8sCisJCQkJMEY0MjZBNDYxNDYwQ0JBQjAwMTMxRjhGIC8qIFZpcnR1YWxSZWdpc3Rl
ci5oICovLAogCQkJCTBGQkQ3RTY3MTQ0Nzk5OEYwMDQ4MTMxNSAvKiBDb2RlT3JpZ2luLmggKi8s
CiAJCQkJMEZEODJFOEUxNDIwN0E1MTAwMTc5Qzk0IC8qIFZhbHVlUHJvZmlsZS5jcHAgKi8sCiAJ
CQkJMEZEODJFODQxNDFGM0ZEQTAwMTc5Qzk0IC8qIFByZWRpY3RlZFR5cGUuY3BwICovLApAQCAt
Mjg4NSw2ICsyODk0LDkgQEAKIAkJCQkwRjYyMDE3ODE0M0ZDRDQ0MDA2OEI3N0MgLyogREZHQWJz
dHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCRDdFNjkxNDQ3OTk5NjAwNDgxMzE1
IC8qIENvZGVPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1MzAzRDY0MTQ0N0I5RTEwMEQz
RjkwNCAvKiBQYXJzZXJUb2tlbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDI2QTQ4MTQ2MENC
QjMwMDEzMUY4RiAvKiBWYWx1ZVJlY292ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQyNkE0
OTE0NjBDQkI3MDAxMzFGOEYgLyogVmlydHVhbFJlZ2lzdGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjQyNkE0QjE0NjBDRDZFMDAxMzFGOEYgLyogRGF0YUZvcm1hdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHJl
dmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVPcmln
aW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBDb2RlT3JpZ2lu
X2gKICNkZWZpbmUgQ29kZU9yaWdpbl9oCiAKKyNpbmNsdWRlICJWYWx1ZVJlY292ZXJ5LmgiCiAj
aW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDEyICs3NiwxMiBAQCBzdHJ1Y3QgQ29kZU9y
aWdpbiB7CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKKyAgICBWZWN0b3I8VmFsdWVS
ZWNvdmVyeT4gYXJndW1lbnRzOwogICAgIFdyaXRlQmFycmllcjxFeGVjdXRhYmxlQmFzZT4gZXhl
Y3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2FsbGVlOwogICAgIENvZGVP
cmlnaW4gY2FsbGVyOwogICAgIHVuc2lnbmVkIHN0YWNrT2Zmc2V0OwotICAgIHVuc2lnbmVkIG51
bUFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgOiAzMTsKLSAgICBib29sIGlzQ2FsbCA6IDE7CisgICAg
Ym9vbCBpc0NhbGw7CiB9OwogCiBzdHJ1Y3QgQ29kZU9yaWdpbkF0Q2FsbFJldHVybk9mZnNldCB7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9EYXRhRm9ybWF0LmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvRGF0YUZvcm1hdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERhdGFGb3JtYXRfaAorI2RlZmluZSBEYXRh
Rm9ybWF0X2gKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK25hbWVzcGFjZSBKU0Mg
eworCisvLyA9PT0gRGF0YUZvcm1hdCA9PT0KKy8vCisvLyBUaGlzIGVudW0gdHJhY2tzIHRoZSBj
dXJyZW50IHJlcHJlc2VudGF0aW9uIGluIHdoaWNoIGEgdmFsdWUgaXMgYmVpbmcgaGVsZC4KKy8v
IFZhbHVlcyBtYXkgYmUgdW5ib3hlZCBwcmltaXRpdmVzIChpbnQzMiwgZG91YmxlLCBvciBjZWxs
KSwgb3IgYm94ZWQgYXMgYSBKU1ZhbHVlLgorLy8gRm9yIGJveGVkIHZhbHVlcywgd2UgbWF5IGtu
b3cgdGhlIHR5cGUgb2YgYm94aW5nIHRoYXQgaGFzIHRha2VuIHBsYWNlLgorLy8gKE1heSBhbHNv
IG5lZWQgYm9vbCwgYXJyYXksIG9iamVjdCwgc3RyaW5nIHR5cGVzISkKK2VudW0gRGF0YUZvcm1h
dCB7CisgICAgRGF0YUZvcm1hdE5vbmUgPSAwLAorICAgIERhdGFGb3JtYXRJbnRlZ2VyID0gMSwK
KyAgICBEYXRhRm9ybWF0RG91YmxlID0gMiwKKyAgICBEYXRhRm9ybWF0Qm9vbGVhbiA9IDMsCisg
ICAgRGF0YUZvcm1hdENlbGwgPSA0LAorICAgIERhdGFGb3JtYXRTdG9yYWdlID0gNSwKKyAgICBE
YXRhRm9ybWF0SlMgPSA4LAorICAgIERhdGFGb3JtYXRKU0ludGVnZXIgPSBEYXRhRm9ybWF0SlMg
fCBEYXRhRm9ybWF0SW50ZWdlciwKKyAgICBEYXRhRm9ybWF0SlNEb3VibGUgPSBEYXRhRm9ybWF0
SlMgfCBEYXRhRm9ybWF0RG91YmxlLAorICAgIERhdGFGb3JtYXRKU0NlbGwgPSBEYXRhRm9ybWF0
SlMgfCBEYXRhRm9ybWF0Q2VsbCwKKyAgICBEYXRhRm9ybWF0SlNCb29sZWFuID0gRGF0YUZvcm1h
dEpTIHwgRGF0YUZvcm1hdEJvb2xlYW4KK307CisKKyNpZm5kZWYgTkRFQlVHCitpbmxpbmUgY29u
c3QgY2hhciogZGF0YUZvcm1hdFRvU3RyaW5nKERhdGFGb3JtYXQgZGF0YUZvcm1hdCkKK3sKKyAg
ICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKKyAgICBjYXNlIERhdGFGb3JtYXROb25lOgorICAgICAg
ICByZXR1cm4gIk5vbmUiOworICAgIGNhc2UgRGF0YUZvcm1hdEludGVnZXI6CisgICAgICAgIHJl
dHVybiAiSW50ZWdlciI7CisgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgorICAgICAgICByZXR1
cm4gIkRvdWJsZSI7CisgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKKyAgICAgICAgcmV0dXJuICJD
ZWxsIjsKKyAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgorICAgICAgICByZXR1cm4gIkJvb2xl
YW4iOworICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgICAgIHJldHVybiAiU3RvcmFn
ZSI7CisgICAgY2FzZSBEYXRhRm9ybWF0SlM6CisgICAgICAgIHJldHVybiAiSlMiOworICAgIGNh
c2UgRGF0YUZvcm1hdEpTSW50ZWdlcjoKKyAgICAgICAgcmV0dXJuICJKU0ludGVnZXIiOworICAg
IGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgorICAgICAgICByZXR1cm4gIkpTRG91YmxlIjsKKyAg
ICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6CisgICAgICAgIHJldHVybiAiSlNDZWxsIjsKKyAgICBj
YXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CisgICAgICAgIHJldHVybiAiSlNCb29sZWFuIjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgIH0KK30KKyNlbmRpZgor
CisjaWYgVVNFKEpTVkFMVUU2NCkKK2lubGluZSBib29sIG5lZWREYXRhRm9ybWF0Q29udmVyc2lv
bihEYXRhRm9ybWF0IGZyb20sIERhdGFGb3JtYXQgdG8pCit7CisgICAgQVNTRVJUKGZyb20gIT0g
RGF0YUZvcm1hdE5vbmUpOworICAgIEFTU0VSVCh0byAhPSBEYXRhRm9ybWF0Tm9uZSk7CisgICAg
c3dpdGNoIChmcm9tKSB7CisgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKKyAgICBjYXNlIERh
dGFGb3JtYXREb3VibGU6CisgICAgICAgIHJldHVybiB0byAhPSBmcm9tOworICAgIGNhc2UgRGF0
YUZvcm1hdENlbGw6CisgICAgY2FzZSBEYXRhRm9ybWF0SlM6CisgICAgY2FzZSBEYXRhRm9ybWF0
SlNJbnRlZ2VyOgorICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgorICAgIGNhc2UgRGF0YUZv
cm1hdEpTQ2VsbDoKKyAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46CisgICAgICAgIHN3aXRj
aCAodG8pIHsKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdlcjoKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0RG91YmxlOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNhc2Ug
RGF0YUZvcm1hdENlbGw6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXRKU0ludGVnZXI6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgor
ICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdEpT
Qm9vbGVhbjoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIC8vIFRoaXMgY2FwdHVyZXMgRGF0YUZvcm1hdEJvb2xlYW4sIHdoaWNoIGlzIGN1
cnJlbnRseSB1bnVzZWQuCisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgfQorICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6CisgICAgICAgIEFTU0VSVCh0byA9PSBE
YXRhRm9ybWF0U3RvcmFnZSk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICAvLyBUaGlzIGNhcHR1cmVzIERhdGFGb3JtYXRCb29sZWFuLCB3aGljaCBpcyBjdXJy
ZW50bHkgdW51c2VkLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAg
cmV0dXJuIHRydWU7Cit9CisKKyNlbGlmIFVTRShKU1ZBTFVFMzJfNjQpCitpbmxpbmUgYm9vbCBu
ZWVkRGF0YUZvcm1hdENvbnZlcnNpb24oRGF0YUZvcm1hdCBmcm9tLCBEYXRhRm9ybWF0IHRvKQor
eworICAgIEFTU0VSVChmcm9tICE9IERhdGFGb3JtYXROb25lKTsKKyAgICBBU1NFUlQodG8gIT0g
RGF0YUZvcm1hdE5vbmUpOworICAgIHN3aXRjaCAoZnJvbSkgeworICAgIGNhc2UgRGF0YUZvcm1h
dEludGVnZXI6CisgICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKKyAgICBjYXNlIERhdGFGb3JtYXRC
b29sZWFuOgorICAgICAgICByZXR1cm4gKCh0byAmIERhdGFGb3JtYXRKUykgfHwgdG8gPT0gRGF0
YUZvcm1hdERvdWJsZSk7CisgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgorICAgIGNhc2UgRGF0
YUZvcm1hdEpTRG91YmxlOgorICAgICAgICByZXR1cm4gKHRvICE9IERhdGFGb3JtYXREb3VibGUg
JiYgdG8gIT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKKyAgICBjYXNlIERhdGFGb3JtYXRKUzoKKyAg
ICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6CisgICAgY2FzZSBEYXRhRm9ybWF0SlNDZWxsOgor
ICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKKyAgICAgICAgcmV0dXJuICghKHRvICYgRGF0
YUZvcm1hdEpTKSB8fCB0byA9PSBEYXRhRm9ybWF0SlNEb3VibGUpOworICAgIGNhc2UgRGF0YUZv
cm1hdFN0b3JhZ2U6CisgICAgICAgIEFTU0VSVCh0byA9PSBEYXRhRm9ybWF0U3RvcmFnZSk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKworaW5saW5lIGJv
b2wgaXNKU0Zvcm1hdChEYXRhRm9ybWF0IGZvcm1hdCwgRGF0YUZvcm1hdCBleHBlY3RlZEZvcm1h
dCkKK3sKKyAgICBBU1NFUlQoZXhwZWN0ZWRGb3JtYXQgJiBEYXRhRm9ybWF0SlMpOworICAgIHJl
dHVybiAoZm9ybWF0IHwgRGF0YUZvcm1hdEpTKSA9PSBleHBlY3RlZEZvcm1hdDsKK30KKworaW5s
aW5lIGJvb2wgaXNKU0ludGVnZXIoRGF0YUZvcm1hdCBmb3JtYXQpCit7CisgICAgcmV0dXJuIGlz
SlNGb3JtYXQoZm9ybWF0LCBEYXRhRm9ybWF0SlNJbnRlZ2VyKTsKK30KKworaW5saW5lIGJvb2wg
aXNKU0RvdWJsZShEYXRhRm9ybWF0IGZvcm1hdCkKK3sKKyAgICByZXR1cm4gaXNKU0Zvcm1hdChm
b3JtYXQsIERhdGFGb3JtYXRKU0RvdWJsZSk7Cit9CisKK2lubGluZSBib29sIGlzSlNDZWxsKERh
dGFGb3JtYXQgZm9ybWF0KQoreworICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwgRGF0YUZv
cm1hdEpTQ2VsbCk7Cit9CisKK2lubGluZSBib29sIGlzSlNCb29sZWFuKERhdGFGb3JtYXQgZm9y
bWF0KQoreworICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwgRGF0YUZvcm1hdEpTQm9vbGVh
bik7Cit9CisKK30KKworI2VuZGlmIC8vIERhdGFGb3JtYXRfaAorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVmFsdWVSZWNvdmVyeS5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDI5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIFZhbHVlUmVjb3ZlcnlfaAorI2RlZmluZSBWYWx1ZVJlY292
ZXJ5X2gKKworI2luY2x1ZGUgIkRhdGFGb3JtYXQuaCIKKyNpbmNsdWRlICJKU1ZhbHVlLmgiCisj
aW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKKyNpbmNsdWRlICJWaXJ0dWFsUmVnaXN0ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIERlc2Ny
aWJlcyBob3cgdG8gcmVjb3ZlciBhIGdpdmVuIGJ5dGVjb2RlIHZpcnR1YWwgcmVnaXN0ZXIgYXQg
YSBnaXZlbgorLy8gY29kZSBwb2ludC4KK2VudW0gVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSB7Cisg
ICAgLy8gSXQncyBhbHJlYWR5IGluIHRoZSByZWdpc3RlciBmaWxlIGF0IHRoZSByaWdodCBsb2Nh
dGlvbi4KKyAgICBBbHJlYWR5SW5SZWdpc3RlckZpbGUsCisgICAgLy8gSXQncyBhbHJlYWR5IGlu
IHRoZSByZWdpc3RlciBmaWxlIGJ1dCB1bmJveGVkLgorICAgIEFscmVhZHlJblJlZ2lzdGVyRmls
ZUFzVW5ib3hlZEludDMyLAorICAgIEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGws
CisgICAgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQm9vbGVhbiwKKyAgICAvLyBJdCdz
IGluIGEgcmVnaXN0ZXIuCisgICAgSW5HUFIsCisgICAgVW5ib3hlZEludDMySW5HUFIsCisgICAg
VW5ib3hlZEJvb2xlYW5JbkdQUiwKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIEluUGFpciwK
KyNlbmRpZgorICAgIEluRlBSLAorICAgIC8vIEl0J3MgaW4gdGhlIHJlZ2lzdGVyIGZpbGUsIGJ1
dCBhdCBhIGRpZmZlcmVudCBsb2NhdGlvbi4KKyAgICBEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZSwK
KyAgICAvLyBJdCdzIGluIHRoZSByZWdpc3RlciBmaWxlLCBhdCBhIGRpZmZlcmVudCBsb2NhdGlv
biwgYW5kIGl0J3MgdW5ib3hlZC4KKyAgICBJbnQzMkRpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAor
ICAgIERvdWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAorICAgIC8vIEl0J3MgYSBjb25zdGFu
dC4KKyAgICBDb25zdGFudCwKKyAgICAvLyBEb24ndCBrbm93IGhvdyB0byByZWNvdmVyIGl0Lgor
ICAgIERvbnRLbm93Cit9OworCitjbGFzcyBWYWx1ZVJlY292ZXJ5IHsKK3B1YmxpYzoKKyAgICBW
YWx1ZVJlY292ZXJ5KCkKKyAgICAgICAgOiBtX3RlY2huaXF1ZShEb250S25vdykKKyAgICB7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmls
ZSgpCisgICAgeworICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0
Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxlOworICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBhbHJlYWR5SW5SZWdp
c3RlckZpbGVBc1VuYm94ZWRJbnQzMigpCisgICAgeworICAgICAgICBWYWx1ZVJlY292ZXJ5IHJl
c3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxl
QXNVbmJveGVkSW50MzI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGwo
KQorICAgIHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5t
X3RlY2huaXF1ZSA9IEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZENlbGw7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGFs
cmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW4oKQorICAgIHsKKyAgICAgICAgVmFs
dWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEFscmVhZHlJ
blJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW47CisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgfQorICAgIAorICAgIHN0YXRpYyBWYWx1ZVJlY292ZXJ5IGluR1BSKE1hY3JvQXNzZW1ibGVy
OjpSZWdpc3RlcklEIGdwciwgRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQorICAgIHsKKyAgICAgICAg
QVNTRVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUpOworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyIHx8IGRh
dGFGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgZGF0YUZvcm1hdCA9PSBEYXRhRm9ybWF0Qm9v
bGVhbik7CisjZW5kaWYKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIGlm
IChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKQorICAgICAgICAgICAgcmVzdWx0Lm1f
dGVjaG5pcXVlID0gVW5ib3hlZEludDMySW5HUFI7CisgICAgICAgIGVsc2UgaWYgKGRhdGFGb3Jt
YXQgPT0gRGF0YUZvcm1hdEJvb2xlYW4pCisgICAgICAgICAgICByZXN1bHQubV90ZWNobmlxdWUg
PSBVbmJveGVkQm9vbGVhbkluR1BSOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBJbkdQUjsKKyAgICAgICAgcmVzdWx0Lm1fc291cmNlLmdwciA9IGdwcjsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgCisjaWYgVVNFKEpTVkFMVUUzMl82
NCkKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBpblBhaXIoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lz
dGVySUQgdGFnR1BSLCBNYWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBwYXlsb2FkR1BSKQorICAg
IHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2hu
aXF1ZSA9IEluUGFpcjsKKyAgICAgICAgcmVzdWx0Lm1fc291cmNlLnBhaXIudGFnR1BSID0gdGFn
R1BSOworICAgICAgICByZXN1bHQubV9zb3VyY2UucGFpci5wYXlsb2FkR1BSID0gcGF5bG9hZEdQ
UjsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisjZW5kaWYKKworICAgIHN0YXRpYyBW
YWx1ZVJlY292ZXJ5IGluRlBSKE1hY3JvQXNzZW1ibGVyOjpGUFJlZ2lzdGVySUQgZnByKQorICAg
IHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7CisgICAgICAgIHJlc3VsdC5tX3RlY2hu
aXF1ZSA9IEluRlBSOworICAgICAgICByZXN1bHQubV9zb3VyY2UuZnByID0gZnByOworICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBk
aXNwbGFjZWRJblJlZ2lzdGVyRmlsZShWaXJ0dWFsUmVnaXN0ZXIgdmlydHVhbFJlZywgRGF0YUZv
cm1hdCBkYXRhRm9ybWF0KQorICAgIHsKKyAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7Cisg
ICAgICAgIHN3aXRjaCAoZGF0YUZvcm1hdCkgeworICAgICAgICBjYXNlIERhdGFGb3JtYXRJbnRl
Z2VyOgorICAgICAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gSW50MzJEaXNwbGFjZWRJblJl
Z2lzdGVyRmlsZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgIGNh
c2UgRGF0YUZvcm1hdERvdWJsZToKKyAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IERv
dWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRO
b25lICYmIGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdFN0b3JhZ2UpOworICAgICAgICAgICAgcmVz
dWx0Lm1fdGVjaG5pcXVlID0gRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQubV9zb3VyY2UudmlydHVhbFJlZyA9IHZp
cnR1YWxSZWc7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBWYWx1ZVJlY292ZXJ5IGNvbnN0YW50KEpTVmFsdWUgdmFsdWUpCisgICAgeworICAgICAgICBW
YWx1ZVJlY292ZXJ5IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQ29uc3Rh
bnQ7CisgICAgICAgIHJlc3VsdC5tX3NvdXJjZS5jb25zdGFudCA9IEpTVmFsdWU6OmVuY29kZSh2
YWx1ZSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIAorICAgIFZhbHVlUmVj
b3ZlcnlUZWNobmlxdWUgdGVjaG5pcXVlKCkgY29uc3QgeyByZXR1cm4gbV90ZWNobmlxdWU7IH0K
KyAgICAKKyAgICBib29sIGlzSW5SZWdpc3RlcnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dp
dGNoIChtX3RlY2huaXF1ZSkgeworICAgICAgICBjYXNlIEluR1BSOgorICAgICAgICBjYXNlIFVu
Ym94ZWRJbnQzMkluR1BSOgorICAgICAgICBjYXNlIFVuYm94ZWRCb29sZWFuSW5HUFI6CisjaWYg
VVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgY2FzZSBJblBhaXI6CisjZW5kaWYKKyAgICAgICAg
Y2FzZSBJbkZQUjoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIE1h
Y3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGdwcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEludDMySW5H
UFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEJvb2xlYW5JbkdQUik7CisgICAgICAgIHJldHVy
biBtX3NvdXJjZS5ncHI7CisgICAgfQorICAgIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
TWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgdGFnR1BSKCkgY29uc3QKKyAgICB7CisgICAgICAg
IEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJblBhaXIpOworICAgICAgICByZXR1cm4gbV9zb3VyY2Uu
cGFpci50YWdHUFI7CisgICAgfQorICAgIAorICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IHBheWxvYWRHUFIoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09
IEluUGFpcik7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS5wYWlyLnBheWxvYWRHUFI7CisgICAg
fQorI2VuZGlmCisgICAgCisgICAgTWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCBmcHIoKSBj
b25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09IEluRlBSKTsKKyAgICAg
ICAgcmV0dXJuIG1fc291cmNlLmZwcjsKKyAgICB9CisgICAgCisgICAgVmlydHVhbFJlZ2lzdGVy
IHZpcnR1YWxSZWdpc3RlcigpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90ZWNobmlx
dWUgPT0gRGlzcGxhY2VkSW5SZWdpc3RlckZpbGUgfHwgbV90ZWNobmlxdWUgPT0gSW50MzJEaXNw
bGFjZWRJblJlZ2lzdGVyRmlsZSB8fCBtX3RlY2huaXF1ZSA9PSBEb3VibGVEaXNwbGFjZWRJblJl
Z2lzdGVyRmlsZSk7CisgICAgICAgIHJldHVybiBtX3NvdXJjZS52aXJ0dWFsUmVnOworICAgIH0K
KyAgICAKKyAgICBKU1ZhbHVlIGNvbnN0YW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX3RlY2huaXF1ZSA9PSBDb25zdGFudCk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNv
ZGUobV9zb3VyY2UuY29uc3RhbnQpOworICAgIH0KKyAgICAKKyNpZm5kZWYgTkRFQlVHCisgICAg
dm9pZCBkdW1wKEZJTEUqIG91dCkgY29uc3QKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGVjaG5p
cXVlKCkpIHsKKyAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGU6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgIi0iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFs
cmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyOgorICAgICAgICAgICAgZnByaW50Zihv
dXQsICIoaW50MzIpIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBbHJlYWR5
SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRDZWxsOgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIo
Y2VsbCkiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEFscmVhZHlJblJlZ2lz
dGVyRmlsZUFzVW5ib3hlZEJvb2xlYW46CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgIihib29s
KSIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW5HUFI6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgIiUlciVkIiwgZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgVW5ib3hlZEludDMySW5HUFI6CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgImlu
dDMyKCUlciVkKSIsIGdwcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFVu
Ym94ZWRCb29sZWFuSW5HUFI6CisgICAgICAgICAgICBmcHJpbnRmKG91dCwgImJvb2woJSVyJWQp
IiwgZ3ByKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW5GUFI6CisgICAg
ICAgICAgICBmcHJpbnRmKG91dCwgIiUlciVkIiwgZnByKCkpOworICAgICAgICAgICAgYnJlYWs7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgY2FzZSBJblBhaXI6CisgICAgICAgICAg
ICBmcHJpbnRmKG91dCwgInBhaXIoJSVyJWQsICUlciVkKSIsIHRhZ0dQUigpLCBwYXlsb2FkR1BS
KCkpOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgY2FzZSBEaXNwbGFjZWRJ
blJlZ2lzdGVyRmlsZToKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiKiVkIiwgdmlydHVhbFJl
Z2lzdGVyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgSW50MzJEaXNwbGFj
ZWRJblJlZ2lzdGVyRmlsZToKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiKmludDMyKCVkKSIs
IHZpcnR1YWxSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIERv
dWJsZURpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIq
ZG91YmxlKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENvbnN0YW50OgorICAgICAgICAgICAgZnByaW50ZihvdXQsICJbJXNdIiwgY29u
c3RhbnQoKS5kZXNjcmlwdGlvbigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IERvbnRLbm93OgorICAgICAgICAgICAgZnByaW50ZihvdXQsICIhIik7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGZwcmludGYob3V0LCAiPyVkIiwg
dGVjaG5pcXVlKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisjZW5k
aWYKKyAgICAKK3ByaXZhdGU6CisgICAgVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSBtX3RlY2huaXF1
ZTsKKyAgICB1bmlvbiB7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGdwcjsK
KyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCBmcHI7CisjaWYgVVNFKEpTVkFM
VUUzMl82NCkKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpS
ZWdpc3RlcklEIHRhZ0dQUjsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklE
IHBheWxvYWRHUFI7CisgICAgICAgIH0gcGFpcjsKKyNlbmRpZgorICAgICAgICBWaXJ0dWFsUmVn
aXN0ZXIgdmlydHVhbFJlZzsKKyAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7CisgICAg
fSBtX3NvdXJjZTsKK307CisKK30gLy8gbmFtZXNwYWNlIEpTQworCisjZW5kaWYgLy8gVmFsdWVS
ZWNvdmVyeV9oCisKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1
YWxSZWdpc3Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9WaXJ0dWFsUmVnaXN0ZXIuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9WaXJ0dWFsUmVnaXN0ZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFZpcnR1YWxSZWdpc3Rlcl9oCisjZGVmaW5lIFZpcnR1YWxSZWdpc3Rlcl9oCisKKyNpbmNsdWRl
IDx3dGYvUGxhdGZvcm0uaD4KKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIFR5cGUgZm9yIGEgdmly
dHVhbCByZWdpc3RlciBudW1iZXIgKHNwaWxsIGxvY2F0aW9uKS4KKy8vIFVzaW5nIGFuIGVudW0g
dG8gbWFrZSB0aGlzIHR5cGUtY2hlY2tlZCBhdCBjb21waWxlIHRpbWUsIHRvIGF2ZXJ0IHByb2dy
YW1tZXIgZXJyb3JzLgorZW51bSBWaXJ0dWFsUmVnaXN0ZXIgeyBJbnZhbGlkVmlydHVhbFJlZ2lz
dGVyID0gLTEgfTsKK0NPTVBJTEVfQVNTRVJUKHNpemVvZihWaXJ0dWFsUmVnaXN0ZXIpID09IHNp
emVvZihpbnQpLCBWaXJ0dWFsUmVnaXN0ZXJfaXNfMzJiaXQpOworCit9IC8vIG5hbWVzcGFjZSBK
U0MKKworI2VuZGlmIC8vIFZpcnR1YWxSZWdpc3Rlcl9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0Fic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDk5MTE2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjU5LDYgKzY1OSw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZShOb2Rl
SW5kZXggbm8KICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIFBoYW50b206
CisgICAgY2FzZSBJbmxpbmVTdGFydDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJ
KHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDMsNyArMTAwMywxMSBAQCBib29sIEJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyhib29sCiAgICAgLy8gVGhpcyBpcyB3aGVyZSB0
aGUgYWN0dWFsIGlubGluaW5nIHJlYWxseSBoYXBwZW5zLgogICAgIHVuc2lnbmVkIG9sZEluZGV4
ID0gbV9jdXJyZW50SW5kZXg7CiAgICAgbV9jdXJyZW50SW5kZXggPSAwOworCisgICAgYWRkVG9H
cmFwaChJbmxpbmVTdGFydCk7CisgICAgCiAgICAgcGFyc2VDb2RlQmxvY2soKTsKKyAgICAKICAg
ICBtX2N1cnJlbnRJbmRleCA9IG9sZEluZGV4OwogICAgIAogICAgIC8vIElmIHRoZSBpbmxpbmVk
IGNvZGUgY3JlYXRlZCBzb21lIG5ldyBiYXNpYyBibG9ja3MsIHRoZW4gd2UgaGF2ZSBsaW5raW5n
IHRvIGRvLgpAQCAtMjMyNiw3ICsyMzMwLDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNr
RW50cnk6OklubGluZQogICAgICAgICBpbmxpbmVDYWxsRnJhbWUuc3RhY2tPZmZzZXQgPSBpbmxp
bmVDYWxsRnJhbWVTdGFydCArIFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAg
ICAgICAgaW5saW5lQ2FsbEZyYW1lLmNhbGxlZS5zZXQoKmJ5dGVDb2RlUGFyc2VyLT5tX2dsb2Jh
bERhdGEsIGJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNh
bGxlZSk7CiAgICAgICAgIGlubGluZUNhbGxGcmFtZS5jYWxsZXIgPSBieXRlQ29kZVBhcnNlci0+
Y3VycmVudENvZGVPcmlnaW4oKTsKLSAgICAgICAgaW5saW5lQ2FsbEZyYW1lLm51bUFyZ3VtZW50
c0luY2x1ZGluZ1RoaXMgPSBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVyczsKKyAgICAgICAgaW5s
aW5lQ2FsbEZyYW1lLmFyZ3VtZW50cy5yZXNpemUoY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMp
OyAvLyBTZXQgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgaW5jbHVkaW5nIHRoaXMsIGJ1dCBkb24n
dCBjb25maWd1cmUgdGhlIHZhbHVlIHJlY292ZXJpZXMsIHlldC4KICAgICAgICAgaW5saW5lQ2Fs
bEZyYW1lLmlzQ2FsbCA9IGlzQ2FsbChraW5kKTsKICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1f
Y29kZUJsb2NrLT5pbmxpbmVDYWxsRnJhbWVzKCkuYXBwZW5kKGlubGluZUNhbGxGcmFtZSk7CiAg
ICAgICAgIG1faW5saW5lQ2FsbEZyYW1lID0gJmJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+
aW5saW5lQ2FsbEZyYW1lcygpLmxhc3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHR2VuZXJhdGlvbkluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dlbmVyYXRpb25JbmZvLmgJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHZW5lcmF0aW9uSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCwxNTYgKzI4LDExIEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkRhdGFG
b3JtYXQuaCIKICNpbmNsdWRlIDxkZmcvREZHSklUQ29tcGlsZXIuaD4KIAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBERkcgewogCi0vLyA9PT0gRGF0YUZvcm1hdCA9PT0KLS8vCi0vLyBUaGlz
IGVudW0gdHJhY2tzIHRoZSBjdXJyZW50IHJlcHJlc2VudGF0aW9uIGluIHdoaWNoIGEgdmFsdWUg
aXMgYmVpbmcgaGVsZC4KLS8vIFZhbHVlcyBtYXkgYmUgdW5ib3hlZCBwcmltaXRpdmVzIChpbnQz
MiwgZG91YmxlLCBvciBjZWxsKSwgb3IgYm94ZWQgYXMgYSBKU1ZhbHVlLgotLy8gRm9yIGJveGVk
IHZhbHVlcywgd2UgbWF5IGtub3cgdGhlIHR5cGUgb2YgYm94aW5nIHRoYXQgaGFzIHRha2VuIHBs
YWNlLgotLy8gKE1heSBhbHNvIG5lZWQgYm9vbCwgYXJyYXksIG9iamVjdCwgc3RyaW5nIHR5cGVz
ISkKLWVudW0gRGF0YUZvcm1hdCB7Ci0gICAgRGF0YUZvcm1hdE5vbmUgPSAwLAotICAgIERhdGFG
b3JtYXRJbnRlZ2VyID0gMSwKLSAgICBEYXRhRm9ybWF0RG91YmxlID0gMiwKLSAgICBEYXRhRm9y
bWF0Qm9vbGVhbiA9IDMsCi0gICAgRGF0YUZvcm1hdENlbGwgPSA0LAotICAgIERhdGFGb3JtYXRT
dG9yYWdlID0gNSwKLSAgICBEYXRhRm9ybWF0SlMgPSA4LAotICAgIERhdGFGb3JtYXRKU0ludGVn
ZXIgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0SW50ZWdlciwKLSAgICBEYXRhRm9ybWF0SlNE
b3VibGUgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0RG91YmxlLAotICAgIERhdGFGb3JtYXRK
U0NlbGwgPSBEYXRhRm9ybWF0SlMgfCBEYXRhRm9ybWF0Q2VsbCwKLSAgICBEYXRhRm9ybWF0SlNC
b29sZWFuID0gRGF0YUZvcm1hdEpTIHwgRGF0YUZvcm1hdEJvb2xlYW4KLX07Ci0KLSNpZm5kZWYg
TkRFQlVHCi1pbmxpbmUgY29uc3QgY2hhciogZGF0YUZvcm1hdFRvU3RyaW5nKERhdGFGb3JtYXQg
ZGF0YUZvcm1hdCkKLXsKLSAgICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKLSAgICBjYXNlIERhdGFG
b3JtYXROb25lOgotICAgICAgICByZXR1cm4gIk5vbmUiOwotICAgIGNhc2UgRGF0YUZvcm1hdElu
dGVnZXI6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlciI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgotICAgICAgICByZXR1cm4gIkRvdWJsZSI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoK
LSAgICAgICAgcmV0dXJuICJDZWxsIjsKLSAgICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAg
ICAgICByZXR1cm4gIkJvb2xlYW4iOwotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAg
ICAgIHJldHVybiAiU3RvcmFnZSI7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlM6Ci0gICAgICAgIHJl
dHVybiAiSlMiOwotICAgIGNhc2UgRGF0YUZvcm1hdEpTSW50ZWdlcjoKLSAgICAgICAgcmV0dXJu
ICJKU0ludGVnZXIiOwotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgotICAgICAgICByZXR1
cm4gIkpTRG91YmxlIjsKLSAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6Ci0gICAgICAgIHJldHVy
biAiSlNDZWxsIjsKLSAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xlYW46Ci0gICAgICAgIHJldHVy
biAiSlNCb29sZWFuIjsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gIlVua25vd24iOwot
ICAgIH0KLX0KLSNlbmRpZgotCi0jaWYgVVNFKEpTVkFMVUU2NCkKLWlubGluZSBib29sIG5lZWRE
YXRhRm9ybWF0Q29udmVyc2lvbihEYXRhRm9ybWF0IGZyb20sIERhdGFGb3JtYXQgdG8pCi17Ci0g
ICAgQVNTRVJUKGZyb20gIT0gRGF0YUZvcm1hdE5vbmUpOwotICAgIEFTU0VSVCh0byAhPSBEYXRh
Rm9ybWF0Tm9uZSk7Ci0gICAgc3dpdGNoIChmcm9tKSB7Ci0gICAgY2FzZSBEYXRhRm9ybWF0SW50
ZWdlcjoKLSAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6Ci0gICAgICAgIHJldHVybiB0byAhPSBm
cm9tOwotICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgY2FzZSBEYXRhRm9ybWF0SlM6Ci0g
ICAgY2FzZSBEYXRhRm9ybWF0SlNJbnRlZ2VyOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91Ymxl
OgotICAgIGNhc2UgRGF0YUZvcm1hdEpTQ2VsbDoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0Jvb2xl
YW46Ci0gICAgICAgIHN3aXRjaCAodG8pIHsKLSAgICAgICAgY2FzZSBEYXRhRm9ybWF0SW50ZWdl
cjoKLSAgICAgICAgY2FzZSBEYXRhRm9ybWF0RG91YmxlOgotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGNhc2UgRGF0YUZvcm1hdENlbGw6Ci0gICAgICAgIGNhc2UgRGF0YUZvcm1h
dEpTOgotICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6Ci0gICAgICAgIGNhc2UgRGF0
YUZvcm1hdEpTRG91YmxlOgotICAgICAgICBjYXNlIERhdGFGb3JtYXRKU0NlbGw6Ci0gICAgICAg
IGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIC8vIFRoaXMgY2FwdHVyZXMgRGF0YUZvcm1hdEJv
b2xlYW4sIHdoaWNoIGlzIGN1cnJlbnRseSB1bnVzZWQuCi0gICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAg
ICAgIEFTU0VSVCh0byA9PSBEYXRhRm9ybWF0U3RvcmFnZSk7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICAvLyBUaGlzIGNhcHR1cmVzIERhdGFGb3JtYXRCb29s
ZWFuLCB3aGljaCBpcyBjdXJyZW50bHkgdW51c2VkLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLSNlbGlmIFVTRShKU1ZBTFVFMzJf
NjQpCi1pbmxpbmUgYm9vbCBuZWVkRGF0YUZvcm1hdENvbnZlcnNpb24oRGF0YUZvcm1hdCBmcm9t
LCBEYXRhRm9ybWF0IHRvKQotewotICAgIEFTU0VSVChmcm9tICE9IERhdGFGb3JtYXROb25lKTsK
LSAgICBBU1NFUlQodG8gIT0gRGF0YUZvcm1hdE5vbmUpOwotICAgIHN3aXRjaCAoZnJvbSkgewot
ICAgIGNhc2UgRGF0YUZvcm1hdEludGVnZXI6Ci0gICAgY2FzZSBEYXRhRm9ybWF0Q2VsbDoKLSAg
ICBjYXNlIERhdGFGb3JtYXRCb29sZWFuOgotICAgICAgICByZXR1cm4gKCh0byAmIERhdGFGb3Jt
YXRKUykgfHwgdG8gPT0gRGF0YUZvcm1hdERvdWJsZSk7Ci0gICAgY2FzZSBEYXRhRm9ybWF0RG91
YmxlOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTRG91YmxlOgotICAgICAgICByZXR1cm4gKHRvICE9
IERhdGFGb3JtYXREb3VibGUgJiYgdG8gIT0gRGF0YUZvcm1hdEpTRG91YmxlKTsKLSAgICBjYXNl
IERhdGFGb3JtYXRKUzoKLSAgICBjYXNlIERhdGFGb3JtYXRKU0ludGVnZXI6Ci0gICAgY2FzZSBE
YXRhRm9ybWF0SlNDZWxsOgotICAgIGNhc2UgRGF0YUZvcm1hdEpTQm9vbGVhbjoKLSAgICAgICAg
cmV0dXJuICghKHRvICYgRGF0YUZvcm1hdEpTKSB8fCB0byA9PSBEYXRhRm9ybWF0SlNEb3VibGUp
OwotICAgIGNhc2UgRGF0YUZvcm1hdFN0b3JhZ2U6Ci0gICAgICAgIEFTU0VSVCh0byA9PSBEYXRh
Rm9ybWF0U3RvcmFnZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0j
ZW5kaWYKLQotaW5saW5lIGJvb2wgaXNKU0Zvcm1hdChEYXRhRm9ybWF0IGZvcm1hdCwgRGF0YUZv
cm1hdCBleHBlY3RlZEZvcm1hdCkKLXsKLSAgICBBU1NFUlQoZXhwZWN0ZWRGb3JtYXQgJiBEYXRh
Rm9ybWF0SlMpOwotICAgIHJldHVybiAoZm9ybWF0IHwgRGF0YUZvcm1hdEpTKSA9PSBleHBlY3Rl
ZEZvcm1hdDsKLX0KLQotaW5saW5lIGJvb2wgaXNKU0ludGVnZXIoRGF0YUZvcm1hdCBmb3JtYXQp
Ci17Ci0gICAgcmV0dXJuIGlzSlNGb3JtYXQoZm9ybWF0LCBEYXRhRm9ybWF0SlNJbnRlZ2VyKTsK
LX0KLQotaW5saW5lIGJvb2wgaXNKU0RvdWJsZShEYXRhRm9ybWF0IGZvcm1hdCkKLXsKLSAgICBy
ZXR1cm4gaXNKU0Zvcm1hdChmb3JtYXQsIERhdGFGb3JtYXRKU0RvdWJsZSk7Ci19Ci0KLWlubGlu
ZSBib29sIGlzSlNDZWxsKERhdGFGb3JtYXQgZm9ybWF0KQotewotICAgIHJldHVybiBpc0pTRm9y
bWF0KGZvcm1hdCwgRGF0YUZvcm1hdEpTQ2VsbCk7Ci19Ci0KLWlubGluZSBib29sIGlzSlNCb29s
ZWFuKERhdGFGb3JtYXQgZm9ybWF0KQotewotICAgIHJldHVybiBpc0pTRm9ybWF0KGZvcm1hdCwg
RGF0YUZvcm1hdEpTQm9vbGVhbik7Ci19Ci0KIC8vID09PSBHZW5lcmF0aW9uSW5mbyA9PT0KIC8v
CiAvLyBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gdHJhY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIGEg
bGl2ZSB2YWx1ZXMgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4KQEAgLTMwNiw3ICsxNjEsNyBAQCBw
dWJsaWM6CiAgICAgCiAgICAgYm9vbCBpc0pTRm9ybWF0KERhdGFGb3JtYXQgZXhwZWN0ZWRGb3Jt
YXQpCiAgICAgewotICAgICAgICByZXR1cm4gREZHOjppc0pTRm9ybWF0KHJlZ2lzdGVyRm9ybWF0
KCksIGV4cGVjdGVkRm9ybWF0KSB8fCBERkc6OmlzSlNGb3JtYXQoc3BpbGxGb3JtYXQoKSwgZXhw
ZWN0ZWRGb3JtYXQpOworICAgICAgICByZXR1cm4gSlNDOjppc0pTRm9ybWF0KHJlZ2lzdGVyRm9y
bWF0KCksIGV4cGVjdGVkRm9ybWF0KSB8fCBKU0M6OmlzSlNGb3JtYXQoc3BpbGxGb3JtYXQoKSwg
ZXhwZWN0ZWRGb3JtYXQpOwogICAgIH0KICAgICAKICAgICBib29sIGlzSlNJbnRlZ2VyKCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlcjMyXzY0
LmNwcAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJ
VENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjgsNyArNTI4LDcgQEAgdm9p
ZCBKSVRDb21waWxlcjo6ZXhpdFNwZWN1bGF0aXZlV2l0aE9TUgogICAgICAgICBzdG9yZVB0cihj
YWxsZXJGcmFtZUdQUiwgcGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkpKTsKICAgICAgICAg
c3RvcmVQdHIoVHJ1c3RlZEltbVB0cihqdW1wVGFyZ2V0KSwgcGF5bG9hZEZvcigoVmlydHVhbFJl
Z2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpSZXR1
cm5QQykpKTsKICAgICAgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIHRhZ0Zv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBzdG9yZTMyKEltbTMyKGlubGluZUNh
bGxGcmFtZS0+bnVtQXJndW1lbnRzSW5jbHVkaW5nVGhpcyksIHBheWxvYWRGb3IoKFZpcnR1YWxS
ZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJn
dW1lbnRDb3VudCkpKTsKKyAgICAgICAgc3RvcmUzMihJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFy
Z3VtZW50cy5zaXplKCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxG
cmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQpKSk7CiAgICAg
ICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0ZvcigoVmlydHVhbFJlZ2lz
dGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZWUp
KSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZWUuZ2V0KCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+
c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkpKTsKICAgICB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkocmV2aXNpb24gOTkx
MTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmV4aXRTcGVj
dWxhdGl2ZVdpdGhPU1IKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihpbmxpbmVDYWxs
RnJhbWUtPmNhbGxlZS0+c2NvcGUoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5s
aW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2NvcGVDaGFpbikpKTsK
ICAgICAgICAgc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVy
RnJhbWUpKSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoanVtcFRhcmdldCksIGFk
ZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAr
IFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpKSk7Ci0gICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1Q
dHIoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGlubGluZUNhbGxGcmFtZS0+bnVtQXJndW1lbnRz
SW5jbHVkaW5nVGhpcykpKSwgYWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOworICAg
ICAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShqc051bWJlcihpbmxp
bmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdp
c3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6QXJndW1l
bnRDb3VudCkpKTsKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihpbmxpbmVDYWxsRnJh
bWUtPmNhbGxlZS5nZXQoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2Fs
bEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSkpOwogICAgIH0KICAg
ICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZpc2lvbiA5OTExNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMjAsNiArMjIwLDExIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogYXJpdGhOb2RlRmxh
Z3MKICAgICAvKiBNYXJrZXIgZm9yIGFyZ3VtZW50cyBiZWluZyBzZXQuICovXAogICAgIG1hY3Jv
KFNldEFyZ3VtZW50LCAwKSBcCiAgICAgXAorICAgIC8qIEhpbnQgdGhhdCBpbmxpbmluZyBiZWdp
bnMgaGVyZS4gTm8gY29kZSBpcyBnZW5lcmF0ZWQgZm9yIHRoaXMgbm9kZS4gSXQncyBvbmx5ICov
XAorICAgIC8qIHVzZWQgZm9yIGNvcHlpbmcgT1NSIGRhdGEgaW50byBpbmxpbmUgZnJhbWUgZGF0
YSwgdG8gc3VwcG9ydCByZWlmaWNhdGlvbiBvZiAqL1wKKyAgICAvKiBjYWxsIGZyYW1lcyBvZiBp
bmxpbmVkIGZ1bmN0aW9ucy4gKi9cCisgICAgbWFjcm8oSW5saW5lU3RhcnQsIDApIFwKKyAgICBc
CiAgICAgLyogTm9kZXMgZm9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4gKi9cCiAgICAgbWFjcm8oQml0
QW5kLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhCaXRPciwgTm9kZVJlc3VsdEludDMy
KSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3BhZ2F0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJvcGFnYXRvci5jcHAJ
KHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcm9wYWdh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDggKzYwNyw5IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgUHV0QnlPZmZzZXQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAot
ICAgICAgICAvLyBUaGlzIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgZG8gYW55dGhp
bmcuCisgICAgICAgIC8vIFRoZXNlIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgZG8g
YW55dGhpbmcuCiAgICAgICAgIGNhc2UgUGhhbnRvbToKKyAgICAgICAgY2FzZSBJbmxpbmVTdGFy
dDoKICAgICAgICAgICAgIGJyZWFrOwogI2Vsc2UKICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAko
cmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDkxLDYgKzI0OTEsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAvLyBUaGlzIGlzIGEg
bm8tb3AuCiAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKICAgICAgICAgYnJlYWs7
CisgICAgICAgIAorICAgIGNhc2UgSW5saW5lU3RhcnQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAobm9kZS5oYXNSZXN1bHQo
KSAmJiBub2RlLm11c3RHZW5lcmF0ZSgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYwLDU5ICs2MCw2IEBAIHZvaWQgVmFsdWVTb3VyY2U6OmR1bXAoRklMRSogb3V0KSBjb25z
dAogICAgICAgICBicmVhazsKICAgICB9CiB9Ci0KLXZvaWQgVmFsdWVSZWNvdmVyeTo6ZHVtcChG
SUxFKiBvdXQpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh0ZWNobmlxdWUoKSkgewotICAgIGNhc2Ug
QWxyZWFkeUluUmVnaXN0ZXJGaWxlOgotICAgICAgICBmcHJpbnRmKG91dCwgIi0iKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjoK
LSAgICAgICAgZnByaW50ZihvdXQsICIoaW50MzIpIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbDoKLSAgICAgICAgZnByaW50Zihv
dXQsICIoY2VsbCkiKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBbHJlYWR5SW5SZWdpc3Rl
ckZpbGVBc1VuYm94ZWRCb29sZWFuOgotICAgICAgICBmcHJpbnRmKG91dCwgIihib29sKSIpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluR1BSOgotICAgICAgICBmcHJpbnRmKG91dCwgIiUl
JXMiLCBHUFJJbmZvOjpkZWJ1Z05hbWUoZ3ByKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBVbmJveGVkSW50MzJJbkdQUjoKLSAgICAgICAgZnByaW50ZihvdXQsICJpbnQzMiglJSVzKSIs
IEdQUkluZm86OmRlYnVnTmFtZShncHIoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFVu
Ym94ZWRCb29sZWFuSW5HUFI6Ci0gICAgICAgIGZwcmludGYob3V0LCAiYm9vbCglJSVzKSIsIEdQ
UkluZm86OmRlYnVnTmFtZShncHIoKSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluRlBS
OgotICAgICAgICBmcHJpbnRmKG91dCwgIiUlJXMiLCBGUFJJbmZvOjpkZWJ1Z05hbWUoZnByKCkp
KTsKLSAgICAgICAgYnJlYWs7Ci0jaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBjYXNlIEluUGFp
cjoKLSAgICAgICAgZnByaW50ZihvdXQsICJwYWlyKCUlJXMsICUlJXMpIiwgR1BSSW5mbzo6ZGVi
dWdOYW1lKHRhZ0dQUigpKSwgR1BSSW5mbzo6ZGVidWdOYW1lKHBheWxvYWRHUFIoKSkpOwotICAg
ICAgICBicmVhazsKLSNlbmRpZgotICAgIGNhc2UgRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU6Ci0g
ICAgICAgIGZwcmludGYob3V0LCAiKiVkIiwgdmlydHVhbFJlZ2lzdGVyKCkpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEludDMyRGlzcGxhY2VkSW5SZWdpc3RlckZpbGU6Ci0gICAgICAgIGZw
cmludGYob3V0LCAiKmludDMyKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBEb3VibGVEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZToKLSAgICAgICAgZnBy
aW50ZihvdXQsICIqZG91YmxlKCVkKSIsIHZpcnR1YWxSZWdpc3RlcigpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBDb25zdGFudDoKLSAgICAgICAgZnByaW50ZihvdXQsICJbJXNdIiwgY29u
c3RhbnQoKS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBEb250S25v
dzoKLSAgICAgICAgZnByaW50ZihvdXQsICIhIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIGZwcmludGYob3V0LCAiPyVkIiwgdGVjaG5pcXVlKCkpOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci19CiAjZW5kaWYKIAogT1NSRXhpdDo6T1NSRXhpdChKU1ZhbHVlU291cmNl
IGpzVmFsdWVTb3VyY2UsIFZhbHVlUHJvZmlsZSogdmFsdWVQcm9maWxlLCBNYWNyb0Fzc2VtYmxl
cjo6SnVtcCBjaGVjaywgU3BlY3VsYXRpdmVKSVQqIGppdCwgdW5zaWduZWQgcmVjb3ZlcnlJbmRl
eCkKQEAgLTMxNiw4ICsyNjMsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShCYXNp
Y0Jsb2NrJgogI2lmIERGR19FTkFCTEUoREVCVUdfVkVSQk9TRSkKICAgICAgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiU3BlY3VsYXRpdmVKSVQgc2tpcHBpbmcgTm9kZSBAJWQgKGJjIyV1KSBhdCBK
SVQgb2Zmc2V0IDB4JXggICAgICIsIChpbnQpbV9jb21waWxlSW5kZXgsIG5vZGUuY29kZU9yaWdp
bi5ieXRlY29kZUluZGV4LCBtX2ppdC5kZWJ1Z09mZnNldCgpKTsKICNlbmRpZgotICAgICAgICAg
ICAgaWYgKG5vZGUub3AgPT0gU2V0TG9jYWwpCisgICAgICAgICAgICBzd2l0Y2ggKG5vZGUub3Ap
IHsKKyAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6CiAgICAgICAgICAgICAgICAgY29tcGlsZU1v
dkhpbnQobm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGNhc2Ug
SW5saW5lU3RhcnQ6IHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNh
bGxGcmFtZSA9IG5vZGUuY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7CisgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYXJndW1lbnRzU3RhcnQgPSBpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
IC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHMuc2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlY292ZXJ5ID0gY29tcHV0ZVZhbHVlUmVjb3ZlcnlGb3Io
bV92YXJpYWJsZXNbYXJndW1lbnRzU3RhcnQgKyBpXSk7CisgICAgICAgICAgICAgICAgICAgIC8v
IFRoZSByZWNvdmVyeSBjYW5ub3QgcG9pbnQgdG8gcmVnaXN0ZXJzLCBzaW5jZSB0aGUgY2FsbCBm
cmFtZSByZWlmaWNhdGlvbiBpc24ndAorICAgICAgICAgICAgICAgICAgICAvLyBhcyBzbWFydCBh
cyBPU1IsIHNvIGl0IGNhbid0IGhhbmRsZSB0aGF0LiBUaGUgZXhjZXB0aW9uIGlzIHRoZSB0aGlz
IGFyZ3VtZW50LAorICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCB3ZSBkb24ndCByZWFsbHkg
bmVlZCB0byBiZSBhYmxlIHRvIHJlY292ZXIuCisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
aSB8fCAhcmVjb3ZlcnkuaXNJblJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAgICAgaW5s
aW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaV0gPSByZWNvdmVyeTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgCiAjaWYgREZHX0VOQUJMRShERUJV
R19WRVJCT1NFKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuaAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiVmFsdWVSZWNvdmVyeS5oIgogI2luY2x1
ZGUgPGRmZy9ERkdBYnN0cmFjdFN0YXRlLmg+CiAjaW5jbHVkZSA8ZGZnL0RGR0pJVENvZGVHZW5l
cmF0b3IuaD4KIApAQCAtMTQ1LDE5NCArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBOb2RlSW5kZXgg
bV9ub2RlSW5kZXg7CiB9OwogICAgIAotLy8gRGVzY3JpYmVzIGhvdyB0byByZWNvdmVyIGEgZ2l2
ZW4gYnl0ZWNvZGUgdmlydHVhbCByZWdpc3RlciBhdCBhIGdpdmVuCi0vLyBjb2RlIHBvaW50Lgot
ZW51bSBWYWx1ZVJlY292ZXJ5VGVjaG5pcXVlIHsKLSAgICAvLyBJdCdzIGFscmVhZHkgaW4gdGhl
IHJlZ2lzdGVyIGZpbGUgYXQgdGhlIHJpZ2h0IGxvY2F0aW9uLgotICAgIEFscmVhZHlJblJlZ2lz
dGVyRmlsZSwKLSAgICAvLyBJdCdzIGFscmVhZHkgaW4gdGhlIHJlZ2lzdGVyIGZpbGUgYnV0IHVu
Ym94ZWQuCi0gICAgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkSW50MzIsCi0gICAgQWxy
ZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbCwKLSAgICBBbHJlYWR5SW5SZWdpc3RlckZp
bGVBc1VuYm94ZWRCb29sZWFuLAotICAgIC8vIEl0J3MgaW4gYSByZWdpc3Rlci4KLSAgICBJbkdQ
UiwKLSAgICBVbmJveGVkSW50MzJJbkdQUiwKLSAgICBVbmJveGVkQm9vbGVhbkluR1BSLAotI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgSW5QYWlyLAotI2VuZGlmCi0gICAgSW5GUFIsCi0gICAg
Ly8gSXQncyBpbiB0aGUgcmVnaXN0ZXIgZmlsZSwgYnV0IGF0IGEgZGlmZmVyZW50IGxvY2F0aW9u
LgotICAgIERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlLAotICAgIC8vIEl0J3MgaW4gdGhlIHJlZ2lz
dGVyIGZpbGUsIGF0IGEgZGlmZmVyZW50IGxvY2F0aW9uLCBhbmQgaXQncyB1bmJveGVkLgotICAg
IEludDMyRGlzcGxhY2VkSW5SZWdpc3RlckZpbGUsCi0gICAgRG91YmxlRGlzcGxhY2VkSW5SZWdp
c3RlckZpbGUsCi0gICAgLy8gSXQncyBhIGNvbnN0YW50LgotICAgIENvbnN0YW50LAotICAgIC8v
IERvbid0IGtub3cgaG93IHRvIHJlY292ZXIgaXQuCi0gICAgRG9udEtub3cKLX07Ci0KLWNsYXNz
IFZhbHVlUmVjb3ZlcnkgewotcHVibGljOgotICAgIFZhbHVlUmVjb3ZlcnkoKQotICAgICAgICA6
IG1fdGVjaG5pcXVlKERvbnRLbm93KQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZh
bHVlUmVjb3ZlcnkgYWxyZWFkeUluUmVnaXN0ZXJGaWxlKCkKLSAgICB7Ci0gICAgICAgIFZhbHVl
UmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBBbHJlYWR5SW5S
ZWdpc3RlckZpbGU7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHN0
YXRpYyBWYWx1ZVJlY292ZXJ5IGFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEludDMyKCkK
LSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQubV90
ZWNobmlxdWUgPSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRJbnQzMjsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgYWxy
ZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQ2VsbCgpCi0gICAgewotICAgICAgICBWYWx1ZVJl
Y292ZXJ5IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVn
aXN0ZXJGaWxlQXNVbmJveGVkQ2VsbDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0g
ICAgCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgYWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJv
eGVkQm9vbGVhbigpCi0gICAgewotICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVkQm9v
bGVhbjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZh
bHVlUmVjb3ZlcnkgaW5HUFIoR1BSUmVnIGdwciwgRGF0YUZvcm1hdCBkYXRhRm9ybWF0KQotICAg
IHsKLSAgICAgICAgQVNTRVJUKGRhdGFGb3JtYXQgIT0gRGF0YUZvcm1hdE5vbmUpOwotI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIEFTU0VSVChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJ
bnRlZ2VyIHx8IGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdENlbGwgfHwgZGF0YUZvcm1hdCA9PSBE
YXRhRm9ybWF0Qm9vbGVhbik7Ci0jZW5kaWYKLSAgICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7
Ci0gICAgICAgIGlmIChkYXRhRm9ybWF0ID09IERhdGFGb3JtYXRJbnRlZ2VyKQotICAgICAgICAg
ICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gVW5ib3hlZEludDMySW5HUFI7Ci0gICAgICAgIGVsc2Ug
aWYgKGRhdGFGb3JtYXQgPT0gRGF0YUZvcm1hdEJvb2xlYW4pCi0gICAgICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBVbmJveGVkQm9vbGVhbkluR1BSOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICByZXN1bHQubV90ZWNobmlxdWUgPSBJbkdQUjsKLSAgICAgICAgcmVzdWx0Lm1fc291cmNl
LmdwciA9IGdwcjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0jaWYgVVNF
KEpTVkFMVUUzMl82NCkKLSAgICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBpblBhaXIoR1BSUmVnIHRh
Z0dQUiwgR1BSUmVnIHBheWxvYWRHUFIpCi0gICAgewotICAgICAgICBWYWx1ZVJlY292ZXJ5IHJl
c3VsdDsKLSAgICAgICAgcmVzdWx0Lm1fdGVjaG5pcXVlID0gSW5QYWlyOwotICAgICAgICByZXN1
bHQubV9zb3VyY2UucGFpci50YWdHUFIgPSB0YWdHUFI7Ci0gICAgICAgIHJlc3VsdC5tX3NvdXJj
ZS5wYWlyLnBheWxvYWRHUFIgPSBwYXlsb2FkR1BSOwotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLSNlbmRpZgotCi0gICAgc3RhdGljIFZhbHVlUmVjb3ZlcnkgaW5GUFIoRlBSUmVnIGZw
cikKLSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVzdWx0OwotICAgICAgICByZXN1bHQu
bV90ZWNobmlxdWUgPSBJbkZQUjsKLSAgICAgICAgcmVzdWx0Lm1fc291cmNlLmZwciA9IGZwcjsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgc3RhdGljIFZhbHVlUmVj
b3ZlcnkgZGlzcGxhY2VkSW5SZWdpc3RlckZpbGUoVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWcs
IERhdGFGb3JtYXQgZGF0YUZvcm1hdCkKLSAgICB7Ci0gICAgICAgIFZhbHVlUmVjb3ZlcnkgcmVz
dWx0OwotICAgICAgICBzd2l0Y2ggKGRhdGFGb3JtYXQpIHsKLSAgICAgICAgY2FzZSBEYXRhRm9y
bWF0SW50ZWdlcjoKLSAgICAgICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IEludDMyRGlzcGxh
Y2VkSW5SZWdpc3RlckZpbGU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIERhdGFGb3JtYXREb3VibGU6Ci0gICAgICAgICAgICByZXN1bHQubV90ZWNobmlx
dWUgPSBEb3VibGVEaXNwbGFjZWRJblJlZ2lzdGVyRmlsZTsKLSAgICAgICAgICAgIGJyZWFrOwot
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBBU1NFUlQoZGF0YUZvcm1hdCAhPSBEYXRh
Rm9ybWF0Tm9uZSAmJiBkYXRhRm9ybWF0ICE9IERhdGFGb3JtYXRTdG9yYWdlKTsKLSAgICAgICAg
ICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9IERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0Lm1fc291cmNlLnZpcnR1YWxS
ZWcgPSB2aXJ0dWFsUmVnOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAg
ICBzdGF0aWMgVmFsdWVSZWNvdmVyeSBjb25zdGFudChKU1ZhbHVlIHZhbHVlKQotICAgIHsKLSAg
ICAgICAgVmFsdWVSZWNvdmVyeSByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5tX3RlY2huaXF1ZSA9
IENvbnN0YW50OwotICAgICAgICByZXN1bHQubV9zb3VyY2UuY29uc3RhbnQgPSBKU1ZhbHVlOjpl
bmNvZGUodmFsdWUpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBW
YWx1ZVJlY292ZXJ5VGVjaG5pcXVlIHRlY2huaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGVjaG5p
cXVlOyB9Ci0gICAgCi0gICAgR1BSUmVnIGdwcigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5HUFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEludDMySW5H
UFIgfHwgbV90ZWNobmlxdWUgPT0gVW5ib3hlZEJvb2xlYW5JbkdQUik7Ci0gICAgICAgIHJldHVy
biBtX3NvdXJjZS5ncHI7Ci0gICAgfQotICAgIAotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAg
R1BSUmVnIHRhZ0dQUigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUg
PT0gSW5QYWlyKTsKLSAgICAgICAgcmV0dXJuIG1fc291cmNlLnBhaXIudGFnR1BSOwotICAgIH0K
LSAgICAKLSAgICBHUFJSZWcgcGF5bG9hZEdQUigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV90ZWNobmlxdWUgPT0gSW5QYWlyKTsKLSAgICAgICAgcmV0dXJuIG1fc291cmNlLnBhaXIu
cGF5bG9hZEdQUjsKLSAgICB9Ci0jZW5kaWYKLSAgICAKLSAgICBGUFJSZWcgZnByKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJbkZQUik7Ci0gICAgICAgIHJl
dHVybiBtX3NvdXJjZS5mcHI7Ci0gICAgfQotICAgIAotICAgIFZpcnR1YWxSZWdpc3RlciB2aXJ0
dWFsUmVnaXN0ZXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdGVjaG5pcXVlID09
IERpc3BsYWNlZEluUmVnaXN0ZXJGaWxlIHx8IG1fdGVjaG5pcXVlID09IEludDMyRGlzcGxhY2Vk
SW5SZWdpc3RlckZpbGUgfHwgbV90ZWNobmlxdWUgPT0gRG91YmxlRGlzcGxhY2VkSW5SZWdpc3Rl
ckZpbGUpOwotICAgICAgICByZXR1cm4gbV9zb3VyY2UudmlydHVhbFJlZzsKLSAgICB9Ci0gICAg
Ci0gICAgSlNWYWx1ZSBjb25zdGFudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90
ZWNobmlxdWUgPT0gQ29uc3RhbnQpOwotICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZGVjb2RlKG1f
c291cmNlLmNvbnN0YW50KTsKLSAgICB9Ci0gICAgCi0jaWZuZGVmIE5ERUJVRwotICAgIHZvaWQg
ZHVtcChGSUxFKiBvdXQpIGNvbnN0OwotI2VuZGlmCi0gICAgCi1wcml2YXRlOgotICAgIFZhbHVl
UmVjb3ZlcnlUZWNobmlxdWUgbV90ZWNobmlxdWU7Ci0gICAgdW5pb24gewotICAgICAgICBHUFJS
ZWcgZ3ByOwotICAgICAgICBGUFJSZWcgZnByOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAg
ICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICBHUFJSZWcgdGFnR1BSOwotICAgICAgICAgICAgR1BS
UmVnIHBheWxvYWRHUFI7Ci0gICAgICAgIH0gcGFpcjsKLSNlbmRpZgotICAgICAgICBWaXJ0dWFs
UmVnaXN0ZXIgdmlydHVhbFJlZzsKLSAgICAgICAgRW5jb2RlZEpTVmFsdWUgY29uc3RhbnQ7Ci0g
ICAgfSBtX3NvdXJjZTsKLX07Ci0KIC8vID09PSBPU1JFeGl0ID09PQogLy8KIC8vIFRoaXMgc3Ry
dWN0dXJlIGRlc2NyaWJlcyBob3cgdG8gZXhpdCB0aGUgc3BlY3VsYXRpdmUgcGF0aCBieQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdWYXJpYWJsZUFjY2Vzc0RhdGEuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlQWNjZXNzRGF0
YS5oCShyZXZpc2lvbiA5OTExNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFy
aWFibGVBY2Nlc3NEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwxMyBAQAogI2lm
bmRlZiBERkdWYXJpYWJsZUFjY2Vzc0RhdGFfaAogI2RlZmluZSBERkdWYXJpYWJsZUFjY2Vzc0Rh
dGFfaAogCisjaW5jbHVkZSAiUHJlZGljdGVkVHlwZS5oIgorI2luY2x1ZGUgIlZpcnR1YWxSZWdp
c3Rlci5oIgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgotCi0jaWYgRU5BQkxFKERGR19KSVQp
Ci0KICNpbmNsdWRlIDx3dGYvVW5pb25GaW5kLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIAotLy8gVHlwZSBmb3IgYSB2aXJ0dWFsIHJlZ2lzdGVyIG51bWJlciAoc3BpbGwg
bG9jYXRpb24pLgotLy8gVXNpbmcgYW4gZW51bSB0byBtYWtlIHRoaXMgdHlwZS1jaGVja2VkIGF0
IGNvbXBpbGUgdGltZSwgdG8gYXZlcnQgcHJvZ3JhbW1lciBlcnJvcnMuCi1lbnVtIFZpcnR1YWxS
ZWdpc3RlciB7IEludmFsaWRWaXJ0dWFsUmVnaXN0ZXIgPSAtMSB9OwotQ09NUElMRV9BU1NFUlQo
c2l6ZW9mKFZpcnR1YWxSZWdpc3RlcikgPT0gc2l6ZW9mKGludCksIFZpcnR1YWxSZWdpc3Rlcl9p
c18zMmJpdCk7Ci0KIGNsYXNzIFZhcmlhYmxlQWNjZXNzRGF0YTogcHVibGljIFVuaW9uRmluZDxW
YXJpYWJsZUFjY2Vzc0RhdGE+IHsKIHB1YmxpYzoKICAgICBWYXJpYWJsZUFjY2Vzc0RhdGEoKQpA
QCAtODYsNiArODAsNCBAQCBwcml2YXRlOgogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCiAK
LSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQogI2VuZGlmIC8vIERGR1ZhcmlhYmxlQWNjZXNz
RGF0YV9oCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvQ2Fs
bEZyYW1lLmNwcAkocmV2aXNpb24gOTkxMTYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50
ZXJwcmV0ZXIvQ2FsbEZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDcgKzExMCw3IEBA
IENhbGxGcmFtZSogQ2FsbEZyYW1lOjp0cnVlQ2FsbGVyRnJhbWUoKQogICAgICAgICAgICAgaW5s
aW5lZENhbGxlci0+c2V0Q2FsbGVyRnJhbWUobWFjaGluZUNhbGxlcik7CiAgICAgICAgIAogICAg
ICAgICBpbmxpbmVkQ2FsbGVyLT5zZXRJbmxpbmVDYWxsRnJhbWUoaW5saW5lQ2FsbEZyYW1lKTsK
LSAgICAgICAgaW5saW5lZENhbGxlci0+c2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW5s
aW5lQ2FsbEZyYW1lLT5udW1Bcmd1bWVudHNJbmNsdWRpbmdUaGlzKTsKKyAgICAgICAgaW5saW5l
ZENhbGxlci0+c2V0QXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMoaW5saW5lQ2FsbEZyYW1lLT5h
cmd1bWVudHMuc2l6ZSgpKTsKICAgICAgICAgaW5saW5lZENhbGxlci0+c2V0Q2FsbGVlKGNhbGxl
ZUFzRnVuY3Rpb24pOwogICAgICAgICAKICAgICAgICAgaW5saW5lQ2FsbEZyYW1lID0gbmV4dElu
bGluZUNhbGxGcmFtZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9D
YWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDk5MTE2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ludGVycHJldGVyL0NhbGxGcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNyArMTA1LDE2
IEBAIG5hbWVzcGFjZSBKU0MgIHsKICAgICAgICAgUmV0dXJuQWRkcmVzc1B0ciByZXR1cm5QQygp
IGNvbnN0IHsgcmV0dXJuIFJldHVybkFkZHJlc3NQdHIodGhpc1tSZWdpc3RlckZpbGU6OlJldHVy
blBDXS52UEMoKSk7IH0KICNlbmRpZgogI2lmIEVOQUJMRShERkdfSklUKQotICAgICAgICBJbmxp
bmVDYWxsRnJhbWUqIGlubGluZUNhbGxGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIHRoaXNbUmVnaXN0
ZXJGaWxlOjpSZXR1cm5QQ10uaW5saW5lQ2FsbEZyYW1lKCk7IH0KKyAgICAgICAgSW5saW5lQ2Fs
bEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUoKSBjb25zdCB7IHJldHVybiB0aGlzW1JlZ2lzdGVyRmls
ZTo6UmV0dXJuUENdLmFzSW5saW5lQ2FsbEZyYW1lKCk7IH0KKyNlbHNlCisgICAgICAgIC8vIFRo
aXMgd2lsbCBuZXZlciBiZSBjYWxsZWQgaWYgIUVOQUJMRShERkdfSklUKSBzaW5jZSBhbGwgY2Fs
bHMgc2hvdWxkIGJlIGd1YXJkZWQgYnkKKyAgICAgICAgLy8gaXNJbmxpbmVDYWxsRnJhbWUoKS4g
QnV0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIHdyaXRlIGNvZGUgd2l0aG91dCBoYXZpbmcgYSBidW5j
aCBvZgorICAgICAgICAvLyAjaWYncywgd2UgbWFrZSBhIGR1bW15IGltcGxlbWVudGF0aW9uIGF2
YWlsYWJsZSBhbnl3YXkuCisgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1l
KCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKElOVEVS
UFJFVEVSKQogICAgICAgICBJbnN0cnVjdGlvbiogcmV0dXJuVlBDKCkgY29uc3QgeyByZXR1cm4g
dGhpc1tSZWdpc3RlckZpbGU6OlJldHVyblBDXS52UEMoKTsgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgJKHJldmlzaW9uIDk5MTE2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcxLDcgKzcxLDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKiBwcm9wZXJ0eU5hbWVJdGVyYXRvcigpIGNvbnN0OwogICAgICAgICBTY29w
ZUNoYWluTm9kZSogc2NvcGVDaGFpbigpIGNvbnN0OwogICAgICAgICBJbnN0cnVjdGlvbiogdlBD
KCkgY29uc3Q7Ci0gICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lKCkgY29u
c3Q7CisgICAgICAgIElubGluZUNhbGxGcmFtZSogYXNJbmxpbmVDYWxsRnJhbWUoKSBjb25zdDsK
KyAgICAgICAgaW50MzJfdCB1bmJveGVkSW50MzIoKSBjb25zdDsKKyAgICAgICAgYm9vbCB1bmJv
eGVkQm9vbGVhbigpIGNvbnN0OworICAgICAgICBKU0NlbGwqIHVuYm94ZWRDZWxsKCkgY29uc3Q7
CiAKICAgICAgICAgc3RhdGljIFJlZ2lzdGVyIHdpdGhJbnQoaW50MzJfdCBpKQogICAgICAgICB7
CkBAIC04OCw2ICs5MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2s7CiAgICAgICAgICAgICBJbnN0cnVjdGlvbiogdlBDOwogICAgICAgICAgICAg
SW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWU7CisgICAgICAgICAgICBFbmNvZGVkVmFs
dWVEZXNjcmlwdG9yIGVuY29kZWRWYWx1ZTsKICAgICAgICAgfSB1OwogICAgIH07CiAKQEAgLTE2
NSwxMCArMTY5LDI5IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1cm4gdS52UEM7CiAg
ICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBJbmxpbmVDYWxsRnJhbWUqIFJlZ2lzdGVyOjppbmxp
bmVDYWxsRnJhbWUoKSBjb25zdAorICAgIEFMV0FZU19JTkxJTkUgSW5saW5lQ2FsbEZyYW1lKiBS
ZWdpc3Rlcjo6YXNJbmxpbmVDYWxsRnJhbWUoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IHUuaW5saW5lQ2FsbEZyYW1lOwogICAgIH0KKyAgICAgICAgCisgICAgQUxXQVlTX0lOTElORSBp
bnQzMl90IFJlZ2lzdGVyOjp1bmJveGVkSW50MzIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHUuZW5jb2RlZFZhbHVlLmFzQml0cy5wYXlsb2FkOworICAgIH0KKworICAgIEFMV0FZU19J
TkxJTkUgYm9vbCBSZWdpc3Rlcjo6dW5ib3hlZEJvb2xlYW4oKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuICEhdS5lbmNvZGVkVmFsdWUuYXNCaXRzLnBheWxvYWQ7CisgICAgfQorCisgICAg
QUxXQVlTX0lOTElORSBKU0NlbGwqIFJlZ2lzdGVyOjp1bmJveGVkQ2VsbCgpIGNvbnN0CisgICAg
eworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgIHJldHVybiB1LmVuY29kZWRWYWx1ZS5wdHI7
CisjZWxzZQorICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEpTQ2VsbCo+KHUuZW5jb2RlZFZh
bHVlLmFzQml0cy5wYXlsb2FkKTsKKyNlbmRpZgorICAgIH0KIAogfSAvLyBuYW1lc3BhY2UgSlND
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCShyZXZp
c2lvbiA5OTExNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTksOCArMjU5LDQzIEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgc2l6ZV90IHJlZ2lzdGVyQXJyYXlTaXplID0gZC0+bnVtUGFyYW1ldGVyczsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFVua25vd24+
ID4gcmVnaXN0ZXJBcnJheSA9IGFkb3B0QXJyYXlQdHIobmV3IFdyaXRlQmFycmllcjxVbmtub3du
PltyZWdpc3RlckFycmF5U2l6ZV0pOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCByZWdpc3RlckFycmF5U2l6ZTsgKytpKQotICAgICAgICAgICAgICAgIHJlZ2lzdGVyQXJyYXlb
aV0uc2V0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCB0aGlzLCBjYWxsRnJhbWUtPnJlZ2lzdGVy
cygpW2kgLSByZWdpc3Rlck9mZnNldF0uanNWYWx1ZSgpKTsKKyAgICAgICAgICAgIGlmIChjYWxs
RnJhbWUtPmlzSW5saW5lQ2FsbEZyYW1lKCkpIHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxs
RnJhbWUqIGlubGluZUNhbGxGcmFtZSA9IGNhbGxGcmFtZS0+aW5saW5lQ2FsbEZyYW1lKCk7Cisg
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3RlckFycmF5U2l6ZTsg
KytpKSB7CisgICAgICAgICAgICAgICAgICAgIFZhbHVlUmVjb3ZlcnkmIHJlY292ZXJ5ID0gaW5s
aW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaSArIDFdOworICAgICAgICAgICAgICAgICAgICAvLyBJ
biB0aGUgZnV0dXJlIHdlJ2xsIHN1cHBvcnQgZGlzcGxhY2VkIHJlY292ZXJpZXMgKGluZGljYXRp
bmcgdGhhdCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gYXJndW1lbnQgd2FzIGZsdXNoZWQg
dG8gYSBkaWZmZXJlbnQgbG9jYXRpb24pLCBidXQgZm9yIG5vdyB3ZSBkb24ndCBkbworICAgICAg
ICAgICAgICAgICAgICAvLyB0aGF0IHNvIHRoaXMgY29kZSB3aWxsIGZhaWwgaWYgdGhhdCB3ZXJl
IHRvIGhhcHBlbi4gT24gdGhlIG90aGVyIGhhbmQsCisgICAgICAgICAgICAgICAgICAgIC8vIGl0
J3MgbXVjaCBsZXNzIGxpa2VseSB0aGF0IHdlJ2xsIHN1cHBvcnQgaW4tcmVnaXN0ZXIgcmVjb3Zl
cmllcyBzaW5jZQorICAgICAgICAgICAgICAgICAgICAvLyB0aGlzIGNvZGUgZG9lcyBub3QgKGVh
c2lseSkgaGF2ZSBhY2Nlc3MgdG8gcmVnaXN0ZXJzLgorICAgICAgICAgICAgICAgICAgICBKU1Zh
bHVlIHZhbHVlOworICAgICAgICAgICAgICAgICAgICBSZWdpc3RlciogbG9jYXRpb24gPSBjYWxs
RnJhbWUtPnJlZ2lzdGVycygpICsgaSAtIHJlZ2lzdGVyT2Zmc2V0OworICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2ggKHJlY292ZXJ5LnRlY2huaXF1ZSgpKSB7CisgICAgICAgICAgICAgICAgICAg
IGNhc2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlOgorICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWUgPSBsb2NhdGlvbi0+anNWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNVbmJveGVk
SW50MzI6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IGpzTnVtYmVyKGxvY2F0aW9u
LT51bmJveGVkSW50MzIoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRDZWxsOgor
ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBsb2NhdGlvbi0+dW5ib3hlZENlbGwoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNl
IEFscmVhZHlJblJlZ2lzdGVyRmlsZUFzVW5ib3hlZEJvb2xlYW46CisgICAgICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IGpzQm9vbGVhbihsb2NhdGlvbi0+dW5ib3hlZEJvb2xlYW4oKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBD
b25zdGFudDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gcmVjb3ZlcnkuY29uc3Rh
bnQoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICByZWdpc3RlckFycmF5W2ldLnNldChjYWxsRnJhbWUtPmdsb2Jh
bERhdGEoKSwgdGhpcywgdmFsdWUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCByZWdpc3RlckFy
cmF5U2l6ZTsgKytpKQorICAgICAgICAgICAgICAgICAgICByZWdpc3RlckFycmF5W2ldLnNldChj
YWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgdGhpcywgY2FsbEZyYW1lLT5yZWdpc3RlcnMoKVtpIC0g
cmVnaXN0ZXJPZmZzZXRdLmpzVmFsdWUoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBk
LT5yZWdpc3RlcnMgPSByZWdpc3RlckFycmF5LmdldCgpICsgZC0+bnVtUGFyYW1ldGVycyArIFJl
Z2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAgICAgICAgICAgIGQtPnJlZ2lzdGVy
QXJyYXkgPSByZWdpc3RlckFycmF5LnJlbGVhc2UoKTsKICAgICAgICAgfQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gOTkxMzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOSBAQAorMjAxMS0xMS0wMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29t
PgorCisgICAgICAgIERGRyBpbmxpbmluZyBicmVha3MgZnVuY3Rpb24uYXJndW1lbnRzW3NvbWV0
aGluZ10gaWYgdGhlIGFyZ3VtZW50IGJlaW5nCisgICAgICAgIHJldHJpZXZlZCB3YXMgc3ViamVj
dGVkIHRvIERGRydzIHVuYm94aW5nIG9wdGltaXphdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDM2ICAgICAgICAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvanMvZGZnLWlubGluZS1h
cmd1bWVudHMtaW50MzItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2Rm
Zy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMv
c2NyaXB0LXRlc3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmpzOiBBZGRlZC4KKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChiYXIpOgorICAgICAgICAoYmF6KToKKyAgICAgICAgKGFyZ3NU
b1N0cik6CisKIDIwMTEtMTEtMDIgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBBZGQgbmV3IFN0b3JhZ2VJbmZvIHRlc3QgdG8gdGhlIHJlc3BlY3RpdmUgc2tp
cCBsaXN0cy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWlubGluZS1hcmd1bWVudHMt
aW50MzItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvZGZn
LWlubGluZS1hcmd1bWVudHMtaW50MzItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjA5IEBACitUaGlzIHRlc3RzIHRoYXQgaW5saW5pbmcg
cHJlc2VydmVzIGZ1bmN0aW9uLmFyZ3VtZW50cyBmdW5jdGlvbmFsaXR5IGlmIHRoZSBhcmd1bWVu
dHMgd2VyZSByZXByZXNlbnRlZCBhcyB1bmJveGVkIGludDMyLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxLCAyLCAzIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyLCAz
LCA0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAzLCA0LCA1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0LCA1LCA2IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA1LCA2LCA3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2LCA3LCA4IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA3LCA4LCA5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4LCA5LCAxMCIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOSwgMTAs
IDExIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMCwgMTEsIDEyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMSwgMTIsIDEz
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxMiwgMTMsIDE0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMywgMTQsIDE1Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNCwgMTUsIDE2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNSwgMTYsIDE3IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxNiwgMTcsIDE4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNywgMTgsIDE5IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxOCwgMTksIDIwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOSwgMjAsIDIxIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAyMCwgMjEsIDIyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMSwgMjIsIDIzIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAyMiwgMjMsIDI0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMywgMjQsIDI1IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAy
NCwgMjUsIDI2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyNSwgMjYsIDI3IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyNiwg
MjcsIDI4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAyNywgMjgsIDI5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyOCwgMjks
IDMwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAyOSwgMzAsIDMxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzMCwgMzEsIDMy
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAzMSwgMzIsIDMzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzMiwgMzMsIDM0Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAzMywgMzQsIDM1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzNCwgMzUsIDM2IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAzNSwgMzYsIDM3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzNiwgMzcsIDM4IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAzNywgMzgsIDM5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAzOCwgMzksIDQwIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAzOSwgNDAsIDQxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0MCwgNDEsIDQyIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA0MSwgNDIsIDQzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0MiwgNDMsIDQ0IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0
MywgNDQsIDQ1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0NCwgNDUsIDQ2IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0NSwg
NDYsIDQ3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA0NiwgNDcsIDQ4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0NywgNDgs
IDQ5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA0OCwgNDksIDUwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA0OSwgNTAsIDUx
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA1MCwgNTEsIDUyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1MSwgNTIsIDUzIgor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA1MiwgNTMsIDU0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1MywgNTQsIDU1IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA1NCwgNTUsIDU2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1NSwgNTYsIDU3IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA1NiwgNTcsIDU4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1NywgNTgsIDU5IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA1OCwgNTksIDYwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA1OSwgNjAsIDYxIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA2MCwgNjEsIDYyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2MSwgNjIsIDYzIgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2
MiwgNjMsIDY0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2MywgNjQsIDY1IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2NCwg
NjUsIDY2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA2NSwgNjYsIDY3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2NiwgNjcs
IDY4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA2NywgNjgsIDY5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA2OCwgNjksIDcw
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA2OSwgNzAsIDcxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3MCwgNzEsIDcyIgor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA3MSwgNzIsIDczIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3MiwgNzMsIDc0IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA3MywgNzQsIDc1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3NCwgNzUsIDc2IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA3NSwgNzYsIDc3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3NiwgNzcsIDc4IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA3NywgNzgsIDc5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA3OCwgNzksIDgwIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA3OSwgODAsIDgxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4MCwgODEsIDgyIgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4
MSwgODIsIDgzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4MiwgODMsIDg0IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4Mywg
ODQsIDg1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiA4NCwgODUsIDg2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4NSwgODYs
IDg3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiA4NiwgODcsIDg4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4NywgODgsIDg5
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiA4OCwgODksIDkwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA4OSwgOTAsIDkxIgor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiA5MCwgOTEsIDkyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5MSwgOTIsIDkzIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiA5MiwgOTMsIDk0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5MywgOTQsIDk1IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiA5NCwgOTUsIDk2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5NSwgOTYsIDk3IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiA5NiwgOTcsIDk4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiA5NywgOTgsIDk5IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiA5OCwgOTksIDEwMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTksIDEwMCwgMTAxIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxMDAsIDEwMSwgMTAyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDEsIDEwMiwgMTAzIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxMDIsIDEwMywgMTA0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDMsIDEwNCwgMTA1IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxMDQsIDEwNSwgMTA2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDUsIDEwNiwgMTA3IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxMDYsIDEwNywgMTA4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDcsIDEwOCwgMTA5Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxMDgsIDEwOSwgMTEwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMDksIDExMCwgMTEx
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxMTAsIDExMSwgMTEyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTEsIDExMiwg
MTEzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMTIsIDExMywgMTE0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTMsIDEx
NCwgMTE1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTQsIDExNSwgMTE2IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTUs
IDExNiwgMTE3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTYsIDExNywgMTE4IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
MTcsIDExOCwgMTE5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMTgsIDExOSwgMTIwIgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxMTksIDEyMCwgMTIxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjAsIDEyMSwgMTIyIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxMjEsIDEyMiwgMTIzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjIsIDEyMywgMTI0IgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxMjMsIDEyNCwgMTI1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjQsIDEyNSwgMTI2IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxMjUsIDEyNiwgMTI3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjYsIDEyNywgMTI4Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxMjcsIDEyOCwgMTI5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMjgsIDEyOSwgMTMw
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxMjksIDEzMCwgMTMxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzAsIDEzMSwg
MTMyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxMzEsIDEzMiwgMTMzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzIsIDEz
MywgMTM0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzMsIDEzNCwgMTM1IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzQs
IDEzNSwgMTM2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzUsIDEzNiwgMTM3IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
MzYsIDEzNywgMTM4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzcsIDEzOCwgMTM5IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxMzgsIDEzOSwgMTQwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxMzksIDE0MCwgMTQxIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxNDAsIDE0MSwgMTQyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDEsIDE0MiwgMTQzIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxNDIsIDE0MywgMTQ0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDMsIDE0NCwgMTQ1IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxNDQsIDE0NSwgMTQ2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDUsIDE0NiwgMTQ3Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNDYsIDE0NywgMTQ4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDcsIDE0OCwgMTQ5
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxNDgsIDE0OSwgMTUwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNDksIDE1MCwg
MTUxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxNTAsIDE1MSwgMTUyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTEsIDE1
MiwgMTUzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTIsIDE1MywgMTU0IgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTMs
IDE1NCwgMTU1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTQsIDE1NSwgMTU2IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
NTUsIDE1NiwgMTU3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTYsIDE1NywgMTU4IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxNTcsIDE1OCwgMTU5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNTgsIDE1OSwgMTYwIgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxNTksIDE2MCwgMTYxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjAsIDE2MSwgMTYyIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxNjEsIDE2MiwgMTYzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjIsIDE2MywgMTY0IgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxNjMsIDE2NCwgMTY1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjQsIDE2NSwgMTY2Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxNjUsIDE2NiwgMTY3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjYsIDE2NywgMTY4
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxNjcsIDE2OCwgMTY5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNjgsIDE2OSwg
MTcwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxNjksIDE3MCwgMTcxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzAsIDE3
MSwgMTcyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzEsIDE3MiwgMTczIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzIs
IDE3MywgMTc0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzMsIDE3NCwgMTc1IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
NzQsIDE3NSwgMTc2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzUsIDE3NiwgMTc3IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxNzYsIDE3NywgMTc4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzcsIDE3OCwgMTc5IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxNzgsIDE3OSwgMTgwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxNzksIDE4MCwgMTgxIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxODAsIDE4MSwgMTgyIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODEsIDE4MiwgMTgzIgorUEFT
UyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBB
cmd1bWVudHNdOiAxODIsIDE4MywgMTg0IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9f
aSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODMsIDE4NCwgMTg1Igor
UEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVj
dCBBcmd1bWVudHNdOiAxODQsIDE4NSwgMTg2IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEs
IF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODUsIDE4NiwgMTg3
IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29i
amVjdCBBcmd1bWVudHNdOiAxODYsIDE4NywgMTg4IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSAr
IDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODcsIDE4OCwg
MTg5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAi
W29iamVjdCBBcmd1bWVudHNdOiAxODgsIDE4OSwgMTkwIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9f
aSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxODksIDE5
MCwgMTkxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBp
cyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTAsIDE5MSwgMTkyIgorUEFTUyBhcmdzVG9TdHIoYmF6
KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTEs
IDE5MiwgMTkzIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMp
KSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTIsIDE5MywgMTk0IgorUEFTUyBhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAx
OTMsIDE5NCwgMTk1IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSAr
IDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTQsIDE5NSwgMTk2IgorUEFTUyBhcmdzVG9T
dHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNd
OiAxOTUsIDE5NiwgMTk3IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9f
aSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTYsIDE5NywgMTk4IgorUEFTUyBhcmdz
VG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVu
dHNdOiAxOTcsIDE5OCwgMTk5IgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIs
IF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAxOTgsIDE5OSwgMjAwIgorUEFTUyBh
cmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1
bWVudHNdOiAxOTksIDIwMCwgMjAxIgorUEFTUyBhcmdzVG9TdHIoYmF6KF9faSArIDEsIF9faSAr
IDIsIF9faSArIDMpKSBpcyAiW29iamVjdCBBcmd1bWVudHNdOiAyMDAsIDIwMSwgMjAyIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvanMvZGZnLWlubGluZS1hcmd1bWVudHMtaW50MzIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1l
bnRzLWludDMyLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQz
Mi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQz
Mi5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL2Rm
Zy1pbmxpbmUtYXJndW1lbnRzLWludDMyLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMwIEBA
CitkZXNjcmlwdGlvbigKKyJUaGlzIHRlc3RzIHRoYXQgaW5saW5pbmcgcHJlc2VydmVzIGZ1bmN0
aW9uLmFyZ3VtZW50cyBmdW5jdGlvbmFsaXR5IGlmIHRoZSBhcmd1bWVudHMgd2VyZSByZXByZXNl
bnRlZCBhcyB1bmJveGVkIGludDMyLiIKKyk7CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICByZXR1
cm4gYmFyLmFyZ3VtZW50czsKK30KKworZnVuY3Rpb24gYmFyKGEsYixjKSB7CisgICAgcmV0dXJu
IGZvbyhhLGIsYyk7Cit9CisKK2Z1bmN0aW9uIGJheihhLGIsYykgeworICAgIHJldHVybiBiYXIo
YSxiLGMpOworfQorCitmdW5jdGlvbiBhcmdzVG9TdHIoYXJncykgeworICAgIHZhciBzdHIgPSBh
cmdzICsgIjogIjsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3MubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBzdHIgKz0gIiwgIjsKKyAgICAgICAgc3RyICs9
IGFyZ3NbaV07CisgICAgfQorICAgIHJldHVybiBzdHI7Cit9CisKK2ZvciAodmFyIF9faSA9IDA7
IF9faSA8IDIwMDsgKytfX2kpCisgICAgc2hvdWxkQmUoImFyZ3NUb1N0cihiYXooX19pICsgMSwg
X19pICsgMiwgX19pICsgMykpIiwgIlwiW29iamVjdCBBcmd1bWVudHNdOiAiICsgKF9faSArIDEp
ICsgIiwgIiArIChfX2kgKyAyKSArICIsICIgKyAoX19pICsgMykgKyAiXCIiKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113438</attachid>
            <date>2011-11-03 00:02:28 -0700</date>
            <delta_ts>2011-11-03 00:07:47 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>fixargumentsunboxed_patch_3.diff</filename>
            <type>text/plain</type>
            <size>37829</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTkxNDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAK
KzIwMTEtMTEtMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgaW5saW5pbmcgYnJlYWtzIGZ1bmN0aW9uLmFyZ3VtZW50c1tzb21ldGhpbmddIGlmIHRoZSBh
cmd1bWVudCBiZWluZworICAgICAgICByZXRyaWV2ZWQgd2FzIHN1YmplY3RlZCB0byBERkcncyB1
bmJveGluZyBvcHRpbWl6YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVGhpcyBtYWtlcyBpbmxpbmVkIGFyZ3VtZW50cyByZXRyaWV2
YWwgdXNlIHNvbWUgb2YgdGhlIHNhbWUgbWFjaGluZXJ5IGFzCisgICAgICAgIE9TUiB0byBkZXRl
cm1pbmUgd2hlcmUgZnJvbSwgYW5kIGhvdywgdG8gcmV0cmlldmUgYSB2YWx1ZSB0aGF0IHRoZSBE
RkcKKyAgICAgICAgbWlnaHQgaGF2ZSBzb21laG93IHNxdWlycmVsZWQgYXdheSB3aGlsZSB0aGUg
b2xkIEpJVCB3b3VsZCBwdXQgaXQgaW4gaXRzCisgICAgICAgIG9idmlvdXMgbG9jYXRpb24sIHVz
aW5nIGFuIG9idmlvdXMgZm9ybWF0LgorICAgICAgICAKKyAgICAgICAgVG8gdGhhdCBlbmQsIHBy
ZXZpb3VzbHkgREZHLWludGVybmFsIG5vdGlvbnMgc3VjaCBhcyBEYXRhRm9ybWF0LAorICAgICAg
ICBWaXJ0dWFsUmVnaXN0ZXIsIGFuZCBWYWx1ZVJlY292ZXJ5IGFyZSBub3cgaW4gYnl0ZWNvZGUv
IHNpbmNlIHRoZXkgYXJlCisgICAgICAgIHN0b3JlZCBhcyBwYXJ0IG9mIElubGluZUNhbGxGcmFt
ZXMuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2luLmg6CisgICAgICAgICogZGZnL0RG
R0Fic3RyYWN0U3RhdGUuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0U3RhdGU6OmV4
ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlubGluaW5nKToKKyAgICAgICAgKEpTQzo6
REZHOjpCeXRlQ29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSk6
CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpK
SVRDb21waWxlcjo6ZXhpdFNwZWN1bGF0aXZlV2l0aE9TUik6CisgICAgICAgICogZGZnL0RGR0pJ
VENvbXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpleGl0
U3BlY3VsYXRpdmVXaXRoT1NSKToKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAq
IGRmZy9ERkdQcm9wYWdhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpQcm9wYWdhdG9yOjpw
cm9wYWdhdGVOb2RlUHJlZGljdGlvbnMpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvQ2FsbEZyYW1l
LmNwcDoKKyAgICAgICAgKEpTQzo6Q2FsbEZyYW1lOjp0cnVlQ2FsbGVyRnJhbWUpOgorICAgICAg
ICAqIGludGVycHJldGVyL0NhbGxGcmFtZS5oOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6Omlu
bGluZUNhbGxGcmFtZSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXIuaDoKKyAgICAg
ICAgKEpTQzo6UmVnaXN0ZXI6OmFzSW5saW5lQ2FsbEZyYW1lKToKKyAgICAgICAgKEpTQzo6UmVn
aXN0ZXI6OnVuYm94ZWRJbnQzMik6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkQm9v
bGVhbik6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyOjp1bmJveGVkQ2VsbCk6CisgICAgICAgICog
cnVudGltZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpmaW5pc2hDcmVh
dGlvbkFuZENvcHlSZWdpc3RlcnMpOgorCiAyMDExLTExLTAyICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgVmFsdWVSZWNvdmVyeSBzaG91bGQgYmUgbW92ZWQgb3V0
IG9mIHRoZSBERkcgSklUCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlT3JpZ2luLmgJKHJldmlzaW9uIDk5MTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVPcmlnaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lm
bmRlZiBDb2RlT3JpZ2luX2gKICNkZWZpbmUgQ29kZU9yaWdpbl9oCiAKKyNpbmNsdWRlICJWYWx1
ZVJlY292ZXJ5LmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyLmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDEyICs3NiwxMiBA
QCBzdHJ1Y3QgQ29kZU9yaWdpbiB7CiB9OwogCiBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKKyAg
ICBWZWN0b3I8VmFsdWVSZWNvdmVyeT4gYXJndW1lbnRzOwogICAgIFdyaXRlQmFycmllcjxFeGVj
dXRhYmxlQmFzZT4gZXhlY3V0YWJsZTsKICAgICBXcml0ZUJhcnJpZXI8SlNGdW5jdGlvbj4gY2Fs
bGVlOwogICAgIENvZGVPcmlnaW4gY2FsbGVyOwogICAgIHVuc2lnbmVkIHN0YWNrT2Zmc2V0Owot
ICAgIHVuc2lnbmVkIG51bUFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgOiAzMTsKLSAgICBib29sIGlz
Q2FsbCA6IDE7CisgICAgYm9vbCBpc0NhbGw7CiB9OwogCiBzdHJ1Y3QgQ29kZU9yaWdpbkF0Q2Fs
bFJldHVybk9mZnNldCB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3Ry
YWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RTdGF0ZS5jcHAJKHJldmlzaW9uIDk5MTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU5LDYgKzY1
OSw3IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZShOb2RlSW5kZXggbm8KICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKICAgICBjYXNlIFBoYW50b206CisgICAgY2FzZSBJbmxpbmVT
dGFydDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDk5MTQ0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwMDMsNyArMTAwMywxMSBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbmxpbmluZyhib29sCiAgICAgLy8gVGhpcyBpcyB3aGVyZSB0aGUgYWN0dWFsIGlubGluaW5n
IHJlYWxseSBoYXBwZW5zLgogICAgIHVuc2lnbmVkIG9sZEluZGV4ID0gbV9jdXJyZW50SW5kZXg7
CiAgICAgbV9jdXJyZW50SW5kZXggPSAwOworCisgICAgYWRkVG9HcmFwaChJbmxpbmVTdGFydCk7
CisgICAgCiAgICAgcGFyc2VDb2RlQmxvY2soKTsKKyAgICAKICAgICBtX2N1cnJlbnRJbmRleCA9
IG9sZEluZGV4OwogICAgIAogICAgIC8vIElmIHRoZSBpbmxpbmVkIGNvZGUgY3JlYXRlZCBzb21l
IG5ldyBiYXNpYyBibG9ja3MsIHRoZW4gd2UgaGF2ZSBsaW5raW5nIHRvIGRvLgpAQCAtMjMyNiw3
ICsyMzMwLDcgQEAgQnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZQogICAg
ICAgICBpbmxpbmVDYWxsRnJhbWUuc3RhY2tPZmZzZXQgPSBpbmxpbmVDYWxsRnJhbWVTdGFydCAr
IFJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZTsKICAgICAgICAgaW5saW5lQ2FsbEZy
YW1lLmNhbGxlZS5zZXQoKmJ5dGVDb2RlUGFyc2VyLT5tX2dsb2JhbERhdGEsIGJ5dGVDb2RlUGFy
c2VyLT5tX2NvZGVCbG9jay0+b3duZXJFeGVjdXRhYmxlKCksIGNhbGxlZSk7CiAgICAgICAgIGlu
bGluZUNhbGxGcmFtZS5jYWxsZXIgPSBieXRlQ29kZVBhcnNlci0+Y3VycmVudENvZGVPcmlnaW4o
KTsKLSAgICAgICAgaW5saW5lQ2FsbEZyYW1lLm51bUFyZ3VtZW50c0luY2x1ZGluZ1RoaXMgPSBj
b2RlQmxvY2stPm1fbnVtUGFyYW1ldGVyczsKKyAgICAgICAgaW5saW5lQ2FsbEZyYW1lLmFyZ3Vt
ZW50cy5yZXNpemUoY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMpOyAvLyBTZXQgdGhlIG51bWJl
ciBvZiBhcmd1bWVudHMgaW5jbHVkaW5nIHRoaXMsIGJ1dCBkb24ndCBjb25maWd1cmUgdGhlIHZh
bHVlIHJlY292ZXJpZXMsIHlldC4KICAgICAgICAgaW5saW5lQ2FsbEZyYW1lLmlzQ2FsbCA9IGlz
Q2FsbChraW5kKTsKICAgICAgICAgYnl0ZUNvZGVQYXJzZXItPm1fY29kZUJsb2NrLT5pbmxpbmVD
YWxsRnJhbWVzKCkuYXBwZW5kKGlubGluZUNhbGxGcmFtZSk7CiAgICAgICAgIG1faW5saW5lQ2Fs
bEZyYW1lID0gJmJ5dGVDb2RlUGFyc2VyLT5tX2NvZGVCbG9jay0+aW5saW5lQ2FsbEZyYW1lcygp
Lmxhc3QoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRD
b21waWxlcjMyXzY0LmNwcAkocmV2aXNpb24gOTkxNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0pJVENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjgsNyAr
NTI4LDcgQEAgdm9pZCBKSVRDb21waWxlcjo6ZXhpdFNwZWN1bGF0aXZlV2l0aE9TUgogICAgICAg
ICBzdG9yZVB0cihjYWxsZXJGcmFtZUdQUiwgcGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShp
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpDYWxsZXJGcmFtZSkp
KTsKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihqdW1wVGFyZ2V0KSwgcGF5bG9hZEZv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0
ZXJGaWxlOjpSZXR1cm5QQykpKTsKICAgICAgICAgc3RvcmUzMihJbW0zMihKU1ZhbHVlOjpJbnQz
MlRhZyksIHRhZ0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zm
c2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENvdW50KSkpOwotICAgICAgICBzdG9yZTMyKElt
bTMyKGlubGluZUNhbGxGcmFtZS0+bnVtQXJndW1lbnRzSW5jbHVkaW5nVGhpcyksIHBheWxvYWRG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lz
dGVyRmlsZTo6QXJndW1lbnRDb3VudCkpKTsKKyAgICAgICAgc3RvcmUzMihJbW0zMihpbmxpbmVD
YWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIp
KGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291
bnQpKSk7CiAgICAgICAgIHN0b3JlMzIoSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIHRhZ0Zvcigo
VmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJG
aWxlOjpDYWxsZWUpKSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoaW5saW5lQ2Fs
bEZyYW1lLT5jYWxsZWUuZ2V0KCkpLCBwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBSZWdpc3RlckZpbGU6OkNhbGxlZSkpKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAko
cmV2aXNpb24gOTkxNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBp
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgSklUQ29tcGls
ZXI6OmV4aXRTcGVjdWxhdGl2ZVdpdGhPU1IKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0
cihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZS0+c2NvcGUoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxS
ZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6U2Nv
cGVDaGFpbikpKTsKICAgICAgICAgc3RvcmVQdHIoY2FsbGVyRnJhbWVHUFIsIGFkZHJlc3NGb3Io
KFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVy
RmlsZTo6Q2FsbGVyRnJhbWUpKSk7CiAgICAgICAgIHN0b3JlUHRyKFRydXN0ZWRJbW1QdHIoanVt
cFRhcmdldCksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6UmV0dXJuUEMpKSk7Ci0gICAgICAgIHN0b3JlUHRy
KFRydXN0ZWRJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKGlubGluZUNhbGxGcmFtZS0+
bnVtQXJndW1lbnRzSW5jbHVkaW5nVGhpcykpKSwgYWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVy
KShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgUmVnaXN0ZXJGaWxlOjpBcmd1bWVudENv
dW50KSkpOworICAgICAgICBzdG9yZVB0cihUcnVzdGVkSW1tUHRyKEpTVmFsdWU6OmVuY29kZShq
c051bWJlcihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpKSksIGFkZHJlc3NGb3Io
KFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVy
RmlsZTo6QXJndW1lbnRDb3VudCkpKTsKICAgICAgICAgc3RvcmVQdHIoVHJ1c3RlZEltbVB0cihp
bmxpbmVDYWxsRnJhbWUtPmNhbGxlZS5nZXQoKSksIGFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3Rl
cikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIFJlZ2lzdGVyRmlsZTo6Q2FsbGVlKSkp
OwogICAgIH0KICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCShyZXZp
c2lvbiA5OTE0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMjAsNiArMjIwLDExIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciog
YXJpdGhOb2RlRmxhZ3MKICAgICAvKiBNYXJrZXIgZm9yIGFyZ3VtZW50cyBiZWluZyBzZXQuICov
XAogICAgIG1hY3JvKFNldEFyZ3VtZW50LCAwKSBcCiAgICAgXAorICAgIC8qIEhpbnQgdGhhdCBp
bmxpbmluZyBiZWdpbnMgaGVyZS4gTm8gY29kZSBpcyBnZW5lcmF0ZWQgZm9yIHRoaXMgbm9kZS4g
SXQncyBvbmx5ICovXAorICAgIC8qIHVzZWQgZm9yIGNvcHlpbmcgT1NSIGRhdGEgaW50byBpbmxp
bmUgZnJhbWUgZGF0YSwgdG8gc3VwcG9ydCByZWlmaWNhdGlvbiBvZiAqL1wKKyAgICAvKiBjYWxs
IGZyYW1lcyBvZiBpbmxpbmVkIGZ1bmN0aW9ucy4gKi9cCisgICAgbWFjcm8oSW5saW5lU3RhcnQs
IDApIFwKKyAgICBcCiAgICAgLyogTm9kZXMgZm9yIGJpdHdpc2Ugb3BlcmF0aW9ucy4gKi9cCiAg
ICAgbWFjcm8oQml0QW5kLCBOb2RlUmVzdWx0SW50MzIpIFwKICAgICBtYWNybyhCaXRPciwgTm9k
ZVJlc3VsdEludDMyKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Byb3Bh
Z2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJv
cGFnYXRvci5jcHAJKHJldmlzaW9uIDk5MTQ0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcm9wYWdhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDggKzYwNyw5IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgUHV0QnlPZmZzZXQ6CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAotICAgICAgICAvLyBUaGlzIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0IGRvZXNu
J3QgZG8gYW55dGhpbmcuCisgICAgICAgIC8vIFRoZXNlIGdldHMgaWdub3JlZCBiZWNhdXNlIGl0
IGRvZXNuJ3QgZG8gYW55dGhpbmcuCiAgICAgICAgIGNhc2UgUGhhbnRvbToKKyAgICAgICAgY2Fz
ZSBJbmxpbmVTdGFydDoKICAgICAgICAgICAgIGJyZWFrOwogI2Vsc2UKICAgICAgICAgZGVmYXVs
dDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcAkocmV2aXNpb24gOTkxNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDkxLDYgKzI0OTEs
MTAgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAv
LyBUaGlzIGlzIGEgbm8tb3AuCiAgICAgICAgIG5vUmVzdWx0KG1fY29tcGlsZUluZGV4KTsKICAg
ICAgICAgYnJlYWs7CisgICAgICAgIAorICAgIGNhc2UgSW5saW5lU3RhcnQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAobm9k
ZS5oYXNSZXN1bHQoKSAmJiBub2RlLm11c3RHZW5lcmF0ZSgpKQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDk5MTQ0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI2Myw4ICsyNjMsMjggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShCYXNpY0Jsb2NrJgogI2lmIERGR19FTkFCTEUoREVCVUdfVkVSQk9TRSkKICAgICAgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiU3BlY3VsYXRpdmVKSVQgc2tpcHBpbmcgTm9kZSBAJWQgKGJj
IyV1KSBhdCBKSVQgb2Zmc2V0IDB4JXggICAgICIsIChpbnQpbV9jb21waWxlSW5kZXgsIG5vZGUu
Y29kZU9yaWdpbi5ieXRlY29kZUluZGV4LCBtX2ppdC5kZWJ1Z09mZnNldCgpKTsKICNlbmRpZgot
ICAgICAgICAgICAgaWYgKG5vZGUub3AgPT0gU2V0TG9jYWwpCisgICAgICAgICAgICBzd2l0Y2gg
KG5vZGUub3ApIHsKKyAgICAgICAgICAgIGNhc2UgU2V0TG9jYWw6CiAgICAgICAgICAgICAgICAg
Y29tcGlsZU1vdkhpbnQobm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgIGNhc2UgSW5saW5lU3RhcnQ6IHsKKyAgICAgICAgICAgICAgICBJbmxpbmVDYWxsRnJhbWUq
IGlubGluZUNhbGxGcmFtZSA9IG5vZGUuY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7CisgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRzU3RhcnQgPSBpbmxpbmVDYWxsRnJhbWUtPnN0
YWNrT2Zmc2V0IC0gUmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplIC0gaW5saW5lQ2Fs
bEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCk7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBWYWx1ZVJlY292ZXJ5IHJlY292ZXJ5ID0gY29tcHV0ZVZhbHVlUmVj
b3ZlcnlGb3IobV92YXJpYWJsZXNbYXJndW1lbnRzU3RhcnQgKyBpXSk7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFRoZSByZWNvdmVyeSBjYW5ub3QgcG9pbnQgdG8gcmVnaXN0ZXJzLCBzaW5jZSB0
aGUgY2FsbCBmcmFtZSByZWlmaWNhdGlvbiBpc24ndAorICAgICAgICAgICAgICAgICAgICAvLyBh
cyBzbWFydCBhcyBPU1IsIHNvIGl0IGNhbid0IGhhbmRsZSB0aGF0LiBUaGUgZXhjZXB0aW9uIGlz
IHRoZSB0aGlzIGFyZ3VtZW50LAorICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCB3ZSBkb24n
dCByZWFsbHkgbmVlZCB0byBiZSBhYmxlIHRvIHJlY292ZXIuCisgICAgICAgICAgICAgICAgICAg
IEFTU0VSVCghaSB8fCAhcmVjb3ZlcnkuaXNJblJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHNbaV0gPSByZWNvdmVyeTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgCiAjaWYgREZHX0VO
QUJMRShERUJVR19WRVJCT1NFKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0NhbGxGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
dGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHJldmlzaW9uIDk5MTQ0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
MCw3ICsxMTAsNyBAQCBDYWxsRnJhbWUqIENhbGxGcmFtZTo6dHJ1ZUNhbGxlckZyYW1lKCkKICAg
ICAgICAgICAgIGlubGluZWRDYWxsZXItPnNldENhbGxlckZyYW1lKG1hY2hpbmVDYWxsZXIpOwog
ICAgICAgICAKICAgICAgICAgaW5saW5lZENhbGxlci0+c2V0SW5saW5lQ2FsbEZyYW1lKGlubGlu
ZUNhbGxGcmFtZSk7Ci0gICAgICAgIGlubGluZWRDYWxsZXItPnNldEFyZ3VtZW50Q291bnRJbmNs
dWRpbmdUaGlzKGlubGluZUNhbGxGcmFtZS0+bnVtQXJndW1lbnRzSW5jbHVkaW5nVGhpcyk7Cisg
ICAgICAgIGlubGluZWRDYWxsZXItPnNldEFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKGlubGlu
ZUNhbGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSk7CiAgICAgICAgIGlubGluZWRDYWxsZXItPnNl
dENhbGxlZShjYWxsZWVBc0Z1bmN0aW9uKTsKICAgICAgICAgCiAgICAgICAgIGlubGluZUNhbGxG
cmFtZSA9IG5leHRJbmxpbmVDYWxsRnJhbWU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0NhbGxGcmFtZS5oCShyZXZpc2lvbiA5OTE0NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA1LDcgKzEwNSwxNiBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuUEMoKSBjb25zdCB7IHJldHVybiBSZXR1cm5BZGRyZXNzUHRyKHRoaXNbUmVnaXN0
ZXJGaWxlOjpSZXR1cm5QQ10udlBDKCkpOyB9CiAjZW5kaWYKICNpZiBFTkFCTEUoREZHX0pJVCkK
LSAgICAgICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUoKSBjb25zdCB7IHJldHVy
biB0aGlzW1JlZ2lzdGVyRmlsZTo6UmV0dXJuUENdLmlubGluZUNhbGxGcmFtZSgpOyB9CisgICAg
ICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lKCkgY29uc3QgeyByZXR1cm4gdGhp
c1tSZWdpc3RlckZpbGU6OlJldHVyblBDXS5hc0lubGluZUNhbGxGcmFtZSgpOyB9CisjZWxzZQor
ICAgICAgICAvLyBUaGlzIHdpbGwgbmV2ZXIgYmUgY2FsbGVkIGlmICFFTkFCTEUoREZHX0pJVCkg
c2luY2UgYWxsIGNhbGxzIHNob3VsZCBiZSBndWFyZGVkIGJ5CisgICAgICAgIC8vIGlzSW5saW5l
Q2FsbEZyYW1lKCkuIEJ1dCB0byBtYWtlIGl0IGVhc2llciB0byB3cml0ZSBjb2RlIHdpdGhvdXQg
aGF2aW5nIGEgYnVuY2ggb2YKKyAgICAgICAgLy8gI2lmJ3MsIHdlIG1ha2UgYSBkdW1teSBpbXBs
ZW1lbnRhdGlvbiBhdmFpbGFibGUgYW55d2F5LgorICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlu
bGluZUNhbGxGcmFtZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KICNlbmRpZgogI2lm
IEVOQUJMRShJTlRFUlBSRVRFUikKICAgICAgICAgSW5zdHJ1Y3Rpb24qIHJldHVyblZQQygpIGNv
bnN0IHsgcmV0dXJuIHRoaXNbUmVnaXN0ZXJGaWxlOjpSZXR1cm5QQ10udlBDKCk7IH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5oCShyZXZpc2lv
biA5OTE0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3Rlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSwxMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogcHJvcGVydHlOYW1lSXRlcmF0b3IoKSBjb25zdDsK
ICAgICAgICAgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4oKSBjb25zdDsKICAgICAgICAgSW5z
dHJ1Y3Rpb24qIHZQQygpIGNvbnN0OwotICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGlubGluZUNh
bGxGcmFtZSgpIGNvbnN0OworICAgICAgICBJbmxpbmVDYWxsRnJhbWUqIGFzSW5saW5lQ2FsbEZy
YW1lKCkgY29uc3Q7CisgICAgICAgIGludDMyX3QgdW5ib3hlZEludDMyKCkgY29uc3Q7CisgICAg
ICAgIGJvb2wgdW5ib3hlZEJvb2xlYW4oKSBjb25zdDsKKyAgICAgICAgSlNDZWxsKiB1bmJveGVk
Q2VsbCgpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBSZWdpc3RlciB3aXRoSW50KGludDMyX3Qg
aSkKICAgICAgICAgewpAQCAtODgsNiArOTEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
ICAgIENvZGVCbG9jayogY29kZUJsb2NrOwogICAgICAgICAgICAgSW5zdHJ1Y3Rpb24qIHZQQzsK
ICAgICAgICAgICAgIElubGluZUNhbGxGcmFtZSogaW5saW5lQ2FsbEZyYW1lOworICAgICAgICAg
ICAgRW5jb2RlZFZhbHVlRGVzY3JpcHRvciBlbmNvZGVkVmFsdWU7CiAgICAgICAgIH0gdTsKICAg
ICB9OwogCkBAIC0xNjUsMTAgKzE2OSwyOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0
dXJuIHUudlBDOwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUgSW5saW5lQ2FsbEZyYW1lKiBS
ZWdpc3Rlcjo6aW5saW5lQ2FsbEZyYW1lKCkgY29uc3QKKyAgICBBTFdBWVNfSU5MSU5FIElubGlu
ZUNhbGxGcmFtZSogUmVnaXN0ZXI6OmFzSW5saW5lQ2FsbEZyYW1lKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiB1LmlubGluZUNhbGxGcmFtZTsKICAgICB9CisgICAgICAgIAorICAgIEFM
V0FZU19JTkxJTkUgaW50MzJfdCBSZWdpc3Rlcjo6dW5ib3hlZEludDMyKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiB1LmVuY29kZWRWYWx1ZS5hc0JpdHMucGF5bG9hZDsKKyAgICB9CisK
KyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgUmVnaXN0ZXI6OnVuYm94ZWRCb29sZWFuKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiAhIXUuZW5jb2RlZFZhbHVlLmFzQml0cy5wYXlsb2FkOwor
ICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgSlNDZWxsKiBSZWdpc3Rlcjo6dW5ib3hlZENlbGwo
KSBjb25zdAorICAgIHsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICByZXR1cm4gdS5lbmNv
ZGVkVmFsdWUucHRyOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxKU0NlbGwq
Pih1LmVuY29kZWRWYWx1ZS5hc0JpdHMucGF5bG9hZCk7CisjZW5kaWYKKyAgICB9CiAKIH0gLy8g
bmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1
bWVudHMuaAkocmV2aXNpb24gOTkxNDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjU5LDggKzI1OSw0MyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIHNpemVfdCByZWdpc3RlckFycmF5U2l6ZSA9IGQtPm51bVBh
cmFtZXRlcnM7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIE93bkFycmF5UHRyPFdyaXRlQmFy
cmllcjxVbmtub3duPiA+IHJlZ2lzdGVyQXJyYXkgPSBhZG9wdEFycmF5UHRyKG5ldyBXcml0ZUJh
cnJpZXI8VW5rbm93bj5bcmVnaXN0ZXJBcnJheVNpemVdKTsKLSAgICAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgcmVnaXN0ZXJBcnJheVNpemU7ICsraSkKLSAgICAgICAgICAgICAgICBy
ZWdpc3RlckFycmF5W2ldLnNldChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgdGhpcywgY2FsbEZy
YW1lLT5yZWdpc3RlcnMoKVtpIC0gcmVnaXN0ZXJPZmZzZXRdLmpzVmFsdWUoKSk7CisgICAgICAg
ICAgICBpZiAoY2FsbEZyYW1lLT5pc0lubGluZUNhbGxGcmFtZSgpKSB7CisgICAgICAgICAgICAg
ICAgSW5saW5lQ2FsbEZyYW1lKiBpbmxpbmVDYWxsRnJhbWUgPSBjYWxsRnJhbWUtPmlubGluZUNh
bGxGcmFtZSgpOworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVnaXN0
ZXJBcnJheVNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBWYWx1ZVJlY292ZXJ5JiBy
ZWNvdmVyeSA9IGlubGluZUNhbGxGcmFtZS0+YXJndW1lbnRzW2kgKyAxXTsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSdsbCBzdXBwb3J0IGRpc3BsYWNlZCByZWNvdmVy
aWVzIChpbmRpY2F0aW5nIHRoYXQgdGhlCisgICAgICAgICAgICAgICAgICAgIC8vIGFyZ3VtZW50
IHdhcyBmbHVzaGVkIHRvIGEgZGlmZmVyZW50IGxvY2F0aW9uKSwgYnV0IGZvciBub3cgd2UgZG9u
J3QgZG8KKyAgICAgICAgICAgICAgICAgICAgLy8gdGhhdCBzbyB0aGlzIGNvZGUgd2lsbCBmYWls
IGlmIHRoYXQgd2VyZSB0byBoYXBwZW4uIE9uIHRoZSBvdGhlciBoYW5kLAorICAgICAgICAgICAg
ICAgICAgICAvLyBpdCdzIG11Y2ggbGVzcyBsaWtlbHkgdGhhdCB3ZSdsbCBzdXBwb3J0IGluLXJl
Z2lzdGVyIHJlY292ZXJpZXMgc2luY2UKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBjb2Rl
IGRvZXMgbm90IChlYXNpbHkpIGhhdmUgYWNjZXNzIHRvIHJlZ2lzdGVycy4KKyAgICAgICAgICAg
ICAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgUmVnaXN0ZXIqIGxv
Y2F0aW9uID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSArIGkgLSByZWdpc3Rlck9mZnNldDsKKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoIChyZWNvdmVyeS50ZWNobmlxdWUoKSkgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlIEFscmVhZHlJblJlZ2lzdGVyRmlsZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlID0gbG9jYXRpb24tPmpzVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIEFscmVhZHlJblJlZ2lzdGVy
RmlsZUFzVW5ib3hlZEludDMyOgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBqc051
bWJlcihsb2NhdGlvbi0+dW5ib3hlZEludDMyKCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQWxyZWFkeUluUmVnaXN0ZXJGaWxlQXNV
bmJveGVkQ2VsbDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gbG9jYXRpb24tPnVu
Ym94ZWRDZWxsKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgY2FzZSBBbHJlYWR5SW5SZWdpc3RlckZpbGVBc1VuYm94ZWRCb29sZWFuOgorICAg
ICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBqc0Jvb2xlYW4obG9jYXRpb24tPnVuYm94ZWRC
b29sZWFuKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQ29uc3RhbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHJl
Y292ZXJ5LmNvbnN0YW50KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJBcnJheVtpXS5zZXQoY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCksIHRoaXMsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgcmVnaXN0ZXJBcnJheVNpemU7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJB
cnJheVtpXS5zZXQoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIHRoaXMsIGNhbGxGcmFtZS0+cmVn
aXN0ZXJzKClbaSAtIHJlZ2lzdGVyT2Zmc2V0XS5qc1ZhbHVlKCkpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZC0+cmVnaXN0ZXJzID0gcmVnaXN0ZXJBcnJheS5nZXQoKSArIGQtPm51bVBh
cmFtZXRlcnMgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemU7CiAgICAgICAgICAg
ICBkLT5yZWdpc3RlckFycmF5ID0gcmVnaXN0ZXJBcnJheS5yZWxlYXNlKCk7CiAgICAgICAgIH0K
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk5MTMyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDIgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KKworICAgICAgICBERkcgaW5saW5pbmcgYnJlYWtzIGZ1bmN0aW9uLmFy
Z3VtZW50c1tzb21ldGhpbmddIGlmIHRoZSBhcmd1bWVudCBiZWluZworICAgICAgICByZXRyaWV2
ZWQgd2FzIHN1YmplY3RlZCB0byBERkcncyB1bmJveGluZyBvcHRpbWl6YXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQzNiAgICAgICAgCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2pz
L2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9qcy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi5qczog
QWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAoYmFyKToKKyAgICAgICAgKGJheik6Cisg
ICAgICAgIChhcmdzVG9TdHIpOgorCiAyMDExLTExLTAyICBFcmlrIEFydmlkc3NvbiAgPGFydkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG5ldyBTdG9yYWdlSW5mbyB0ZXN0IHRvIHRoZSBy
ZXNwZWN0aXZlIHNraXAgbGlzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxp
bmUtYXJndW1lbnRzLWludDMyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvZGZnLWlubGluZS1hcmd1bWVudHMtaW50MzIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIwOSBAQAorVGhpcyB0ZXN0cyB0
aGF0IGlubGluaW5nIHByZXNlcnZlcyBmdW5jdGlvbi5hcmd1bWVudHMgZnVuY3Rpb25hbGl0eSBp
ZiB0aGUgYXJndW1lbnRzIHdlcmUgcmVwcmVzZW50ZWQgYXMgdW5ib3hlZCBpbnQzMi4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMSwgMiwgMyIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMiwgMywgNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMywgNCwgNSIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
NCwgNSwgNiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogNSwgNiwgNyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNiwgNywgOCIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogNywgOCwgOSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOCwgOSwgMTAiCitQQVNTIGFy
Z3NUb1N0cihiYXooX19pICsgMSwgX19pICsgMiwgX19pICsgMykpIGlzICJbb2JqZWN0IEFyZ3Vt
ZW50c106IDksIDEwLCAxMSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTAsIDExLCAxMiIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTEsIDEyLCAxMyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTIsIDEzLCAxNCIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTMsIDE0LCAxNSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQsIDE1LCAxNiIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTUs
IDE2LCAxNyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTYsIDE3LCAxOCIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTcsIDE4
LCAxOSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTgsIDE5LCAyMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTksIDIwLCAy
MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMjAsIDIxLCAyMiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjEsIDIyLCAyMyIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMjIsIDIzLCAyNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjMsIDI0LCAyNSIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMjQsIDI1LCAyNiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjUsIDI2LCAyNyIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMjYsIDI3LCAyOCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjcsIDI4LCAyOSIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMjgsIDI5LCAzMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjksIDMwLCAzMSIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMzAsIDMxLCAzMiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMzEsIDMyLCAzMyIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MzIsIDMzLCAzNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMzMsIDM0LCAzNSIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMzQs
IDM1LCAzNiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMzUsIDM2LCAzNyIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMzYsIDM3
LCAzOCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMzcsIDM4LCAzOSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMzgsIDM5LCA0
MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMzksIDQwLCA0MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNDAsIDQxLCA0MiIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogNDEsIDQyLCA0MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNDIsIDQzLCA0NCIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogNDMsIDQ0LCA0NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNDQsIDQ1LCA0NiIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogNDUsIDQ2LCA0NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNDYsIDQ3LCA0OCIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogNDcsIDQ4LCA0OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNDgsIDQ5LCA1MCIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogNDksIDUwLCA1MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTAsIDUxLCA1MiIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
NTEsIDUyLCA1MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTIsIDUzLCA1NCIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTMs
IDU0LCA1NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogNTQsIDU1LCA1NiIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTUsIDU2
LCA1NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogNTYsIDU3LCA1OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTcsIDU4LCA1
OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogNTgsIDU5LCA2MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNTksIDYwLCA2MSIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogNjAsIDYxLCA2MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNjEsIDYyLCA2MyIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogNjIsIDYzLCA2NCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNjMsIDY0LCA2NSIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogNjQsIDY1LCA2NiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNjUsIDY2LCA2NyIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogNjYsIDY3LCA2OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNjcsIDY4LCA2OSIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogNjgsIDY5LCA3MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNjksIDcwLCA3MSIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
NzAsIDcxLCA3MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNzEsIDcyLCA3MyIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNzIs
IDczLCA3NCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogNzMsIDc0LCA3NSIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNzQsIDc1
LCA3NiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogNzUsIDc2LCA3NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNzYsIDc3LCA3
OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogNzcsIDc4LCA3OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogNzgsIDc5LCA4MCIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogNzksIDgwLCA4MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogODAsIDgxLCA4MiIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogODEsIDgyLCA4MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogODIsIDgzLCA4NCIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogODMsIDg0LCA4NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogODQsIDg1LCA4NiIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogODUsIDg2LCA4NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogODYsIDg3LCA4OCIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogODcsIDg4LCA4OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogODgsIDg5LCA5MCIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
ODksIDkwLCA5MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTAsIDkxLCA5MiIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTEs
IDkyLCA5MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogOTIsIDkzLCA5NCIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTMsIDk0
LCA5NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogOTQsIDk1LCA5NiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTUsIDk2LCA5
NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogOTYsIDk3LCA5OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogOTcsIDk4LCA5OSIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogOTgsIDk5LCAxMDAiCitQQVNTIGFyZ3NUb1N0cihiYXooX19pICsgMSwg
X19pICsgMiwgX19pICsgMykpIGlzICJbb2JqZWN0IEFyZ3VtZW50c106IDk5LCAxMDAsIDEwMSIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTAwLCAxMDEsIDEwMiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTAxLCAxMDIsIDEw
MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTAyLCAxMDMsIDEwNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTAzLCAxMDQs
IDEwNSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTA0LCAxMDUsIDEwNiIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTA1LCAx
MDYsIDEwNyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTA2LCAxMDcsIDEwOCIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTA3
LCAxMDgsIDEwOSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTA4LCAxMDksIDExMCIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTA5LCAxMTAsIDExMSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTEwLCAxMTEsIDExMiIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTExLCAxMTIsIDExMyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTEyLCAxMTMsIDExNCIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMTEzLCAxMTQsIDExNSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTE0LCAxMTUsIDExNiIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMTE1LCAxMTYsIDExNyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTE2LCAxMTcsIDExOCIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMTE3LCAxMTgsIDExOSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTE4LCAxMTksIDEyMCIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTE5LCAxMjAsIDEyMSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTIwLCAxMjEsIDEy
MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTIxLCAxMjIsIDEyMyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTIyLCAxMjMs
IDEyNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTIzLCAxMjQsIDEyNSIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTI0LCAx
MjUsIDEyNiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTI1LCAxMjYsIDEyNyIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTI2
LCAxMjcsIDEyOCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTI3LCAxMjgsIDEyOSIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTI4LCAxMjksIDEzMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTI5LCAxMzAsIDEzMSIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTMwLCAxMzEsIDEzMiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTMxLCAxMzIsIDEzMyIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMTMyLCAxMzMsIDEzNCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTMzLCAxMzQsIDEzNSIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMTM0LCAxMzUsIDEzNiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTM1LCAxMzYsIDEzNyIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMTM2LCAxMzcsIDEzOCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTM3LCAxMzgsIDEzOSIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTM4LCAxMzksIDE0MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTM5LCAxNDAsIDE0
MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTQwLCAxNDEsIDE0MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQxLCAxNDIs
IDE0MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTQyLCAxNDMsIDE0NCIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQzLCAx
NDQsIDE0NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQ0LCAxNDUsIDE0NiIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQ1
LCAxNDYsIDE0NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQ2LCAxNDcsIDE0OCIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTQ3LCAxNDgsIDE0OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTQ4LCAxNDksIDE1MCIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTQ5LCAxNTAsIDE1MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTUwLCAxNTEsIDE1MiIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMTUxLCAxNTIsIDE1MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTUyLCAxNTMsIDE1NCIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMTUzLCAxNTQsIDE1NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTU0LCAxNTUsIDE1NiIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMTU1LCAxNTYsIDE1NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTU2LCAxNTcsIDE1OCIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTU3LCAxNTgsIDE1OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTU4LCAxNTksIDE2
MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTU5LCAxNjAsIDE2MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTYwLCAxNjEs
IDE2MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTYxLCAxNjIsIDE2MyIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTYyLCAx
NjMsIDE2NCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTYzLCAxNjQsIDE2NSIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTY0
LCAxNjUsIDE2NiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTY1LCAxNjYsIDE2NyIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTY2LCAxNjcsIDE2OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTY3LCAxNjgsIDE2OSIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTY4LCAxNjksIDE3MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTY5LCAxNzAsIDE3MSIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMTcwLCAxNzEsIDE3MiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTcxLCAxNzIsIDE3MyIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMTcyLCAxNzMsIDE3NCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTczLCAxNzQsIDE3NSIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMTc0LCAxNzUsIDE3NiIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTc1LCAxNzYsIDE3NyIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTc2LCAxNzcsIDE3OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTc3LCAxNzgsIDE3
OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTc4LCAxNzksIDE4MCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTc5LCAxODAs
IDE4MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTgwLCAxODEsIDE4MiIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTgxLCAx
ODIsIDE4MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkg
aXMgIltvYmplY3QgQXJndW1lbnRzXTogMTgyLCAxODMsIDE4NCIKK1BBU1MgYXJnc1RvU3RyKGJh
eihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTgz
LCAxODQsIDE4NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAz
KSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTg0LCAxODUsIDE4NiIKK1BBU1MgYXJnc1RvU3Ry
KGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTog
MTg1LCAxODYsIDE4NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kg
KyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTg2LCAxODcsIDE4OCIKK1BBU1MgYXJnc1Rv
U3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRz
XTogMTg3LCAxODgsIDE4OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBf
X2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTg4LCAxODksIDE5MCIKK1BBU1MgYXJn
c1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1l
bnRzXTogMTg5LCAxOTAsIDE5MSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAy
LCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTkwLCAxOTEsIDE5MiIKK1BBU1Mg
YXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJn
dW1lbnRzXTogMTkxLCAxOTIsIDE5MyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kg
KyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTkyLCAxOTMsIDE5NCIKK1BB
U1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3Qg
QXJndW1lbnRzXTogMTkzLCAxOTQsIDE5NSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBf
X2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTk0LCAxOTUsIDE5NiIK
K1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmpl
Y3QgQXJndW1lbnRzXTogMTk1LCAxOTYsIDE5NyIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAx
LCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTk2LCAxOTcsIDE5
OCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltv
YmplY3QgQXJndW1lbnRzXTogMTk3LCAxOTgsIDE5OSIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kg
KyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMTk4LCAxOTks
IDIwMCIKK1BBU1MgYXJnc1RvU3RyKGJheihfX2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMg
IltvYmplY3QgQXJndW1lbnRzXTogMTk5LCAyMDAsIDIwMSIKK1BBU1MgYXJnc1RvU3RyKGJheihf
X2kgKyAxLCBfX2kgKyAyLCBfX2kgKyAzKSkgaXMgIltvYmplY3QgQXJndW1lbnRzXTogMjAwLCAy
MDEsIDIwMiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWludDMy
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctaW5saW5lLWFyZ3Vt
ZW50cy1pbnQzMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmct
aW5saW5lLWFyZ3VtZW50cy1pbnQzMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZGZnLWlubGluZS1h
cmd1bWVudHMtaW50MzIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1hcmd1bWVudHMtaW50MzIuanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1h
cmd1bWVudHMtaW50MzIuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Nj
cmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1pbnQzMi5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMCBAQAorZGVzY3JpcHRpb24oCisiVGhpcyB0ZXN0cyB0aGF0IGlubGluaW5nIHBy
ZXNlcnZlcyBmdW5jdGlvbi5hcmd1bWVudHMgZnVuY3Rpb25hbGl0eSBpZiB0aGUgYXJndW1lbnRz
IHdlcmUgcmVwcmVzZW50ZWQgYXMgdW5ib3hlZCBpbnQzMi4iCispOworCitmdW5jdGlvbiBmb28o
KSB7CisgICAgcmV0dXJuIGJhci5hcmd1bWVudHM7Cit9CisKK2Z1bmN0aW9uIGJhcihhLGIsYykg
eworICAgIHJldHVybiBmb28oYSxiLGMpOworfQorCitmdW5jdGlvbiBiYXooYSxiLGMpIHsKKyAg
ICByZXR1cm4gYmFyKGEsYixjKTsKK30KKworZnVuY3Rpb24gYXJnc1RvU3RyKGFyZ3MpIHsKKyAg
ICB2YXIgc3RyID0gYXJncyArICI6ICI7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgIGlmIChpKQorICAgICAgICAgICAgc3RyICs9ICIsICI7Cisg
ICAgICAgIHN0ciArPSBhcmdzW2ldOworICAgIH0KKyAgICByZXR1cm4gc3RyOworfQorCitmb3Ig
KHZhciBfX2kgPSAwOyBfX2kgPCAyMDA7ICsrX19pKQorICAgIHNob3VsZEJlKCJhcmdzVG9TdHIo
YmF6KF9faSArIDEsIF9faSArIDIsIF9faSArIDMpKSIsICJcIltvYmplY3QgQXJndW1lbnRzXTog
IiArIChfX2kgKyAxKSArICIsICIgKyAoX19pICsgMikgKyAiLCAiICsgKF9faSArIDMpICsgIlwi
Iik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="111806"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>