<?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>230437</bug_id>
          
          <creation_ts>2021-09-17 17:33:37 -0700</creation_ts>
          <short_desc>Add LLVM/FLang&apos;s int128_t implementation to WTF</short_desc>
          <delta_ts>2021-09-21 11:04:31 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Chimento">philip.chimento</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kevin_neal</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1794713</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-17 17:33:37 -0700</bug_when>
    <thetext>Add LLVM/FLang&apos;s int128_t implementation to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794714</commentid>
    <comment_count>1</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-17 17:34:35 -0700</bug_when>
    <thetext>This will be necessary for implementing Temporal.Instant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794717</commentid>
    <comment_count>2</comment_count>
      <attachid>438537</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-17 17:37:29 -0700</bug_when>
    <thetext>Created attachment 438537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794718</commentid>
    <comment_count>3</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-17 17:38:04 -0700</bug_when>
    <thetext>(The style checker is going to fail because the source files contain no copyright notices; I&apos;m not sure what to do about that, because there are none in the original code.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794753</commentid>
    <comment_count>4</comment_count>
      <attachid>438537</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-18 00:09:15 -0700</bug_when>
    <thetext>Comment on attachment 438537
Patch

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

r=me with comments

&gt; Source/WTF/wtf/CMakeLists.txt:106
&gt; +    Int128.h

Add this header to xcodeproj.

&gt; Source/WTF/wtf/CMakeLists.txt:117
&gt; +    LeadingZeroBitCount.h

Add this header to xcodeproj.

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:41
&gt; +static constexpr std::uint64_t deBruijn {0x07edd5e59a4e28c2};
&gt; +static constexpr std::uint8_t mapping[64] {63, 0, 58, 1, 59, 47, 53, 2, 60, 39,
&gt; +    48, 27, 54, 33, 42, 3, 61, 51, 37, 40, 49, 18, 28, 20, 55, 30, 34, 11, 43,
&gt; +    14, 22, 4, 62, 57, 46, 52, 38, 26, 32, 41, 50, 36, 17, 19, 29, 10, 13, 21,
&gt; +    56, 45, 25, 31, 35, 16, 9, 12, 44, 24, 15, 8, 23, 7, 6, 5};
&gt; +} // namespace

You should create cpp file, and putting these constant arrays in C++ side. Otherwise, each translation unit will materialize this duplicate array, and enlarging binary size.

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:43
&gt; +inline constexpr int LeadingZeroBitCount(std::uint64_t x)

Rename it to leadingZeroBitCount

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:64
&gt; +inline constexpr int LeadingZeroBitCount(std::uint32_t x)

Ditto.

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:69
&gt; +inline constexpr int LeadingZeroBitCount(std::uint16_t x)

Ditto

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:86
&gt; +namespace detail {
&gt; +static constexpr std::uint8_t eightBitLeadingZeroBitCount[256] {8, 7, 6, 6, 5, 5,
&gt; +    5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
&gt; +    3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
&gt; +    2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
&gt; +    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
&gt; +    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0,
&gt; +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
&gt; +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
&gt; +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
&gt; +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
&gt; +    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
&gt; +}

Ditto.

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:88
&gt; +inline constexpr int LeadingZeroBitCount(std::uint8_t x)

Ditto.

&gt; Source/WTF/wtf/LeadingZeroBitCount.h:93
&gt; +template &lt;typename A&gt; inline constexpr int BitsNeededFor(A x)

Rename it to bitsNeededFor.

&gt; Tools/TestWebKitAPI/CMakeLists.txt:57
&gt; +    Tests/WTF/Int128.cpp
&gt;      Tests/WTF/IntegerToStringConversion.cpp
&gt;      Tests/WTF/IteratorRange.cpp
&gt;      Tests/WTF/JSONValue.cpp
&gt;      Tests/WTF/LEBDecoder.cpp
&gt; +    Tests/WTF/LeadingZeroBitCount.cpp

Add them to xcodeproj to run these tests on macOS / iOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794914</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-09-19 12:47:37 -0700</bug_when>
    <thetext>If the license is not known, then we cannot accept this code in WebKit. I suspect that these projects do have licenses though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794925</commentid>
    <comment_count>6</comment_count>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-19 13:44:09 -0700</bug_when>
    <thetext>The license is known (and listed in the first lines of each source file), but the copyright is not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794944</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-19 16:01:13 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #5)
&gt; If the license is not known, then we cannot accept this code in WebKit. I
&gt; suspect that these projects do have licenses though.

It is LLVM, from where, we already have some files (B3ComputeDivisionMagic.h, old wtf/StdFilesystem.{cpp,h}, wtf/Span.h).
Let&apos;s just include https://llvm.org/LICENSE.txt file as WTF/LICENSE-LLVM.txt as https://trac.webkit.org/changeset/268020/webkit did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795206</commentid>
    <comment_count>8</comment_count>
      <attachid>438710</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-20 12:19:32 -0700</bug_when>
    <thetext>Created attachment 438710
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795216</commentid>
    <comment_count>9</comment_count>
      <attachid>438712</attachid>
    <who name="Philip Chimento">philip.chimento</who>
    <bug_when>2021-09-20 12:52:07 -0700</bug_when>
    <thetext>Created attachment 438712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795628</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-21 10:19:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/83357495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795658</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 11:04:27 -0700</bug_when>
    <thetext>Committed r282828 (241959@main): &lt;https://commits.webkit.org/241959@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438712.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438537</attachid>
            <date>2021-09-17 17:37:29 -0700</date>
            <delta_ts>2021-09-20 12:19:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230437-20210917173728.patch</filename>
            <type>text/plain</type>
            <size>27020</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE3ODYwMmY2YTQzNzIxODNmMzhmYWM0
YTEyYjA5MWFkZTk4MzZlMzkuLjkzN2Y0NmM1MjhlMjY2M2MzZTIzMWI3YmY1YTY3MjcwM2EwZDA5
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjEtMDktMTcgIFBoaWxpcCBDaGltZW50byAgPHBo
aWxpcC5jaGltZW50b0BnbWFpbC5jb20+CisKKyAgICAgICAgQWRkIExMVk0vRkxhbmcncyBpbnQx
MjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFkZGVkIGludDEyOF90IGltcGxl
bWVudGF0aW9uIGZyb20gTExWTSwgYW5kIGl0cyBkZXBlbmRlbmN5CisgICAgICAgIExlYWRpbmda
ZXJvQml0Q291bnQuaC4gQm90aCByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0eWxl
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3Rm
L0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9JbnQxMjguaDogQWRkZWQuCisgICAgICAg
IChXVEY6OkludDEyOEltcGw6OkludDEyOEltcGwpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBs
OjpvcGVyYXRvcisgY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcn4g
Y29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvci0gY29uc3QpOgorICAg
ICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV1RGOjpJ
bnQxMjhJbXBsOjpvcGVyYXRvciBib29sIGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1w
bDo6b3BlcmF0b3Igc3RkOjp1aW50NjRfdCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yIHN0ZDo6aW50NjRfdCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yIGludCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6OmhpZ2gg
Y29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpsb3cgY29uc3QpOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6
b3BlcmF0b3ItLSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yJiBjb25zdCk6
CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yIHwgIGNvbnN0KToKKyAgICAgICAg
KFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3JeIGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4
SW1wbDo6b3BlcmF0b3I8PCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJh
dG9yPj4gY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvciogY29uc3Qp
OgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvci8gY29uc3QpOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvciUgY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJ
bXBsOjpvcGVyYXRvcjwgY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRv
cjw9IGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3I9PSBjb25zdCk6
CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yIT0gY29uc3QpOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcj49IGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4
SW1wbDo6b3BlcmF0b3I+IGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0
b3ImPSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yfD0pOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcl49KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6
b3BlcmF0b3I8PD0pOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcj4+PSk6Cisg
ICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yKz0pOgorICAgICAgICAoV1RGOjpJbnQx
MjhJbXBsOjpvcGVyYXRvci09KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Iq
PSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yLz0pOgorICAgICAgICAoV1RG
OjpJbnQxMjhJbXBsOjpvcGVyYXRvciU9KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6TGVh
ZGluZ1plcm9lcyBjb25zdCk6CisgICAgICAgICogd3RmL0xlYWRpbmdaZXJvQml0Q291bnQuaDog
QWRkZWQuCisgICAgICAgIChXVEY6OkxlYWRpbmdaZXJvQml0Q291bnQpOgorICAgICAgICAoV1RG
OjpCaXRzTmVlZGVkRm9yKToKKwogMjAyMS0wOS0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFJUQ1J0cFNjcmlwdFRyYW5zZm9ybSBieSBkZWZh
dWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDA4MjZiODUzZDU1NjIyZmUxODY4ZmEzNmM5N2Vk
MjkwYmVjYzM4NzUuLjRiMWUwNzFjNDBhNDczY2YxNzZlN2U0NWE2YWMxMjIyYmI0NzU3OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xMDMsNiArMTAzLDcgQEAgc2V0KFdURl9QVUJMSUNfSEVB
REVSUwogICAgIElubGluZUFTTS5oCiAgICAgSW5zZXJ0aW9uLmgKICAgICBJbnN0YW5jZUNvdW50
ZWQuaAorICAgIEludDEyOC5oCiAgICAgSW50ZXJmZXJlbmNlR3JhcGguaAogICAgIElzb01hbGxv
Yy5oCiAgICAgSXNvTWFsbG9jSW5saW5lcy5oCkBAIC0xMTMsNiArMTE0LDcgQEAgc2V0KFdURl9Q
VUJMSUNfSEVBREVSUwogICAgIEtleVZhbHVlUGFpci5oCiAgICAgTEVCRGVjb2Rlci5oCiAgICAg
TGFuZ3VhZ2UuaAorICAgIExlYWRpbmdaZXJvQml0Q291bnQuaAogICAgIExpa2VseURlbnNlVW5z
aWduZWRJbnRlZ2VyU2V0LmgKICAgICBMaXN0RHVtcC5oCiAgICAgTGlzdEhhc2hTZXQuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvSW50MTI4LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQxMjgu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kZGI3NTVlOWI1MTBiZGIwZTQxYTViZTUwNTdlZDYwNjIyOWNjNzk3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvSW50MTI4LmgKQEAgLTAsMCArMSwyOTcg
QEAKKy8vIFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Ug
djIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VO
U0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp
ZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgorCisvLyBQb3J0YWJsZSAxMjgtYml0
IHVuc2lnbmVkIGludGVnZXIgYXJpdGhtZXRpYyBmb3IgdXNlIGluIGltcG92ZXJpc2hlZAorLy8g
QysrIGltcGxlbWVudGF0aW9ucyBsYWNraW5nIF9fdWludDEyOF90LgorCisvLyBCYXNlZCBvbjoK
Ky8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9ibG9iL2Q0ODBmOTY4L2Zs
YW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL3VpbnQxMjguaAorCisjcHJhZ21hIG9uY2UKKworLy8g
RGVmaW5lIEFWT0lEX05BVElWRV9JTlQxMjhfVCB0byBmb3JjZSB0aGUgdXNlIG9mIEludDEyOElt
cGwgYmVsb3cgaW5zdGVhZCBvZgorLy8gdGhlIEMrKyBjb21waWxlcidzIG5hdGl2ZSAxMjgtYml0
IHVuc2lnbmVkIGludGVnZXIgdHlwZSwgaWYgaXQgaGFzIG9uZS4KKyNpZm5kZWYgQVZPSURfTkFU
SVZFX0lOVDEyOF9UCisjZGVmaW5lIEFWT0lEX05BVElWRV9JTlQxMjhfVCAwCisjZW5kaWYKKwor
I2luY2x1ZGUgPGNzdGRpbnQ+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8d3Rm
L0xlYWRpbmdaZXJvQml0Q291bnQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDxi
b29sIElTX1NJR05FRCA9IGZhbHNlPiBjbGFzcyBJbnQxMjhJbXBsIHsKK3B1YmxpYzoKKyAgICBj
b25zdGV4cHIgSW50MTI4SW1wbCgpIHsgfQorICAgIC8vIFRoaXMgbWVhbnMgb2YgZGVmaW5pdGlv
biBwcm92aWRlcyBzb21lIHBvcnRhYmlsaXR5IGZvcgorICAgIC8vICJzaXplX3QiIG9wZXJhbmRz
LgorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsKHVuc2lnbmVkIG4pIDogbG93XyB7bn0geyB9Cisg
ICAgY29uc3RleHByIEludDEyOEltcGwodW5zaWduZWQgbG9uZyBuKSA6IGxvd18ge259IHsgfQor
ICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsKHVuc2lnbmVkIGxvbmcgbG9uZyBuKSA6IGxvd18ge259
IHsgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsKGludCBuKQorICAgICAgICA6IGxvd18ge3N0
YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pfQorICAgICAgICAsIGhpZ2hfIHstc3RhdGljX2Nh
c3Q8c3RkOjp1aW50NjRfdD4obiA8IDApfQorICAgIHsgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJ
bXBsKGxvbmcgbikKKyAgICAgICAgOiBsb3dfIHtzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90Pihu
KX0KKyAgICAgICAgLCBoaWdoXyB7LXN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4gPCAwKX0K
KyAgICB7IH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbChsb25nIGxvbmcgbikKKyAgICAgICAg
OiBsb3dfIHtzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihuKX0KKyAgICAgICAgLCBoaWdoXyB7
LXN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4gPCAwKX0KKyAgICB7IH0KKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbChjb25zdCBJbnQxMjhJbXBsICYpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbChJbnQxMjhJbXBsICYmKSA9IGRlZmF1bHQ7CisgICAgY29uc3RleHByIElu
dDEyOEltcGwgJm9wZXJhdG9yPShjb25zdCBJbnQxMjhJbXBsICYpID0gZGVmYXVsdDsKKyAgICBj
b25zdGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3I9KEludDEyOEltcGwgJiYpID0gZGVmYXVsdDsK
KworICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yKygpIGNvbnN0IHsgcmV0dXJuICp0
aGlzOyB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3J+KCkgY29uc3QgeyByZXR1
cm4ge35oaWdoXywgfmxvd199OyB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3It
KCkgY29uc3QgeyByZXR1cm4gfip0aGlzICsgMTsgfQorICAgIGNvbnN0ZXhwciBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgcmV0dXJuICFsb3dfICYmICFoaWdoXzsgfQorICAgIGNvbnN0ZXhwciBl
eHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyByZXR1cm4gbG93XyB8fCBoaWdoXzsgfQor
ICAgIGNvbnN0ZXhwciBleHBsaWNpdCBvcGVyYXRvciBzdGQ6OnVpbnQ2NF90KCkgY29uc3QgeyBy
ZXR1cm4gbG93XzsgfQorICAgIGNvbnN0ZXhwciBleHBsaWNpdCBvcGVyYXRvciBzdGQ6OmludDY0
X3QoKSBjb25zdCB7IHJldHVybiBsb3dfOyB9CisgICAgY29uc3RleHByIGV4cGxpY2l0IG9wZXJh
dG9yIGludCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4obG93Xyk7IH0KKworICAg
IGNvbnN0ZXhwciBzdGQ6OnVpbnQ2NF90IGhpZ2goKSBjb25zdCB7IHJldHVybiBoaWdoXzsgfQor
ICAgIGNvbnN0ZXhwciBzdGQ6OnVpbnQ2NF90IGxvdygpIGNvbnN0IHsgcmV0dXJuIGxvd187IH0K
KworICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yKysoLypwcmVmaXgqLykKKyAgICB7
CisgICAgICAgICp0aGlzICs9IDE7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IrKyhpbnQgLypwb3N0Zml4Ki8pCisgICAgewor
ICAgICAgICBJbnQxMjhJbXBsIHJlc3VsdCB7KnRoaXN9OworICAgICAgICAqdGhpcyArPSAxOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBv
cGVyYXRvci0tKC8qcHJlZml4Ki8pCisgICAgeworICAgICAgICAqdGhpcyAtPSAxOworICAgICAg
ICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9y
LS0oaW50IC8qcG9zdGZpeCovKQorICAgIHsKKyAgICAgICAgSW50MTI4SW1wbCByZXN1bHQgeyp0
aGlzfTsKKyAgICAgICAgKnRoaXMgLT0gMTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9
CisKKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvciYoSW50MTI4SW1wbCB0aGF0KSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHtoaWdoXyAmIHRoYXQuaGlnaF8sIGxvd18gJiB0
aGF0Lmxvd199OworICAgIH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvciB8IChJ
bnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4ge2hpZ2hfIHwgdGhh
dC5oaWdoXywgbG93XyB8IHRoYXQubG93X307CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJ
bXBsIG9wZXJhdG9yXihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4ge2hpZ2hfIF4gdGhhdC5oaWdoXywgbG93XyBeIHRoYXQubG93X307CisgICAgfQorCisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3I8PChJbnQxMjhJbXBsIHRoYXQpIGNvbnN0Cisg
ICAgeworICAgICAgICBpZiAodGhhdCA+PSAxMjgpCisgICAgICAgICAgICByZXR1cm4geyB9Owor
ICAgICAgICBpZiAoIXRoYXQpCisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIHN0
ZDo6dWludDY0X3QgbiB7dGhhdC5sb3dffTsKKyAgICAgICAgaWYgKG4gPj0gNjQpCisgICAgICAg
ICAgICByZXR1cm4ge2xvd18gPDwgKG4gLSA2NCksIDB9OworICAgICAgICByZXR1cm4geyhoaWdo
XyA8PCBuKSB8IChsb3dfID4+ICg2NCAtIG4pKSwgbG93XyA8PCBufTsKKyAgICB9CisgICAgY29u
c3RleHByIEludDEyOEltcGwgb3BlcmF0b3I+PihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAg
eworICAgICAgICBpZiAodGhhdCA+PSAxMjgpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAg
ICAgICBpZiAoIXRoYXQpCisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIHN0ZDo6
dWludDY0X3QgbiB7dGhhdC5sb3dffTsKKyAgICAgICAgaWYgKG4gPj0gNjQpCisgICAgICAgICAg
ICByZXR1cm4gezAsIGhpZ2hfID4+IChuIC0gNjQpfTsKKyAgICAgICAgcmV0dXJuIHtoaWdoXyA+
PiBuLCAoaGlnaF8gPDwgKDY0IC0gbikpIHwgKGxvd18gPj4gbil9OworICAgIH0KKworICAgIGNv
bnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yKyhJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAg
eworICAgICAgICBzdGQ6OnVpbnQ2NF90IGxvd2VyIHsobG93XyAmIH50b3BCaXQpICsgKHRoYXQu
bG93XyAmIH50b3BCaXQpfTsKKyAgICAgICAgYm9vbCBjYXJyeSB7KChsb3dlciA+PiA2MykgKyAo
bG93XyA+PiA2MykgKyAodGhhdC5sb3dfID4+IDYzKSkgPiAxfTsKKyAgICAgICAgcmV0dXJuIHto
aWdoXyArIHRoYXQuaGlnaF8gKyBjYXJyeSwgbG93XyArIHRoYXQubG93X307CisgICAgfQorICAg
IGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yLShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsg
cmV0dXJuICp0aGlzICsgLXRoYXQ7IH0KKworICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJh
dG9yKihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAgeworICAgICAgICBzdGQ6OnVpbnQ2NF90
IG1hc2szMiB7MHhmZmZmZmZmZn07CisgICAgICAgIGlmICghaGlnaF8gJiYgIXRoYXQuaGlnaF8p
IHsKKyAgICAgICAgICAgIHN0ZDo6dWludDY0X3QgeDAge2xvd18gJiBtYXNrMzJ9LCB4MSB7bG93
XyA+PiAzMn07CisgICAgICAgICAgICBzdGQ6OnVpbnQ2NF90IHkwIHt0aGF0Lmxvd18gJiBtYXNr
MzJ9LCB5MSB7dGhhdC5sb3dfID4+IDMyfTsKKyAgICAgICAgICAgIEludDEyOEltcGwgeDB5MCB7
eDAgKiB5MH0sIHgweTEge3gwICogeTF9OworICAgICAgICAgICAgSW50MTI4SW1wbCB4MXkwIHt4
MSAqIHkwfSwgeDF5MSB7eDEgKiB5MX07CisgICAgICAgICAgICByZXR1cm4geDB5MCArICgoeDB5
MSArIHgxeTApIDw8IDMyKSArICh4MXkxIDw8IDY0KTsKKyAgICAgICAgfQorCisgICAgICAgIHN0
ZDo6dWludDY0X3QgeDAge2xvd18gJiBtYXNrMzJ9LCB4MSB7bG93XyA+PiAzMn0sIHgyIHtoaWdo
XyAmIG1hc2szMn0sCisgICAgICAgICAgICB4MyB7aGlnaF8gPj4gMzJ9OworICAgICAgICBzdGQ6
OnVpbnQ2NF90IHkwIHt0aGF0Lmxvd18gJiBtYXNrMzJ9LCB5MSB7dGhhdC5sb3dfID4+IDMyfSwK
KyAgICAgICAgICAgIHkyIHt0aGF0LmhpZ2hfICYgbWFzazMyfSwgeTMge3RoYXQuaGlnaF8gPj4g
MzJ9OworICAgICAgICBJbnQxMjhJbXBsIHgweTAge3gwICogeTB9LCB4MHkxIHt4MCAqIHkxfSwg
eDB5MiB7eDAgKiB5Mn0sIHgweTMge3gwICogeTN9OworICAgICAgICBJbnQxMjhJbXBsIHgxeTAg
e3gxICogeTB9LCB4MXkxIHt4MSAqIHkxfSwgeDF5MiB7eDEgKiB5Mn07CisgICAgICAgIEludDEy
OEltcGwgeDJ5MCB7eDIgKiB5MH0sIHgyeTEge3gyICogeTF9OworICAgICAgICBJbnQxMjhJbXBs
IHgzeTAge3gzICogeTB9OworICAgICAgICByZXR1cm4geDB5MCArICgoeDB5MSArIHgxeTApIDw8
IDMyKSArICgoeDB5MiArIHgxeTEgKyB4MnkwKSA8PCA2NCkgKworICAgICAgICAgICAgKCh4MHkz
ICsgeDF5MiArIHgyeTEgKyB4M3kwKSA8PCA5Nik7CisgICAgfQorCisgICAgY29uc3RleHByIElu
dDEyOEltcGwgb3BlcmF0b3IvKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAg
IGludCBqIHtMZWFkaW5nWmVyb2VzKCl9OworICAgICAgICBJbnQxMjhJbXBsIGJpdHMgeyp0aGlz
fTsKKyAgICAgICAgYml0cyA8PD0gajsKKyAgICAgICAgSW50MTI4SW1wbCBudW1lcmF0b3IgeyB9
OworICAgICAgICBJbnQxMjhJbXBsIHF1b3RpZW50IHsgfTsKKyAgICAgICAgZm9yICg7IGogPCAx
Mjg7ICsraikgeworICAgICAgICAgICAgbnVtZXJhdG9yIDw8PSAxOworICAgICAgICAgICAgaWYg
KGJpdHMuaGlnaF8gJiB0b3BCaXQpCisgICAgICAgICAgICAgICAgbnVtZXJhdG9yLmxvd18gfD0g
MTsKKyAgICAgICAgICAgIGJpdHMgPDw9IDE7CisgICAgICAgICAgICBxdW90aWVudCA8PD0gMTsK
KyAgICAgICAgICAgIGlmIChudW1lcmF0b3IgPj0gdGhhdCkgeworICAgICAgICAgICAgICAgICsr
cXVvdGllbnQ7CisgICAgICAgICAgICAgICAgbnVtZXJhdG9yIC09IHRoYXQ7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHF1b3RpZW50OworICAgIH0KKworICAgIGNv
bnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yJShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAg
eworICAgICAgICBpbnQgaiB7TGVhZGluZ1plcm9lcygpfTsKKyAgICAgICAgSW50MTI4SW1wbCBi
aXRzIHsqdGhpc307CisgICAgICAgIGJpdHMgPDw9IGo7CisgICAgICAgIEludDEyOEltcGwgcmVt
YWluZGVyIHsgfTsKKyAgICAgICAgZm9yICg7IGogPCAxMjg7ICsraikgeworICAgICAgICAgICAg
cmVtYWluZGVyIDw8PSAxOworICAgICAgICAgICAgaWYgKGJpdHMuaGlnaF8gJiB0b3BCaXQpCisg
ICAgICAgICAgICAgICAgcmVtYWluZGVyLmxvd18gfD0gMTsKKyAgICAgICAgICAgIGJpdHMgPDw9
IDE7CisgICAgICAgICAgICBpZiAocmVtYWluZGVyID49IHRoYXQpCisgICAgICAgICAgICAgICAg
cmVtYWluZGVyIC09IHRoYXQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJlbWFpbmRlcjsK
KyAgICB9CisKKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjwoSW50MTI4SW1wbCB0aGF0KSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKElTX1NJR05FRCAmJiAoaGlnaF8gXiB0aGF0LmhpZ2hf
KSAmIHRvcEJpdCkKKyAgICAgICAgICAgIHJldHVybiAhIShoaWdoXyAmIHRvcEJpdCk7CisKKyAg
ICAgICAgcmV0dXJuIGhpZ2hfIDwgdGhhdC5oaWdoXyB8fCAoaGlnaF8gPT0gdGhhdC5oaWdoXyAm
JiBsb3dfIDwgdGhhdC5sb3dfKTsKKyAgICB9CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3I8
PShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPiB0aGF0KTsgfQorICAg
IGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPT0oSW50MTI4SW1wbCB0aGF0KSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIGxvd18gPT0gdGhhdC5sb3dfICYmIGhpZ2hfID09IHRoYXQuaGlnaF87
CisgICAgfQorICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yIT0oSW50MTI4SW1wbCB0aGF0KSBj
b25zdCB7IHJldHVybiAhKCp0aGlzID09IHRoYXQpOyB9CisgICAgY29uc3RleHByIGJvb2wgb3Bl
cmF0b3I+PShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsgcmV0dXJuIHRoYXQgPD0gKnRoaXM7IH0K
KyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj4oSW50MTI4SW1wbCB0aGF0KSBjb25zdCB7IHJl
dHVybiB0aGF0IDwgKnRoaXM7IH0KKworICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRv
ciY9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0aGlz
ICYgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBjb25zdGV4cHIgSW50
MTI4SW1wbCAmb3BlcmF0b3J8PShjb25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAg
ICAgKnRoaXMgPSAqdGhpcyB8IHRoYXQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9Cisg
ICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJhdG9yXj0oY29uc3QgSW50MTI4SW1wbCAmdGhh
dCkKKyAgICB7CisgICAgICAgICp0aGlzID0gKnRoaXMgXiB0aGF0OworICAgICAgICByZXR1cm4g
KnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvcjw8PShjb25z
dCBJbnQxMjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyA8PCB0aGF0
OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBs
ICZvcGVyYXRvcj4+PShjb25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAgICAgKnRo
aXMgPSAqdGhpcyA+PiB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNv
bnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvcis9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisg
ICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzICsgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3ItPShjb25zdCBJbnQx
MjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAtIHRoYXQ7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJh
dG9yKj0oY29uc3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7CisgICAgICAgICp0aGlzID0gKnRo
aXMgKiB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJ
bnQxMjhJbXBsICZvcGVyYXRvci89KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAg
ICAgICAqdGhpcyA9ICp0aGlzIC8gdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0K
KyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3IlPShjb25zdCBJbnQxMjhJbXBsICZ0
aGF0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAlIHRoYXQ7CisgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3RleHByIEludDEyOEltcGwoc3Rk
Ojp1aW50NjRfdCBoaSwgc3RkOjp1aW50NjRfdCBsbykgOiBsb3dfIHtsb30sIGhpZ2hfIHtoaX0g
eyB9CisgICAgY29uc3RleHByIGludCBMZWFkaW5nWmVyb2VzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmICghaGlnaF8pCisgICAgICAgICAgICByZXR1cm4gNjQgKyBMZWFkaW5nWmVyb0JpdENv
dW50KGxvd18pOworICAgICAgICByZXR1cm4gTGVhZGluZ1plcm9CaXRDb3VudChoaWdoXyk7Cisg
ICAgfQorICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjp1aW50NjRfdCB0b3BCaXQge3N0ZDo6dWlu
dDY0X3QgezF9IDw8IDYzfTsKKyAgICBzdGQ6OnVpbnQ2NF90IGxvd18gezB9LCBoaWdoXyB7MH07
Cit9OworCisjaWYgIUFWT0lEX05BVElWRV9JTlQxMjhfVCAmJiBIQVZFKElOVDEyOF9UKQordXNp
bmcgVUludDEyOCA9IF9fdWludDEyOF90OwordXNpbmcgSW50MTI4ID0gX19pbnQxMjhfdDsKKyNl
bHNlCit1c2luZyBVSW50MTI4ID0gSW50MTI4SW1wbDxmYWxzZT47Cit1c2luZyBJbnQxMjggPSBJ
bnQxMjhJbXBsPHRydWU+OworI2VuZGlmCisKK3RlbXBsYXRlIDxpbnQgQklUUz4gc3RydWN0IEhv
c3RVbnNpZ25lZEludFR5cGVIZWxwZXIgeworICAgIHVzaW5nIHR5cGUgPSBzdGQ6OmNvbmRpdGlv
bmFsX3Q8KEJJVFMgPD0gOCksIHN0ZDo6dWludDhfdCwKKyAgICAgICAgc3RkOjpjb25kaXRpb25h
bF90PChCSVRTIDw9IDE2KSwgc3RkOjp1aW50MTZfdCwKKyAgICAgICAgc3RkOjpjb25kaXRpb25h
bF90PChCSVRTIDw9IDMyKSwgc3RkOjp1aW50MzJfdCwKKyAgICAgICAgc3RkOjpjb25kaXRpb25h
bF90PChCSVRTIDw9IDY0KSwgc3RkOjp1aW50NjRfdCwgVUludDEyOD4+Pj47Cit9OwordGVtcGxh
dGUgPGludCBCSVRTPiBzdHJ1Y3QgSG9zdFNpZ25lZEludFR5cGVIZWxwZXIgeworICAgIHVzaW5n
IHR5cGUgPSBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJVFMgPD0gOCksIHN0ZDo6aW50OF90LAorICAg
ICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJVFMgPD0gMTYpLCBzdGQ6OmludDE2X3QsCisgICAg
ICAgIHN0ZDo6Y29uZGl0aW9uYWxfdDwoQklUUyA8PSAzMiksIHN0ZDo6aW50MzJfdCwKKyAgICAg
ICAgc3RkOjpjb25kaXRpb25hbF90PChCSVRTIDw9IDY0KSwgc3RkOjppbnQ2NF90LCBJbnQxMjg+
Pj4+OworfTsKK3RlbXBsYXRlIDxpbnQgQklUUz4KK3VzaW5nIEhvc3RVbnNpZ25lZEludFR5cGUg
PSB0eXBlbmFtZSBIb3N0VW5zaWduZWRJbnRUeXBlSGVscGVyPEJJVFM+Ojp0eXBlOwordGVtcGxh
dGUgPGludCBCSVRTPgordXNpbmcgSG9zdFNpZ25lZEludFR5cGUgPSB0eXBlbmFtZSBIb3N0U2ln
bmVkSW50VHlwZUhlbHBlcjxCSVRTPjo6dHlwZTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3Vz
aW5nIFdURjo6SW50MTI4OwordXNpbmcgV1RGOjpVSW50MTI4OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTGVhZGluZ1plcm9CaXRDb3VudC5oIGIvU291cmNlL1dURi93dGYvTGVhZGluZ1pl
cm9CaXRDb3VudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YzJkNzg3ZmM1ZmZlZmI0YWQ0ZDkzZTZhY2IwMWY3
OWQ3ODVkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MZWFkaW5nWmVyb0Jp
dENvdW50LmgKQEAgLTAsMCArMSwxMDAgQEAKKy8vIFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1
bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNl
ZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgor
Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlv
bgorCisvLyBCYXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVj
dC9ibG9iL2Q0ODBmOTY4L2ZsYW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL2xlYWRpbmctemVyby1i
aXQtY291bnQuaAorCisjcHJhZ21hIG9uY2UKKworLy8gQSBmYXN0IGFuZCBwb3J0YWJsZSBmdW5j
dGlvbiB0aGF0IGltcGxlbWVudHMgRm9ydHJhbidzIExFQURaIGludHJpbnNpYworLy8gZnVuY3Rp
b24sIHdoaWNoIGNvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgKG1vc3Qgc2lnbmlmaWNhbnQp
IHplcm8gYml0CisvLyBwb3NpdGlvbnMgaW4gYW4gaW50ZWdlciB2YWx1ZS4gKElmIHRoZSBtb3N0
IHNpZ25pZmljYW50IGJpdCBpcyBzZXQsIHRoZQorLy8gbGVhZGluZyB6ZXJvIGNvdW50IGlzIHpl
cm87IGlmIG5vIGJpdCBpcyBzZXQsIHRoZSBsZWFkaW5nIHplcm8gY291bnQgaXMgdGhlCisvLyB3
b3JkIHNpemUgaW4gYml0czsgb3RoZXJ3aXNlLCBpdCdzIHRoZSBsYXJnZXN0IGxlZnQgc2hpZnQg
Y291bnQgdGhhdAorLy8gZG9lc24ndCByZWR1Y2UgdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZSB3
b3JkIHRoYXQgYXJlIHNldC4pCisKKyNpbmNsdWRlIDxjaW50dHlwZXM+CisKK25hbWVzcGFjZSBX
VEYgeworbmFtZXNwYWNlIGRldGFpbCB7CisvLyBUaGUgZm9sbG93aW5nIG1hZ2ljIGNvbnN0YW50
IGlzIGEgYmluYXJ5IGRlQnJ1aWpuIHNlcXVlbmNlLgorLy8gSXQgaGFzIHRoZSByZW1hcmthYmxl
IHByb3BlcnR5IHRoYXQgaWYgb25lIGV4dGVuZHMgaXQKKy8vICh2aXJ0dWFsbHkpIG9uIHRoZSBy
aWdodCB3aXRoIDUgbW9yZSB6ZXJvIGJpdHMsIHRoZW4gYWxsCisvLyBvZiB0aGUgNjQgY29udGln
dW91cyBmcmFtZWQgYmxvY2tzIG9mIHNpeCBiaXRzIGluIHRoZQorLy8gZXh0ZW5kZWQgNjktYml0
IHNlcXVlbmNlIGFyZSBkaXN0aW5jdC4gQ29uc2VxdWVudGx5LAorLy8gaWYgb25lIHNoaWZ0cyBp
dCBsZWZ0IGJ5IGFueSBzaGlmdCBjb3VudCBbMC4uNjNdIHdpdGgKKy8vIHRydW5jYXRpb24gYW5k
IGV4dHJhY3RzIHRoZSB1cHBlcm1vc3Qgc2l4IGJpdCBmaWVsZAorLy8gb2YgdGhlIHNoaWZ0ZWQg
dmFsdWUsIGVhY2ggc2hpZnQgY291bnQgbWFwcyB0byBhIGRpc3RpbmN0CisvLyBmaWVsZCB2YWx1
ZS4gVGhhdCBtZWFucyB0aGF0IHdlIGNhbiBtYXAgdGhvc2UgNjQgZmllbGQKKy8vIHZhbHVlcyBi
YWNrIHRvIHRoZSBzaGlmdCBjb3VudHMgdGhhdCBwcm9kdWNlIHRoZW0sCisvLyBhbmQgKHRoZSBw
b2ludCkgdGhpcyBtZWFucyB0aGF0IHdlIGNhbiBzaGlmdCB0aGlzIHZhbHVlCisvLyBieSBhbiB1
bmtub3duIGJpdCBjb3VudCBpbiBbMC4uNjNdIGFuZCB0aGVuIGZpZ3VyZSBvdXQKKy8vIHdoYXQg
dGhhdCBjb3VudCBtdXN0IGhhdmUgYmVlbi4KKy8vICAgIDAgICA3ICAgZSAgIGQgICBkICAgNSAg
IGUgICA1ICAgOSAgIGEgICA0ICAgZSAgIDIgICA4ICAgYyAgIDIKKy8vIDAwMDAwMTExMTExMDEx
MDExMTAxMDEwMTExMTAwMTAxMTAwMTEwMTAwMTAwMTExMDAwMTAxMDAwMTEwMDAwMTAKK3N0YXRp
YyBjb25zdGV4cHIgc3RkOjp1aW50NjRfdCBkZUJydWlqbiB7MHgwN2VkZDVlNTlhNGUyOGMyfTsK
K3N0YXRpYyBjb25zdGV4cHIgc3RkOjp1aW50OF90IG1hcHBpbmdbNjRdIHs2MywgMCwgNTgsIDEs
IDU5LCA0NywgNTMsIDIsIDYwLCAzOSwKKyAgICA0OCwgMjcsIDU0LCAzMywgNDIsIDMsIDYxLCA1
MSwgMzcsIDQwLCA0OSwgMTgsIDI4LCAyMCwgNTUsIDMwLCAzNCwgMTEsIDQzLAorICAgIDE0LCAy
MiwgNCwgNjIsIDU3LCA0NiwgNTIsIDM4LCAyNiwgMzIsIDQxLCA1MCwgMzYsIDE3LCAxOSwgMjks
IDEwLCAxMywgMjEsCisgICAgNTYsIDQ1LCAyNSwgMzEsIDM1LCAxNiwgOSwgMTIsIDQ0LCAyNCwg
MTUsIDgsIDIzLCA3LCA2LCA1fTsKK30gLy8gbmFtZXNwYWNlCisKK2lubGluZSBjb25zdGV4cHIg
aW50IExlYWRpbmdaZXJvQml0Q291bnQoc3RkOjp1aW50NjRfdCB4KQoreworICAgIGlmICgheCkK
KyAgICAgICAgcmV0dXJuIDY0OworCisgICAgeCB8PSB4ID4+IDE7CisgICAgeCB8PSB4ID4+IDI7
CisgICAgeCB8PSB4ID4+IDQ7CisgICAgeCB8PSB4ID4+IDg7CisgICAgeCB8PSB4ID4+IDE2Owor
ICAgIHggfD0geCA+PiAzMjsKKyAgICAvLyBBbGwgb2YgdGhlIGJpdHMgYmVsb3cgdGhlIHVwcGVy
bW9zdCBzZXQgYml0IGFyZSBub3cgYWxzbyBzZXQuCisgICAgeCAtPSB4ID4+IDE7IC8vIEFsbCBv
ZiB0aGUgYml0cyBiZWxvdyB0aGUgdXBwZXJtb3N0IGFyZSBub3cgY2xlYXIuCisgICAgLy8geCBu
b3cgaGFzIGV4YWN0bHkgb25lIGJpdCBzZXQsIHNvIGl0IGlzIGEgcG93ZXIgb2YgdHdvLCBzbwor
ICAgIC8vIG11bHRpcGxpY2F0aW9uIGJ5IHggaXMgZXF1aXZhbGVudCB0byBhIGxlZnQgc2hpZnQg
YnkgaXRzCisgICAgLy8gYmFzZS0yIGxvZ2FyaXRobS4gV2UgY2FsY3VsYXRlIHRoYXQgdW5rbm93
biBiYXNlLTIgbG9nYXJpdGhtCisgICAgLy8gYnkgc2hpZnRpbmcgdGhlIGRlQnJ1aWpuIHNlcXVl
bmNlIGFuZCBtYXBwaW5nIHRoZSBmcmFtZWQgdmFsdWUuCisgICAgaW50IGJhc2UyTG9nIHtkZXRh
aWw6Om1hcHBpbmdbKHggKiBkZXRhaWw6OmRlQnJ1aWpuKSA+PiA1OF19OworICAgIHJldHVybiA2
MyAtIGJhc2UyTG9nOyAvLyBjb252ZXJ0IHRvIGxlYWRpbmcgemVybyBjb3VudAorfQorCitpbmxp
bmUgY29uc3RleHByIGludCBMZWFkaW5nWmVyb0JpdENvdW50KHN0ZDo6dWludDMyX3QgeCkKK3sK
KyAgICByZXR1cm4gTGVhZGluZ1plcm9CaXRDb3VudChzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90
Pih4KSkgLSAzMjsKK30KKworaW5saW5lIGNvbnN0ZXhwciBpbnQgTGVhZGluZ1plcm9CaXRDb3Vu
dChzdGQ6OnVpbnQxNl90IHgpCit7CisgICAgcmV0dXJuIExlYWRpbmdaZXJvQml0Q291bnQoc3Rh
dGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4oeCkpIC0gNDg7Cit9CisKK25hbWVzcGFjZSBkZXRhaWwg
eworc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnVpbnQ4X3QgZWlnaHRCaXRMZWFkaW5nWmVyb0JpdENv
dW50WzI1Nl0gezgsIDcsIDYsIDYsIDUsIDUsCisgICAgNSwgNSwgNCwgNCwgNCwgNCwgNCwgNCwg
NCwgNCwgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywKKyAgICAz
LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAy
LCAyLCAyLCAyLCAyLCAyLAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDEsIDEsIDEsIDEs
IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCisgICAgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg
MSwgMSwKKyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLCAxLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07Cit9CisKK2lubGluZSBjb25zdGV4cHIgaW50
IExlYWRpbmdaZXJvQml0Q291bnQoc3RkOjp1aW50OF90IHgpCit7CisgICAgcmV0dXJuIGRldGFp
bDo6ZWlnaHRCaXRMZWFkaW5nWmVyb0JpdENvdW50W3hdOworfQorCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgQT4gaW5saW5lIGNvbnN0ZXhwciBpbnQgQml0c05lZWRlZEZvcihBIHgpCit7CisgICAgcmV0
dXJuIDggKiBzaXplb2YgeCAtIExlYWRpbmdaZXJvQml0Q291bnQoeCk7Cit9Cit9IC8vIG5hbWVz
cGFjZSBXVEYKKwordXNpbmcgV1RGOjpMZWFkaW5nWmVyb0JpdENvdW50OwordXNpbmcgV1RGOjpC
aXRzTmVlZGVkRm9yOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGYxNDE0MjRkMzc2ZmNmMzhmOWU2NmEwNmU0NWI0ODAzNDljMjJlZDIuLjlhMDc0
NjU4NmE0N2VhN2NjNjMxNGFiY2IyNDIxMWMzYmE2M2FkOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wOS0x
NyAgUGhpbGlwIENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IExMVk0vRkxhbmcncyBpbnQxMjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFk
ZGVkIHRlc3RzIGZvciBJbnQxMjggYW5kIExlYWRpbmdaZXJvQml0Q291bnQgY29waWVkIGZyb20g
TExWTSdzIHRlc3RzLAorICAgICAgICByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0
eWxlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9JbnQxMjguY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRlc3RV
bmFyeSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUZXN0QmluYXJ5KToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VG9OYXRpdmUpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6RnJvbU5hdGl2ZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpUZXN0VnNOYXRpdmUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xl
YWRpbmdaZXJvQml0Q291bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKENvdW50V2l0aFR3b1NoaWZ0
ZWRCaXRzKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIxLTA5LTE2ICBUeWxlciBXaWxjb2NrIDx0
d2lsY28ub0Bwcm90b25tYWlsLmNvbT4gYW5kIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBmb250LXdlaWdodCBzaG91bGQgYWx3YXlzIHNlcmlhbGl6
ZSBhcyBhIG51bWJlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXggY2NiMmNkMTM0
Njk4YjJiMzUyMDAxZjZiMjdkYzg4YzA4ZmI3NDdkZS4uNGQzMTRkYjkyY2Y0NGUyOTZiYzYxYzU5
ZGU4MWY1MWNjNGUxNDJhZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC00OSwx
MCArNDksMTIgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dURi9IYXNoZXIuY3Bw
CiAgICAgVGVzdHMvV1RGL0hleE51bWJlci5jcHAKICAgICBUZXN0cy9XVEYvSW5kZXhTcGFyc2VT
ZXQuY3BwCisgICAgVGVzdHMvV1RGL0ludDEyOC5jcHAKICAgICBUZXN0cy9XVEYvSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5jcHAKICAgICBUZXN0cy9XVEYvSXRlcmF0b3JSYW5nZS5jcHAKICAg
ICBUZXN0cy9XVEYvSlNPTlZhbHVlLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNwcAor
ICAgIFRlc3RzL1dURi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcAogICAgIFRlc3RzL1dURi9MaWZl
Y3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCiAgICAgVGVzdHMv
V1RGL0xpc3RIYXNoU2V0LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvSW50MTI4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWFhMGU1MTZlZGIxNTg3ODMzMGZkYzY5NWYyMThiMjczMDk3ZmM4NQot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludDEyOC5j
cHAKQEAgLTAsMCArMSwxNDQgQEAKKy8vIFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1bmRlciB0
aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNlZSBodHRw
czovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8gU1BE
WC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgorCisv
LyBCYXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9ibG9i
L2Q0ODBmOTY4L2ZsYW5nL3VuaXR0ZXN0cy9FdmFsdWF0ZS91aW50MTI4LmNwcAorCisjZGVmaW5l
IEFWT0lEX05BVElWRV9JTlQxMjhfVCAxCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
IDx3dGYvSW50MTI4Lmg+CisKKyNpbmNsdWRlIDxjaW50dHlwZXM+CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworc3RhdGljIHZvaWQgVGVzdFVuYXJ5KHN0ZDo6dWludDY0X3QgeCkKK3sK
KyAgICBVSW50MTI4IG4ge3h9OworICAgIEVYUEVDVF9FUSh4LCBzdGF0aWNfY2FzdDxzdGQ6OnVp
bnQ2NF90PihuKSk7CisgICAgRVhQRUNUX0VRKH54LCBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90
Pih+bikpOworICAgIEVYUEVDVF9FUSgteCwgc3RhdGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4oLW4p
KTsKKyAgICBFWFBFQ1RfRVEoIXgsIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KCFuKSk7Cisg
ICAgRVhQRUNUX1RSVUUobiA9PSBuKTsKKyAgICBFWFBFQ1RfVFJVRShuICsgbiA9PSBuICogc3Rh
dGljX2Nhc3Q8VUludDEyOD4oMikpOworICAgIEVYUEVDVF9UUlVFKG4gLSBuID09IHN0YXRpY19j
YXN0PFVJbnQxMjg+KDApKTsKKyAgICBFWFBFQ1RfVFJVRShuICsgbiA9PSBuIDw8IHN0YXRpY19j
YXN0PFVJbnQxMjg+KDEpKTsKKyAgICBFWFBFQ1RfVFJVRShuICsgbiA9PSBuIDw8IHN0YXRpY19j
YXN0PFVJbnQxMjg+KDEpKTsKKyAgICBFWFBFQ1RfVFJVRSgobiArIG4pIC0gbiA9PSBuKTsKKyAg
ICBFWFBFQ1RfVFJVRSgoKG4gKyBuKSA+PiBzdGF0aWNfY2FzdDxVSW50MTI4PigxKSkgPT0gbik7
CisgICAgaWYgKHgpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8VUludDEyOD4o
MCkgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDApKTsKKyAgICAgICAgRVhQRUNUX1RSVUUo
c3RhdGljX2Nhc3Q8VUludDEyOD4obiAtIDEpIC8gbiA9PSBzdGF0aWNfY2FzdDxVSW50MTI4Pigw
KSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PFVJbnQxMjg+KG4pIC8gbiA9PSBz
dGF0aWNfY2FzdDxVSW50MTI4PigxKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0
PFVJbnQxMjg+KG4gKyBuIC0gMSkgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDEpKTsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8VUludDEyOD4obiArIG4pIC8gbiA9PSBzdGF0
aWNfY2FzdDxVSW50MTI4PigyKSk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBUZXN0QmluYXJ5
KHN0ZDo6dWludDY0X3QgeCwgc3RkOjp1aW50NjRfdCB5KQoreworICAgIFVJbnQxMjggbSB7eH0s
IG4ge3l9OworICAgIEVYUEVDVF9FUSh4LCBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihtKSk7
CisgICAgRVhQRUNUX0VRKHksIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pKTsKKyAgICBF
WFBFQ1RfRVEoeCAmIHksIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG0gJiBuKSk7CisgICAg
RVhQRUNUX0VRKHggfCB5LCBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihtIHwgbikpOworICAg
IEVYUEVDVF9FUSh4IF4geSwgc3RhdGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4obSBeIG4pKTsKKyAg
ICBFWFBFQ1RfRVEoeCArIHksIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG0gKyBuKSk7Cisg
ICAgRVhQRUNUX0VRKHggLSB5LCBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihtIC0gbikpOwor
ICAgIEVYUEVDVF9FUSh4ICogeSwgc3RhdGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4obSAqIG4pKTsK
KyAgICBpZiAobikKKyAgICAgICAgRVhQRUNUX0VRKHggLyB5LCBzdGF0aWNfY2FzdDxzdGQ6OnVp
bnQ2NF90PihtIC8gbikpOworfQorCitURVNUKFdURl9JbnQxMjgsIEJhc2ljKQoreworICAgIGZv
ciAoc3RkOjp1aW50NjRfdCBqIHswfTsgaiA8IDY0OyArK2opIHsKKyAgICAgICAgVGVzdFVuYXJ5
KGopOworICAgICAgICBUZXN0VW5hcnkofmopOworICAgICAgICBUZXN0VW5hcnkoc3RkOjp1aW50
NjRfdCgxKSA8PCBqKTsKKyAgICAgICAgZm9yIChzdGQ6OnVpbnQ2NF90IGsgezB9OyBrIDwgNjQ7
ICsraykKKyAgICAgICAgICAgIFRlc3RCaW5hcnkoaiwgayk7CisgICAgfQorfQorCisjaWYgSEFW
RShJTlQxMjhfVCkKK3N0YXRpYyBfX3VpbnQxMjhfdCBUb05hdGl2ZShVSW50MTI4IG4pCit7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PF9fdWludDEyOF90PihzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2
NF90PihuID4+IDY0KSkgPDwgNjQgfAorICAgICAgICBzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90
PihuKTsKK30KKworc3RhdGljIFVJbnQxMjggRnJvbU5hdGl2ZShfX3VpbnQxMjhfdCBuKQorewor
ICAgIHJldHVybiBVSW50MTI4IHtzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihuID4+IDY0KX0g
PDwgNjQgfAorICAgICAgICBVSW50MTI4IHtzdGF0aWNfY2FzdDxzdGQ6OnVpbnQ2NF90PihuKX07
Cit9CisKK3N0YXRpYyB2b2lkIFRlc3RWc05hdGl2ZShfX3VpbnQxMjhfdCB4LCBfX3VpbnQxMjhf
dCB5KQoreworICAgIFVJbnQxMjggbSB7RnJvbU5hdGl2ZSh4KX0sIG4ge0Zyb21OYXRpdmUoeSl9
OworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0pID09IHgpOworICAgIEVYUEVDVF9UUlVFKFRv
TmF0aXZlKG4pID09IHkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKH5tKSA9PSB+eCk7Cisg
ICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUoLW0pID09IC14KTsKKyAgICBFWFBFQ1RfVFJVRShUb05h
dGl2ZSghbSkgPT0gIXgpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPCBuKSA9PSAoeCA8
IHkpKTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtIDw9IG4pID09ICh4IDw9IHkpKTsKKyAg
ICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtID09IG4pID09ICh4ID09IHkpKTsKKyAgICBFWFBFQ1Rf
VFJVRShUb05hdGl2ZShtICE9IG4pID09ICh4ICE9IHkpKTsKKyAgICBFWFBFQ1RfVFJVRShUb05h
dGl2ZShtID49IG4pID09ICh4ID49IHkpKTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtID4g
bikgPT0gKHggPiB5KSk7CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSAmIG4pID09ICh4ICYg
eSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gfCBuKSA9PSAoeCB8IHkpKTsKKyAgICBF
WFBFQ1RfVFJVRShUb05hdGl2ZShtIF4gbikgPT0gKHggXiB5KSk7CisgICAgaWYgKHkgPCAxMjgp
IHsKKyAgICAgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSA8PCBuKSA9PSAoeCA8PCB5KSk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPj4gbikgPT0gKHggPj4geSkpOworICAgIH0K
KyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtICsgbikgPT0gKHggKyB5KSk7CisgICAgRVhQRUNU
X1RSVUUoVG9OYXRpdmUobSAtIG4pID09ICh4IC0geSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0
aXZlKG0gKiBuKSA9PSAoeCAqIHkpKTsKKyAgICBpZiAoeSA+IDApIHsKKyAgICAgICAgRVhQRUNU
X1RSVUUoVG9OYXRpdmUobSAvIG4pID09ICh4IC8geSkpOworICAgICAgICBFWFBFQ1RfVFJVRShU
b05hdGl2ZShtICUgbikgPT0gKHggJSB5KSk7CisgICAgICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZl
KG0gLSBuICogKG0gLyBuKSkgPT0gKHggJSB5KSk7CisgICAgfQorfQorCitURVNUKFdURl9JbnQx
MjgsIFZzTmF0aXZlKQoreworICAgIEdURVNUX0xPR18oSU5GTykgPDwgIkVudmlyb25tZW50IGhh
cyBuYXRpdmUgX191aW50MTI4X3QiOworCisgICAgZm9yIChpbnQgaiB7MH07IGogPCAxMjg7ICsr
aikgeworICAgICAgICBmb3IgKGludCBrIHswfTsgayA8IDEyODsgKytrKSB7CisgICAgICAgICAg
ICBfX3VpbnQxMjhfdCBtIHsxfSwgbiB7MX07CisgICAgICAgICAgICBtIDw8PSBqLCBuIDw8PSBr
OworICAgICAgICAgICAgVGVzdFZzTmF0aXZlKG0sIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0
aXZlKH5tLCBuKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtLCB+bik7CisgICAgICAgICAg
ICBUZXN0VnNOYXRpdmUofm0sIH5uKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtIF4gbiwg
bik7CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUobSwgbSBeIG4pOworICAgICAgICAgICAgVGVz
dFZzTmF0aXZlKG0gXiB+biwgbik7CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUobSwgfm0gXiBu
KTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtIF4gfm4sIG0gXiBuKTsKKyAgICAgICAgICAg
IFRlc3RWc05hdGl2ZShtIF4gbiwgfm0gXiBuKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZSht
IF4gfm4sIH5tIF4gbik7CisgICAgICAgICAgICBUZXN0QmluYXJ5KG0sIDEwMDAwMDAwMDAwMDAw
MDAwKTsgLy8gaW1wb3J0YW50IGNhc2UgZm9yIGRlY2ltYWwgY29udmVyc2lvbgorICAgICAgICAg
ICAgVGVzdEJpbmFyeSh+bSwgMTAwMDAwMDAwMDAwMDAwMDApOworICAgICAgICB9CisgICAgfQor
fQorCisjZWxzZSAvLyAhSEFWRShJTlQxMjhfVCkKKworVEVTVChXVEZfSW50MTI4LCBWc05hdGl2
ZSkKK3sKKyAgICBHVEVTVF9MT0dfKElORk8pIDw8ICJFbnZpcm9ubWVudCBsYWNrcyBuYXRpdmUg
X191aW50MTI4X3QiOworfQorCisjZW5kaWYgLy8gIUhBVkUoSU5UMTI4X1QpCisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0xlYWRpbmdaZXJvQml0Q291bnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvTGVhZGluZ1plcm9CaXRDb3VudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDNjNGI4MzgxN2NhMjIy
NTA2MTE5NDkzOWE5YjRjZTEwZjNhYjMwNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV1RGL0xlYWRpbmdaZXJvQml0Q291bnQuY3BwCkBAIC0wLDAgKzEsNDUg
QEAKKy8vIFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2Ug
djIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VO
U0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp
ZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgorCisvLyBCYXNlZCBvbjoKKy8vIGh0
dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9ibG9iL2Q0ODBmOTY4L2ZsYW5nL3Vu
aXR0ZXN0cy9FdmFsdWF0ZS9sZWFkaW5nLXplcm8tYml0LWNvdW50LmNwcAorCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSA8d3RmL0xlYWRpbmdaZXJvQml0Q291bnQuaD4KKworI2luY2x1
ZGUgPGxpbWl0cz4KKwordGVtcGxhdGUgPHR5cGVuYW1lIEludFR5cGU+CitzdGF0aWMgYm9vbCBD
b3VudFdpdGhUd29TaGlmdGVkQml0cyhpbnQgaiwgaW50IGspCit7CisgICAgSW50VHlwZSB4ID0g
KEludFR5cGUgezF9IDw8IGopIHwgKEludFR5cGUgezF9IDw8IGspOworICAgIHJldHVybiBMZWFk
aW5nWmVyb0JpdENvdW50KHgpID09IHN0ZDo6bnVtZXJpY19saW1pdHM8SW50VHlwZT46OmRpZ2l0
cyAtIDEgLSBqOworfQorCitURVNUKFdURl9MZWFkaW5nWmVyb0JpdENvdW50LCBCYXNpYykKK3sK
KyAgICBFWFBFQ1RfRVEoTGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQ2NF90IHswfSksIDY0
KTsKKyAgICBmb3IgKGludCBqIHswfTsgaiA8IDY0OyArK2opIHsKKyAgICAgICAgZm9yIChpbnQg
ayB7MH07IGsgPCBqOyArK2spCisgICAgICAgICAgICBFWFBFQ1RfUFJFRDIoQ291bnRXaXRoVHdv
U2hpZnRlZEJpdHM8c3RkOjp1aW50NjRfdD4sIGosIGspOworICAgIH0KKworICAgIEVYUEVDVF9F
UShMZWFkaW5nWmVyb0JpdENvdW50KHN0ZDo6dWludDMyX3QgezB9KSwgMzIpOworICAgIGZvciAo
aW50IGogezB9OyBqIDwgMzI7ICsraikgeworICAgICAgICBmb3IgKGludCBrIHswfTsgayA8IGo7
ICsraykKKyAgICAgICAgICAgIEVYUEVDVF9QUkVEMihDb3VudFdpdGhUd29TaGlmdGVkQml0czxz
dGQ6OnVpbnQzMl90Piwgaiwgayk7CisgICAgfQorCisgICAgRVhQRUNUX0VRKExlYWRpbmdaZXJv
Qml0Q291bnQoc3RkOjp1aW50MTZfdCB7MH0pLCAxNik7CisgICAgZm9yIChpbnQgaiB7MH07IGog
PCAxNjsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwgajsgKytrKQorICAgICAg
ICAgICAgRVhQRUNUX1BSRUQyKENvdW50V2l0aFR3b1NoaWZ0ZWRCaXRzPHN0ZDo6dWludDE2X3Q+
LCBqLCBrKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoTGVhZGluZ1plcm9CaXRDb3VudChzdGQ6
OnVpbnQ4X3QgezB9KSwgOCk7CisgICAgZm9yIChpbnQgaiB7MH07IGogPCA4OyArK2opIHsKKyAg
ICAgICAgZm9yIChpbnQgayB7MH07IGsgPCBqOyArK2spCisgICAgICAgICAgICBFWFBFQ1RfUFJF
RDIoQ291bnRXaXRoVHdvU2hpZnRlZEJpdHM8c3RkOjp1aW50OF90Piwgaiwgayk7CisgICAgfQor
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438710</attachid>
            <date>2021-09-20 12:19:32 -0700</date>
            <delta_ts>2021-09-20 13:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230437-20210920121931.patch</filename>
            <type>text/plain</type>
            <size>50070</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3Zjg5M2Y5N2IyMmI2NmQzOTU1MTgy
YWFmYWJlNjBiYjI1YWMxMTcuLjEzMDdhYWQwZGVlMDQ3ZGU1ZTM2ZTIwNzU5ODdmNTJlZDU1NzBl
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDktMjAgIFBoaWxpcCBDaGltZW50byAgPHBo
aWxpcC5jaGltZW50b0BnbWFpbC5jb20+CisKKyAgICAgICAgQWRkIExMVk0vRkxhbmcncyBpbnQx
MjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFkZGVkIGludDEyOF90IGltcGxl
bWVudGF0aW9uIGZyb20gTExWTSwgYW5kIGl0cyBkZXBlbmRlbmN5CisgICAgICAgIExlYWRpbmda
ZXJvQml0Q291bnQuaC4gQm90aCByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0eWxl
LgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBMSUNF
TlNFLUxMVk0udHh0OiBBZGRlZC4KKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0ludDEy
OC5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6SW50MTI4SW1wbCk6CisgICAg
ICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6Oklu
dDEyOEltcGw6Om9wZXJhdG9yfiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9w
ZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yISBjb25z
dCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAg
ICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvciBzdGQ6OnVpbnQ2NF90IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Igc3RkOjppbnQ2NF90IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3IgaW50IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6SW50MTI4SW1wbDo6aGlnaCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Omxv
dyBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yKyspOgorICAgICAg
ICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvci0tKToKKyAgICAgICAgKFdURjo6SW50MTI4SW1w
bDo6b3BlcmF0b3ImIGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Ig
fCAgY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcl4gY29uc3QpOgor
ICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcjw8IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6SW50MTI4SW1wbDo6b3BlcmF0b3I+PiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9y
LyBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yJSBjb25zdCk6Cisg
ICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIChXVEY6
OkludDEyOEltcGw6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBs
OjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Ih
PSBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yPj0gY29uc3QpOgor
ICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RG
OjpJbnQxMjhJbXBsOjpvcGVyYXRvciY9KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3Bl
cmF0b3J8PSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yXj0pOgorICAgICAg
ICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcjw8PSk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yPj49KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3IrPSk6
CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yLT0pOgorICAgICAgICAoV1RGOjpJ
bnQxMjhJbXBsOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0
b3IvPSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yJT0pOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpsZWFkaW5nWmVyb2VzIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTGVh
ZGluZ1plcm9CaXRDb3VudC5jcHA6IEFkZGVkLgorICAgICAgICAqIHd0Zi9MZWFkaW5nWmVyb0Jp
dENvdW50Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpsZWFkaW5nWmVyb0JpdENvdW50KToKKyAg
ICAgICAgKFdURjo6Yml0c05lZWRlZEZvcik6CisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8g
bWFrZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0
IGIvU291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ZGM1MDYxNWQ3ZWMy
Yjk5MTNkYzQzNGZiMjQzZmMzMDg4OWQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L0xJQ0VOU0UtTExWTS50eHQKQEAgLTAsMCArMSwyMTkgQEAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBW
ZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1Ig
VVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgIDEuIERlZmluaXRpb25z
LgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg
Zm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVk
IGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNl
bnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVk
IGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vu
c2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBh
Y3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwg
YXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0
aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAg
ICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBj
YXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3
aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlw
IG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5n
IHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisK
KyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdh
bCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExp
Y2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZv
cm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGlt
aXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNl
LCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBt
ZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0
aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAg
IG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRh
dGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAg
ICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBT
b3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGlj
ZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBp
bmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMg
cHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29y
a3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAg
ICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQg
Zm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVs
YWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBh
IHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMK
KyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVk
ZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5r
IChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsg
YW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hh
bGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmln
aW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlv
bnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQg
aXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNp
b24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5k
aXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9m
CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVm
aW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMs
IHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNl
bnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRv
CisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNl
IGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMg
dGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29y
IGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1
dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1h
cmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29w
eXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0
b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0
eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2
ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhp
biB0aGUgV29yay4KKworICAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0
IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNo
IENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29y
bGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2Fi
bGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0
aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwg
c3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2
YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAgMy4gR3JhbnQgb2Yg
UGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisg
ICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3Ug
YSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwg
cm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhp
cyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2Us
IG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUg
V29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0
ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJl
IG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFs
b25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0
aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJ
ZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRp
dHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBs
YXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBp
bmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3Ig
Y29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNl
cworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsg
c2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMg
ZmlsZWQuCisKKyAgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRp
c3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRo
ZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25z
LCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAg
bWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZl
IGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2
ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0
IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAg
ICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAo
YykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUg
V29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRl
bnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRo
ZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90
aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERl
cml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAi
Tk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24s
IHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAg
ICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMg
Y29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0
aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBv
ZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhl
IGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQK
KyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNv
dXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcg
d2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxh
eSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdo
ZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250
ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwg
cHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZ
b3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGlu
IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAg
ICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHBy
b3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNl
cyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNl
LgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlv
dXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlm
ZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJv
ZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAg
IGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIg
dXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90
aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhp
cyBMaWNlbnNlLgorCisgICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3Mg
WW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBp
bnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBi
eSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0
aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1z
IG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5n
IGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55
IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAg
d2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICAgNi4gVHJh
ZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRo
ZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1
Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciBy
ZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmln
aW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0Ug
ZmlsZS4KKworICAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29y
IHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMg
aXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAg
ICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGll
cyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hB
TlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlv
dSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJv
cHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1l
IGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlz
c2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxp
dHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVy
IGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwK
KyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVy
YXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3Ig
ZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAg
aW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJp
c2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNl
IG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBs
aW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3Bw
YWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAg
ICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250
cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3Vj
aCBkYW1hZ2VzLgorCisgICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlh
YmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2
ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFy
Z2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHks
CisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25z
aXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1
Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFs
ZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBv
ZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5p
ZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9y
IGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdh
aW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5n
IGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICAgRU5EIE9G
IFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBB
cGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUg
TGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJw
bGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisg
ICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9u
J3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNs
b3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmls
ZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBu
YW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAg
c2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisg
ICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgICBD
b3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKworICAgIExpY2Vuc2Vk
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwor
ICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4KKyAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisg
ICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLCBzb2Z0d2FyZQorICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZAorICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKKy0tLSBMTFZN
IEV4Y2VwdGlvbnMgdG8gdGhlIEFwYWNoZSAyLjAgTGljZW5zZSAtLS0tCisKK0FzIGFuIGV4Y2Vw
dGlvbiwgaWYsIGFzIGEgcmVzdWx0IG9mIHlvdXIgY29tcGlsaW5nIHlvdXIgc291cmNlIGNvZGUs
IHBvcnRpb25zCitvZiB0aGlzIFNvZnR3YXJlIGFyZSBlbWJlZGRlZCBpbnRvIGFuIE9iamVjdCBm
b3JtIG9mIHN1Y2ggc291cmNlIGNvZGUsIHlvdQorbWF5IHJlZGlzdHJpYnV0ZSBzdWNoIGVtYmVk
ZGVkIHBvcnRpb25zIGluIHN1Y2ggT2JqZWN0IGZvcm0gd2l0aG91dCBjb21wbHlpbmcKK3dpdGgg
dGhlIGNvbmRpdGlvbnMgb2YgU2VjdGlvbnMgNChhKSwgNChiKSBhbmQgNChkKSBvZiB0aGUgTGlj
ZW5zZS4KKworSW4gYWRkaXRpb24sIGlmIHlvdSBjb21iaW5lIG9yIGxpbmsgY29tcGlsZWQgZm9y
bXMgb2YgdGhpcyBTb2Z0d2FyZSB3aXRoCitzb2Z0d2FyZSB0aGF0IGlzIGxpY2Vuc2VkIHVuZGVy
IHRoZSBHUEx2MiAoIkNvbWJpbmVkIFNvZnR3YXJlIikgYW5kIGlmIGEKK2NvdXJ0IG9mIGNvbXBl
dGVudCBqdXJpc2RpY3Rpb24gZGV0ZXJtaW5lcyB0aGF0IHRoZSBwYXRlbnQgcHJvdmlzaW9uIChT
ZWN0aW9uCiszKSwgdGhlIGluZGVtbml0eSBwcm92aXNpb24gKFNlY3Rpb24gOSkgb3Igb3RoZXIg
U2VjdGlvbiBvZiB0aGUgTGljZW5zZQorY29uZmxpY3RzIHdpdGggdGhlIGNvbmRpdGlvbnMgb2Yg
dGhlIEdQTHYyLCB5b3UgbWF5IHJldHJvYWN0aXZlbHkgYW5kCitwcm9zcGVjdGl2ZWx5IGNob29z
ZSB0byBkZWVtIHdhaXZlZCBvciBvdGhlcndpc2UgZXhjbHVkZSBzdWNoIFNlY3Rpb24ocykgb2YK
K3RoZSBMaWNlbnNlLCBidXQgb25seSBpbiB0aGVpciBlbnRpcmV0eSBhbmQgb25seSB3aXRoIHJl
c3BlY3QgdG8gdGhlIENvbWJpbmVkCitTb2Z0d2FyZS4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWZjZjNmMWNmMDMxNmU4YzVlNmE2ZDhhNjM3NGM0ZjFj
NjA2MTY5Zi4uMjYyNTY4OTc3ZWJkOWU0YmQ0NThhMDI2YThmM2UzZDkzYjgzMzgzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODksNiArMTg5LDcgQEAK
IAkJRTRBMEFEM0QxQTk2MjUzQzAwNTM2REY2IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTBBRDNDMUE5NjI1M0Mw
MDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgKi87IH07CiAJCUVCMkM4NkQ5MjY3QjI3NUQw
MDUyQ0I5QSAvKiBDUFVUaW1lUE9TSVguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRUIyQzg2RDgyNjdCMjc1QzAwNTJDQjlBIC8qIENQVVRpbWVQT1NJ
WC5jcHAgKi87IH07CiAJCUVCNjFFREM3MjQwOUNDQzEwMDFFRkUzNiAvKiBTeXN0ZW1UcmFjaW5n
Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUI2MUVEQzYyNDA5Q0NDMDAwMUVGRTM2IC8qIFN5c3RlbVRyYWNpbmdDb2NvYS5jcHAgKi87IH07
CisJCUY2RDY3RDM0MjZGOTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RDY3RDMzMjZG
OTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCAqLzsgfTsKIAkJRkUwMzJB
RDIyNDYzRTQzQjAwMTJEN0M3IC8qIFdURkNvbmZpZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTAzMkFEMDI0NjNFNDNCMDAxMkQ3QzcgLyogV1RG
Q29uZmlnLmNwcCAqLzsgfTsKIAkJRkUwNUZBRkYxRkU1MDA3NTAwMDkzMjMwIC8qIFdURkFzc2Vy
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkUwNUZBRkUxRkU1MDA3NTAwMDkzMjMwIC8qIFdURkFzc2VydGlvbnMuY3BwICovOyB9OwogCQlG
RTFFMkMzQjIyNDBDMDY2MDBGNkI3MjkgLyogUHRyVGFnLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUUyQzM5MjI0MEMwNTQwMEY2QjcyOSAvKiBQ
dHJUYWcuY3BwICovOyB9OwpAQCAtNzg0LDYgKzc4NSw5IEBACiAJCUVCOTVFMUVGMTYxQTcyNDEw
MDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qnl0ZU9yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCRkY2N0ZDMjQwRDdE
NjYwMDc4RkYxQiAvKiBPU1ZhcmlhbnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT1NWYXJpYW50U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVGN0Q2
Q0Q1OUQ4NjQyQThBMERBODZBRCAvKiBTdGFja1RyYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0YWNrVHJhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjZENjdEMzEyNkY5MDE0MjAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291bnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVhZGluZ1plcm9CaXRDb3VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNkQ2N0QzMjI2RjkwMTQyMDA2RTAzNDkgLyogSW50MTI4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDEyOC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNkQ2N0QzMzI2RjkwMTQzMDA2RTAzNDkgLyogTGVhZGluZ1pl
cm9CaXRDb3VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWFk
aW5nWmVyb0JpdENvdW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjcyQkJE
QjEwN0ZBNDI0ODg2MTc4QjlFIC8qIFN5bWJvbEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3ltYm9sSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFMDMyQUQwMjQ2M0U0M0IwMDEyRDdDNyAvKiBXVEZDb25maWcuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGQ29uZmlnLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUwMzJBRDEyNDYzRTQzQjAwMTJEN0M3IC8qIFdURkNvbmZpZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZDb25maWcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTIsNiArMTExNiw3IEBACiAJCQkJQThBNDcyQkMxNTFB
ODI1QTAwNDEyM0ZGIC8qIElubGluZUFTTS5oICovLAogCQkJCUE3MERBMDgyMTc5OUYwNEQwMDUy
OUE5QiAvKiBJbnNlcnRpb24uaCAqLywKIAkJCQk1MTgyQzIyQzFGMkJDN0U2MDA1OUJBN0MgLyog
SW5zdGFuY2VDb3VudGVkLmggKi8sCisJCQkJRjZENjdEMzIyNkY5MDE0MjAwNkUwMzQ5IC8qIElu
dDEyOC5oICovLAogCQkJCTMzRkQ0ODExMjY1Q0IzODAwMEFCRTRGNCAvKiBJbnRlcmZlcmVuY2VH
cmFwaC5oICovLAogCQkJCTBGN0VCODVCMUZBOEZGNDEwMEYxQUJDQiAvKiBJc29NYWxsb2MuaCAq
LywKIAkJCQkwRjdFQjg1QzFGQThGRjQyMDBGMUFCQ0IgLyogSXNvTWFsbG9jSW5saW5lcy5oICov
LApAQCAtMTEyNCw2ICsxMTI5LDggQEAKIAkJCQk3Qzk2OTI5NDFGNjYzMDZFMDAyNjdBOUUgLyog
S2V5VmFsdWVQYWlyLmggKi8sCiAJCQkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1
YWdlLmNwcCAqLywKIAkJCQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAq
LywKKwkJCQlGNkQ2N0QzMzI2RjkwMTQzMDA2RTAzNDkgLyogTGVhZGluZ1plcm9CaXRDb3VudC5j
cHAgKi8sCisJCQkJRjZENjdEMzEyNkY5MDE0MjAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291
bnQuaCAqLywKIAkJCQk1MzlFQjA2MjFENTUyODQyMDBDODJFRjcgLyogTEVCRGVjb2Rlci5oICov
LAogCQkJCTMzN0IyRDY4MjY1NDZFQUEwMERERkQzRCAvKiBMaWtlbHlEZW5zZVVuc2lnbmVkSW50
ZWdlclNldC5jcHAgKi8sCiAJCQkJMzM3QjJENjkyNjU0NkVBQTAwRERGRDNEIC8qIExpa2VseURl
bnNlVW5zaWduZWRJbnRlZ2VyU2V0LmggKi8sCkBAIC0xNzYwLDYgKzE3NjcsNyBAQAogCQkJCUMy
QkNGQzQwMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDMkJDRkM0MjFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQzUwM0JFNjIzQUFFMEFFMDA3MkU2NkIgLyogTGFuZ3VhZ2VDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUY2RDY3RDM0MjZGOTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0Jp
dENvdW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzN0IyRDZBMjY1NDZFQjMwMERERkQzRCAv
KiBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
M0I4RTQxRDI0RTdDRTkyMDAzNjU1RDggLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMyQkNGQzU1MUY2MjFGM0YwMEM5MjIyQyAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwODI2Yjg1M2Q1NTYy
MmZlMTg2OGZhMzZjOTdlZDI5MGJlY2MzODc1Li42NGYwZjU1MjliMjk4MDM1NjU1ZjE2Yzg0MGFi
ZDNkMTkxMDI4YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNl
dChXVEZfUFVCTElDX0hFQURFUlMKICAgICBJbmxpbmVBU00uaAogICAgIEluc2VydGlvbi5oCiAg
ICAgSW5zdGFuY2VDb3VudGVkLmgKKyAgICBJbnQxMjguaAogICAgIEludGVyZmVyZW5jZUdyYXBo
LmgKICAgICBJc29NYWxsb2MuaAogICAgIElzb01hbGxvY0lubGluZXMuaApAQCAtMTEzLDYgKzEx
NCw3IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBLZXlWYWx1ZVBhaXIuaAogICAgIExF
QkRlY29kZXIuaAogICAgIExhbmd1YWdlLmgKKyAgICBMZWFkaW5nWmVyb0JpdENvdW50LmgKICAg
ICBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oCiAgICAgTGlzdER1bXAuaAogICAgIExp
c3RIYXNoU2V0LmgKQEAgLTQyMyw2ICs0MjUsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBKU09O
VmFsdWVzLmNwcAogICAgIEpTVmFsdWVNYWxsb2MuY3BwCiAgICAgTGFuZ3VhZ2UuY3BwCisgICAg
TGVhZGluZ1plcm9CaXRDb3VudC5jcHAKICAgICBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNl
dC5jcHAKICAgICBMb2NrLmNwcAogICAgIExvY2tlZFByaW50U3RyZWFtLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvSW50MTI4LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQxMjguaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NWZlODMyNDNhMjA4M2FjY2ZjNjljMGM2MzVkNTZhODgwMzQ1NjQwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvSW50MTI4LmgKQEAgLTAsMCArMSwyOTcgQEAKKy8v
IFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3
aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNlZSBTb3VyY2UvV1RGL0xJQ0VOU0UtTExWTS50eHQg
Zm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBh
Y2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCisKKy8vIFBvcnRhYmxlIDEyOC1iaXQgdW5zaWdu
ZWQgaW50ZWdlciBhcml0aG1ldGljIGZvciB1c2UgaW4gaW1wb3ZlcmlzaGVkCisvLyBDKysgaW1w
bGVtZW50YXRpb25zIGxhY2tpbmcgX191aW50MTI4X3QuCisKKy8vIEJhc2VkIG9uOgorLy8gaHR0
cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2Jsb2IvZDQ4MGY5NjgvZmxhbmcvaW5j
bHVkZS9mbGFuZy9Db21tb24vdWludDEyOC5oCisKKyNwcmFnbWEgb25jZQorCisvLyBEZWZpbmUg
QVZPSURfTkFUSVZFX0lOVDEyOF9UIHRvIGZvcmNlIHRoZSB1c2Ugb2YgSW50MTI4SW1wbCBiZWxv
dyBpbnN0ZWFkIG9mCisvLyB0aGUgQysrIGNvbXBpbGVyJ3MgbmF0aXZlIDEyOC1iaXQgdW5zaWdu
ZWQgaW50ZWdlciB0eXBlLCBpZiBpdCBoYXMgb25lLgorI2lmbmRlZiBBVk9JRF9OQVRJVkVfSU5U
MTI4X1QKKyNkZWZpbmUgQVZPSURfTkFUSVZFX0lOVDEyOF9UIDAKKyNlbmRpZgorCisjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNpbmNsdWRlIDx3dGYvTGVhZGlu
Z1plcm9CaXRDb3VudC5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUgPGJvb2wgSVNf
U0lHTkVEID0gZmFsc2U+IGNsYXNzIEludDEyOEltcGwgeworcHVibGljOgorICAgIGNvbnN0ZXhw
ciBJbnQxMjhJbXBsKCkgeyB9CisgICAgLy8gVGhpcyBtZWFucyBvZiBkZWZpbml0aW9uIHByb3Zp
ZGVzIHNvbWUgcG9ydGFiaWxpdHkgZm9yCisgICAgLy8gInNpemVfdCIgb3BlcmFuZHMuCisgICAg
Y29uc3RleHByIEludDEyOEltcGwodW5zaWduZWQgbikgOiBsb3dfIHtufSB7IH0KKyAgICBjb25z
dGV4cHIgSW50MTI4SW1wbCh1bnNpZ25lZCBsb25nIG4pIDogbG93XyB7bn0geyB9CisgICAgY29u
c3RleHByIEludDEyOEltcGwodW5zaWduZWQgbG9uZyBsb25nIG4pIDogbG93XyB7bn0geyB9Cisg
ICAgY29uc3RleHByIEludDEyOEltcGwoaW50IG4pCisgICAgICAgIDogbG93XyB7c3RhdGljX2Nh
c3Q8c3RkOjp1aW50NjRfdD4obil9CisgICAgICAgICwgaGlnaF8gey1zdGF0aWNfY2FzdDxzdGQ6
OnVpbnQ2NF90PihuIDwgMCl9CisgICAgeyB9CisgICAgY29uc3RleHByIEludDEyOEltcGwobG9u
ZyBuKQorICAgICAgICA6IGxvd18ge3N0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pfQorICAg
ICAgICAsIGhpZ2hfIHstc3RhdGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4obiA8IDApfQorICAgIHsg
fQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsKGxvbmcgbG9uZyBuKQorICAgICAgICA6IGxvd18g
e3N0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pfQorICAgICAgICAsIGhpZ2hfIHstc3RhdGlj
X2Nhc3Q8c3RkOjp1aW50NjRfdD4obiA8IDApfQorICAgIHsgfQorICAgIGNvbnN0ZXhwciBJbnQx
MjhJbXBsKGNvbnN0IEludDEyOEltcGwgJikgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhwciBJbnQx
MjhJbXBsKEludDEyOEltcGwgJiYpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgSW50MTI4SW1w
bCAmb3BlcmF0b3I9KGNvbnN0IEludDEyOEltcGwgJikgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhw
ciBJbnQxMjhJbXBsICZvcGVyYXRvcj0oSW50MTI4SW1wbCAmJikgPSBkZWZhdWx0OworCisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IrKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0K
KyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvcn4oKSBjb25zdCB7IHJldHVybiB7fmhp
Z2hfLCB+bG93X307IH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvci0oKSBjb25z
dCB7IHJldHVybiB+KnRoaXMgKyAxOyB9CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIWxvd18gJiYgIWhpZ2hfOyB9CisgICAgY29uc3RleHByIGV4cGxpY2l0
IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBsb3dfIHx8IGhpZ2hfOyB9CisgICAgY29u
c3RleHByIGV4cGxpY2l0IG9wZXJhdG9yIHN0ZDo6dWludDY0X3QoKSBjb25zdCB7IHJldHVybiBs
b3dfOyB9CisgICAgY29uc3RleHByIGV4cGxpY2l0IG9wZXJhdG9yIHN0ZDo6aW50NjRfdCgpIGNv
bnN0IHsgcmV0dXJuIGxvd187IH0KKyAgICBjb25zdGV4cHIgZXhwbGljaXQgb3BlcmF0b3IgaW50
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihsb3dfKTsgfQorCisgICAgY29uc3Rl
eHByIHN0ZDo6dWludDY0X3QgaGlnaCgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hfOyB9CisgICAgY29u
c3RleHByIHN0ZDo6dWludDY0X3QgbG93KCkgY29uc3QgeyByZXR1cm4gbG93XzsgfQorCisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IrKygvKnByZWZpeCovKQorICAgIHsKKyAgICAg
ICAgKnRoaXMgKz0gMTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbCBvcGVyYXRvcisrKGludCAvKnBvc3RmaXgqLykKKyAgICB7CisgICAgICAg
IEludDEyOEltcGwgcmVzdWx0IHsqdGhpc307CisgICAgICAgICp0aGlzICs9IDE7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9y
LS0oLypwcmVmaXgqLykKKyAgICB7CisgICAgICAgICp0aGlzIC09IDE7CisgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3ItLShpbnQg
Lypwb3N0Zml4Ki8pCisgICAgeworICAgICAgICBJbnQxMjhJbXBsIHJlc3VsdCB7KnRoaXN9Owor
ICAgICAgICAqdGhpcyAtPSAxOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yJihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4ge2hpZ2hfICYgdGhhdC5oaWdoXywgbG93XyAmIHRoYXQubG93
X307CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yIHwgKEludDEyOElt
cGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7aGlnaF8gfCB0aGF0LmhpZ2hf
LCBsb3dfIHwgdGhhdC5sb3dffTsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3Bl
cmF0b3JeKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7aGln
aF8gXiB0aGF0LmhpZ2hfLCBsb3dfIF4gdGhhdC5sb3dffTsKKyAgICB9CisKKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbCBvcGVyYXRvcjw8KEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIGlmICh0aGF0ID49IDEyOCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IGlmICghdGhhdCkKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgc3RkOjp1aW50
NjRfdCBuIHt0aGF0Lmxvd199OworICAgICAgICBpZiAobiA+PSA2NCkKKyAgICAgICAgICAgIHJl
dHVybiB7bG93XyA8PCAobiAtIDY0KSwgMH07CisgICAgICAgIHJldHVybiB7KGhpZ2hfIDw8IG4p
IHwgKGxvd18gPj4gKDY0IC0gbikpLCBsb3dfIDw8IG59OworICAgIH0KKyAgICBjb25zdGV4cHIg
SW50MTI4SW1wbCBvcGVyYXRvcj4+KEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmICh0aGF0ID49IDEyOCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGlm
ICghdGhhdCkKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgc3RkOjp1aW50NjRf
dCBuIHt0aGF0Lmxvd199OworICAgICAgICBpZiAobiA+PSA2NCkKKyAgICAgICAgICAgIHJldHVy
biB7MCwgaGlnaF8gPj4gKG4gLSA2NCl9OworICAgICAgICByZXR1cm4ge2hpZ2hfID4+IG4sICho
aWdoXyA8PCAoNjQgLSBuKSkgfCAobG93XyA+PiBuKX07CisgICAgfQorCisgICAgY29uc3RleHBy
IEludDEyOEltcGwgb3BlcmF0b3IrKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHN0ZDo6dWludDY0X3QgbG93ZXIgeyhsb3dfICYgfnRvcEJpdCkgKyAodGhhdC5sb3dfICYg
fnRvcEJpdCl9OworICAgICAgICBib29sIGNhcnJ5IHsoKGxvd2VyID4+IDYzKSArIChsb3dfID4+
IDYzKSArICh0aGF0Lmxvd18gPj4gNjMpKSA+IDF9OworICAgICAgICByZXR1cm4ge2hpZ2hfICsg
dGhhdC5oaWdoXyArIGNhcnJ5LCBsb3dfICsgdGhhdC5sb3dffTsKKyAgICB9CisgICAgY29uc3Rl
eHByIEludDEyOEltcGwgb3BlcmF0b3ItKEludDEyOEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4g
KnRoaXMgKyAtdGhhdDsgfQorCisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IqKElu
dDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHN0ZDo6dWludDY0X3QgbWFzazMy
IHsweGZmZmZmZmZmfTsKKyAgICAgICAgaWYgKCFoaWdoXyAmJiAhdGhhdC5oaWdoXykgeworICAg
ICAgICAgICAgc3RkOjp1aW50NjRfdCB4MCB7bG93XyAmIG1hc2szMn0sIHgxIHtsb3dfID4+IDMy
fTsKKyAgICAgICAgICAgIHN0ZDo6dWludDY0X3QgeTAge3RoYXQubG93XyAmIG1hc2szMn0sIHkx
IHt0aGF0Lmxvd18gPj4gMzJ9OworICAgICAgICAgICAgSW50MTI4SW1wbCB4MHkwIHt4MCAqIHkw
fSwgeDB5MSB7eDAgKiB5MX07CisgICAgICAgICAgICBJbnQxMjhJbXBsIHgxeTAge3gxICogeTB9
LCB4MXkxIHt4MSAqIHkxfTsKKyAgICAgICAgICAgIHJldHVybiB4MHkwICsgKCh4MHkxICsgeDF5
MCkgPDwgMzIpICsgKHgxeTEgPDwgNjQpOworICAgICAgICB9CisKKyAgICAgICAgc3RkOjp1aW50
NjRfdCB4MCB7bG93XyAmIG1hc2szMn0sIHgxIHtsb3dfID4+IDMyfSwgeDIge2hpZ2hfICYgbWFz
azMyfSwKKyAgICAgICAgICAgIHgzIHtoaWdoXyA+PiAzMn07CisgICAgICAgIHN0ZDo6dWludDY0
X3QgeTAge3RoYXQubG93XyAmIG1hc2szMn0sIHkxIHt0aGF0Lmxvd18gPj4gMzJ9LAorICAgICAg
ICAgICAgeTIge3RoYXQuaGlnaF8gJiBtYXNrMzJ9LCB5MyB7dGhhdC5oaWdoXyA+PiAzMn07Cisg
ICAgICAgIEludDEyOEltcGwgeDB5MCB7eDAgKiB5MH0sIHgweTEge3gwICogeTF9LCB4MHkyIHt4
MCAqIHkyfSwgeDB5MyB7eDAgKiB5M307CisgICAgICAgIEludDEyOEltcGwgeDF5MCB7eDEgKiB5
MH0sIHgxeTEge3gxICogeTF9LCB4MXkyIHt4MSAqIHkyfTsKKyAgICAgICAgSW50MTI4SW1wbCB4
MnkwIHt4MiAqIHkwfSwgeDJ5MSB7eDIgKiB5MX07CisgICAgICAgIEludDEyOEltcGwgeDN5MCB7
eDMgKiB5MH07CisgICAgICAgIHJldHVybiB4MHkwICsgKCh4MHkxICsgeDF5MCkgPDwgMzIpICsg
KCh4MHkyICsgeDF5MSArIHgyeTApIDw8IDY0KSArCisgICAgICAgICAgICAoKHgweTMgKyB4MXky
ICsgeDJ5MSArIHgzeTApIDw8IDk2KTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgSW50MTI4SW1w
bCBvcGVyYXRvci8oSW50MTI4SW1wbCB0aGF0KSBjb25zdAorICAgIHsKKyAgICAgICAgaW50IGog
e2xlYWRpbmdaZXJvZXMoKX07CisgICAgICAgIEludDEyOEltcGwgYml0cyB7KnRoaXN9OworICAg
ICAgICBiaXRzIDw8PSBqOworICAgICAgICBJbnQxMjhJbXBsIG51bWVyYXRvciB7IH07CisgICAg
ICAgIEludDEyOEltcGwgcXVvdGllbnQgeyB9OworICAgICAgICBmb3IgKDsgaiA8IDEyODsgKytq
KSB7CisgICAgICAgICAgICBudW1lcmF0b3IgPDw9IDE7CisgICAgICAgICAgICBpZiAoYml0cy5o
aWdoXyAmIHRvcEJpdCkKKyAgICAgICAgICAgICAgICBudW1lcmF0b3IubG93XyB8PSAxOworICAg
ICAgICAgICAgYml0cyA8PD0gMTsKKyAgICAgICAgICAgIHF1b3RpZW50IDw8PSAxOworICAgICAg
ICAgICAgaWYgKG51bWVyYXRvciA+PSB0aGF0KSB7CisgICAgICAgICAgICAgICAgKytxdW90aWVu
dDsKKyAgICAgICAgICAgICAgICBudW1lcmF0b3IgLT0gdGhhdDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgY29uc3RleHBy
IEludDEyOEltcGwgb3BlcmF0b3IlKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGludCBqIHtsZWFkaW5nWmVyb2VzKCl9OworICAgICAgICBJbnQxMjhJbXBsIGJpdHMgeyp0
aGlzfTsKKyAgICAgICAgYml0cyA8PD0gajsKKyAgICAgICAgSW50MTI4SW1wbCByZW1haW5kZXIg
eyB9OworICAgICAgICBmb3IgKDsgaiA8IDEyODsgKytqKSB7CisgICAgICAgICAgICByZW1haW5k
ZXIgPDw9IDE7CisgICAgICAgICAgICBpZiAoYml0cy5oaWdoXyAmIHRvcEJpdCkKKyAgICAgICAg
ICAgICAgICByZW1haW5kZXIubG93XyB8PSAxOworICAgICAgICAgICAgYml0cyA8PD0gMTsKKyAg
ICAgICAgICAgIGlmIChyZW1haW5kZXIgPj0gdGhhdCkKKyAgICAgICAgICAgICAgICByZW1haW5k
ZXIgLT0gdGhhdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVtYWluZGVyOworICAgIH0K
KworICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPChJbnQxMjhJbXBsIHRoYXQpIGNvbnN0Cisg
ICAgeworICAgICAgICBpZiAoSVNfU0lHTkVEICYmIChoaWdoXyBeIHRoYXQuaGlnaF8pICYgdG9w
Qml0KQorICAgICAgICAgICAgcmV0dXJuICEhKGhpZ2hfICYgdG9wQml0KTsKKworICAgICAgICBy
ZXR1cm4gaGlnaF8gPCB0aGF0LmhpZ2hfIHx8IChoaWdoXyA9PSB0aGF0LmhpZ2hfICYmIGxvd18g
PCB0aGF0Lmxvd18pOworICAgIH0KKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjw9KEludDEy
OEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4gISgqdGhpcyA+IHRoYXQpOyB9CisgICAgY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3I9PShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbG93XyA9PSB0aGF0Lmxvd18gJiYgaGlnaF8gPT0gdGhhdC5oaWdoXzsKKyAgICB9
CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsg
cmV0dXJuICEoKnRoaXMgPT0gdGhhdCk7IH0KKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj49
KEludDEyOEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4gdGhhdCA8PSAqdGhpczsgfQorICAgIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsgcmV0dXJuIHRo
YXQgPCAqdGhpczsgfQorCisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJhdG9yJj0oY29u
c3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7CisgICAgICAgICp0aGlzID0gKnRoaXMgJiB0aGF0
OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBs
ICZvcGVyYXRvcnw9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhp
cyA9ICp0aGlzIHwgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBjb25z
dGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3JePShjb25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAg
IHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyBeIHRoYXQ7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJhdG9yPDw9KGNvbnN0IEludDEy
OEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzIDw8IHRoYXQ7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJh
dG9yPj49KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0
aGlzID4+IHRoYXQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHBy
IEludDEyOEltcGwgJm9wZXJhdG9yKz0oY29uc3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7Cisg
ICAgICAgICp0aGlzID0gKnRoaXMgKyB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
fQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvci09KGNvbnN0IEludDEyOEltcGwg
JnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzIC0gdGhhdDsKKyAgICAgICAgcmV0
dXJuICp0aGlzOworICAgIH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3IqPShj
b25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAqIHRo
YXQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOElt
cGwgJm9wZXJhdG9yLz0oY29uc3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7CisgICAgICAgICp0
aGlzID0gKnRoaXMgLyB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNv
bnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvciU9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisg
ICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzICUgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbChzdGQ6OnVpbnQ2
NF90IGhpLCBzdGQ6OnVpbnQ2NF90IGxvKSA6IGxvd18ge2xvfSwgaGlnaF8ge2hpfSB7IH0KKyAg
ICBjb25zdGV4cHIgaW50IGxlYWRpbmdaZXJvZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYg
KCFoaWdoXykKKyAgICAgICAgICAgIHJldHVybiA2NCArIGxlYWRpbmdaZXJvQml0Q291bnQobG93
Xyk7CisgICAgICAgIHJldHVybiBsZWFkaW5nWmVyb0JpdENvdW50KGhpZ2hfKTsKKyAgICB9Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnVpbnQ2NF90IHRvcEJpdCB7c3RkOjp1aW50NjRfdCB7
MX0gPDwgNjN9OworICAgIHN0ZDo6dWludDY0X3QgbG93XyB7MH0sIGhpZ2hfIHswfTsKK307CisK
KyNpZiAhQVZPSURfTkFUSVZFX0lOVDEyOF9UICYmIEhBVkUoSU5UMTI4X1QpCit1c2luZyBVSW50
MTI4ID0gX191aW50MTI4X3Q7Cit1c2luZyBJbnQxMjggPSBfX2ludDEyOF90OworI2Vsc2UKK3Vz
aW5nIFVJbnQxMjggPSBJbnQxMjhJbXBsPGZhbHNlPjsKK3VzaW5nIEludDEyOCA9IEludDEyOElt
cGw8dHJ1ZT47CisjZW5kaWYKKwordGVtcGxhdGUgPGludCBCSVRTPiBzdHJ1Y3QgSG9zdFVuc2ln
bmVkSW50VHlwZUhlbHBlciB7CisgICAgdXNpbmcgdHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDwo
QklUUyA8PSA4KSwgc3RkOjp1aW50OF90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gMTYpLCBzdGQ6OnVpbnQxNl90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gMzIpLCBzdGQ6OnVpbnQzMl90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gNjQpLCBzdGQ6OnVpbnQ2NF90LCBVSW50MTI4Pj4+PjsKK307Cit0ZW1wbGF0ZSA8aW50
IEJJVFM+IHN0cnVjdCBIb3N0U2lnbmVkSW50VHlwZUhlbHBlciB7CisgICAgdXNpbmcgdHlwZSA9
IHN0ZDo6Y29uZGl0aW9uYWxfdDwoQklUUyA8PSA4KSwgc3RkOjppbnQ4X3QsCisgICAgICAgIHN0
ZDo6Y29uZGl0aW9uYWxfdDwoQklUUyA8PSAxNiksIHN0ZDo6aW50MTZfdCwKKyAgICAgICAgc3Rk
Ojpjb25kaXRpb25hbF90PChCSVRTIDw9IDMyKSwgc3RkOjppbnQzMl90LAorICAgICAgICBzdGQ6
OmNvbmRpdGlvbmFsX3Q8KEJJVFMgPD0gNjQpLCBzdGQ6OmludDY0X3QsIEludDEyOD4+Pj47Cit9
OwordGVtcGxhdGUgPGludCBCSVRTPgordXNpbmcgSG9zdFVuc2lnbmVkSW50VHlwZSA9IHR5cGVu
YW1lIEhvc3RVbnNpZ25lZEludFR5cGVIZWxwZXI8QklUUz46OnR5cGU7Cit0ZW1wbGF0ZSA8aW50
IEJJVFM+Cit1c2luZyBIb3N0U2lnbmVkSW50VHlwZSA9IHR5cGVuYW1lIEhvc3RTaWduZWRJbnRU
eXBlSGVscGVyPEJJVFM+Ojp0eXBlOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RG
OjpJbnQxMjg7Cit1c2luZyBXVEY6OlVJbnQxMjg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xlYWRpbmdaZXJvQml0
Q291bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZjhiZTk5OGUzNTg1OTExOGQ1ZWUwMThjNmM1YWIzMmU1
ZGI3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MZWFkaW5nWmVyb0JpdENv
dW50LmNwcApAQCAtMCwwICsxLDMyIEBACisvLyBUYWtlbiBmcm9tIExMVk0gUHJvamVjdCwgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCisvLyBTZWUg
U291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8g
U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgor
CisvLyBCYXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9i
bG9iL2Q0ODBmOTY4L2ZsYW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL2xlYWRpbmctemVyby1iaXQt
Y291bnQuaAorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGVhZGluZ1plcm9CaXRD
b3VudC5oIgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorCituYW1lc3BhY2UgV1RGIHsKKworY29u
c3Qgc3RkOjp1aW50OF90IG1hcHBpbmdbNjRdIHs2MywgMCwgNTgsIDEsIDU5LCA0NywgNTMsIDIs
IDYwLCAzOSwKKyAgICA0OCwgMjcsIDU0LCAzMywgNDIsIDMsIDYxLCA1MSwgMzcsIDQwLCA0OSwg
MTgsIDI4LCAyMCwgNTUsIDMwLCAzNCwgMTEsIDQzLAorICAgIDE0LCAyMiwgNCwgNjIsIDU3LCA0
NiwgNTIsIDM4LCAyNiwgMzIsIDQxLCA1MCwgMzYsIDE3LCAxOSwgMjksIDEwLCAxMywgMjEsCisg
ICAgNTYsIDQ1LCAyNSwgMzEsIDM1LCAxNiwgOSwgMTIsIDQ0LCAyNCwgMTUsIDgsIDIzLCA3LCA2
LCA1fTsKKworY29uc3Qgc3RkOjp1aW50OF90IGVpZ2h0Qml0TGVhZGluZ1plcm9CaXRDb3VudFsy
NTZdIHs4LCA3LCA2LCA2LCA1LCA1LAorICAgIDUsIDUsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQs
IDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsCisgICAgMywgMiwg
MiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwg
MiwgMiwgMiwgMiwKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAorICAgIDEsIDEsIDEsIDEsIDEsIDEs
IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEs
CisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9MZWFkaW5nWmVyb0JpdENvdW50LmggYi9Tb3VyY2UvV1RGL3d0Zi9MZWFkaW5nWmVyb0JpdENv
dW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjI3YTAxYTYyZTc2ZDM2ODdiNWIyMDY1ZDM5YzFmM2JjZjYyMWJk
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xlYWRpbmdaZXJvQml0Q291bnQu
aApAQCAtMCwwICsxLDg1IEBACisvLyBUYWtlbiBmcm9tIExMVk0gUHJvamVjdCwgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCisvLyBTZWUgU291cmNl
L1dURi9MSUNFTlNFLUxMVk0udHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8gU1BEWC1M
aWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgorCisvLyBC
YXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9ibG9iL2Q0
ODBmOTY4L2ZsYW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL2xlYWRpbmctemVyby1iaXQtY291bnQu
aAorCisjcHJhZ21hIG9uY2UKKworLy8gQSBmYXN0IGFuZCBwb3J0YWJsZSBmdW5jdGlvbiB0aGF0
IGltcGxlbWVudHMgRm9ydHJhbidzIExFQURaIGludHJpbnNpYworLy8gZnVuY3Rpb24sIHdoaWNo
IGNvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgKG1vc3Qgc2lnbmlmaWNhbnQpIHplcm8gYml0
CisvLyBwb3NpdGlvbnMgaW4gYW4gaW50ZWdlciB2YWx1ZS4gKElmIHRoZSBtb3N0IHNpZ25pZmlj
YW50IGJpdCBpcyBzZXQsIHRoZQorLy8gbGVhZGluZyB6ZXJvIGNvdW50IGlzIHplcm87IGlmIG5v
IGJpdCBpcyBzZXQsIHRoZSBsZWFkaW5nIHplcm8gY291bnQgaXMgdGhlCisvLyB3b3JkIHNpemUg
aW4gYml0czsgb3RoZXJ3aXNlLCBpdCdzIHRoZSBsYXJnZXN0IGxlZnQgc2hpZnQgY291bnQgdGhh
dAorLy8gZG9lc24ndCByZWR1Y2UgdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZSB3b3JkIHRoYXQg
YXJlIHNldC4pCisKKyNpbmNsdWRlIDxjaW50dHlwZXM+CisKK25hbWVzcGFjZSBXVEYgeworCisv
LyBUaGUgZm9sbG93aW5nIG1hZ2ljIGNvbnN0YW50IGlzIGEgYmluYXJ5IGRlQnJ1aWpuIHNlcXVl
bmNlLgorLy8gSXQgaGFzIHRoZSByZW1hcmthYmxlIHByb3BlcnR5IHRoYXQgaWYgb25lIGV4dGVu
ZHMgaXQKKy8vICh2aXJ0dWFsbHkpIG9uIHRoZSByaWdodCB3aXRoIDUgbW9yZSB6ZXJvIGJpdHMs
IHRoZW4gYWxsCisvLyBvZiB0aGUgNjQgY29udGlndW91cyBmcmFtZWQgYmxvY2tzIG9mIHNpeCBi
aXRzIGluIHRoZQorLy8gZXh0ZW5kZWQgNjktYml0IHNlcXVlbmNlIGFyZSBkaXN0aW5jdC4gQ29u
c2VxdWVudGx5LAorLy8gaWYgb25lIHNoaWZ0cyBpdCBsZWZ0IGJ5IGFueSBzaGlmdCBjb3VudCBb
MC4uNjNdIHdpdGgKKy8vIHRydW5jYXRpb24gYW5kIGV4dHJhY3RzIHRoZSB1cHBlcm1vc3Qgc2l4
IGJpdCBmaWVsZAorLy8gb2YgdGhlIHNoaWZ0ZWQgdmFsdWUsIGVhY2ggc2hpZnQgY291bnQgbWFw
cyB0byBhIGRpc3RpbmN0CisvLyBmaWVsZCB2YWx1ZS4gVGhhdCBtZWFucyB0aGF0IHdlIGNhbiBt
YXAgdGhvc2UgNjQgZmllbGQKKy8vIHZhbHVlcyBiYWNrIHRvIHRoZSBzaGlmdCBjb3VudHMgdGhh
dCBwcm9kdWNlIHRoZW0sCisvLyBhbmQgKHRoZSBwb2ludCkgdGhpcyBtZWFucyB0aGF0IHdlIGNh
biBzaGlmdCB0aGlzIHZhbHVlCisvLyBieSBhbiB1bmtub3duIGJpdCBjb3VudCBpbiBbMC4uNjNd
IGFuZCB0aGVuIGZpZ3VyZSBvdXQKKy8vIHdoYXQgdGhhdCBjb3VudCBtdXN0IGhhdmUgYmVlbi4K
Ky8vICAgIDAgICA3ICAgZSAgIGQgICBkICAgNSAgIGUgICA1ICAgOSAgIGEgICA0ICAgZSAgIDIg
ICA4ICAgYyAgIDIKKy8vIDAwMDAwMTExMTExMDExMDExMTAxMDEwMTExMTAwMTAxMTAwMTEwMTAw
MTAwMTExMDAwMTAxMDAwMTEwMDAwMTAKK3N0YXRpYyBjb25zdGV4cHIgc3RkOjp1aW50NjRfdCBk
ZUJydWlqbiB7MHgwN2VkZDVlNTlhNGUyOGMyfTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUg
Y29uc3Qgc3RkOjp1aW50OF90IG1hcHBpbmdbNjRdOworCitleHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIGNvbnN0IHN0ZDo6dWludDhfdCBlaWdodEJpdExlYWRpbmdaZXJvQml0Q291bnRbMjU2XTsK
KworaW5saW5lIGNvbnN0ZXhwciBpbnQgbGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQ2NF90
IHgpCit7CisgICAgaWYgKCF4KQorICAgICAgICByZXR1cm4gNjQ7CisKKyAgICB4IHw9IHggPj4g
MTsKKyAgICB4IHw9IHggPj4gMjsKKyAgICB4IHw9IHggPj4gNDsKKyAgICB4IHw9IHggPj4gODsK
KyAgICB4IHw9IHggPj4gMTY7CisgICAgeCB8PSB4ID4+IDMyOworICAgIC8vIEFsbCBvZiB0aGUg
Yml0cyBiZWxvdyB0aGUgdXBwZXJtb3N0IHNldCBiaXQgYXJlIG5vdyBhbHNvIHNldC4KKyAgICB4
IC09IHggPj4gMTsgLy8gQWxsIG9mIHRoZSBiaXRzIGJlbG93IHRoZSB1cHBlcm1vc3QgYXJlIG5v
dyBjbGVhci4KKyAgICAvLyB4IG5vdyBoYXMgZXhhY3RseSBvbmUgYml0IHNldCwgc28gaXQgaXMg
YSBwb3dlciBvZiB0d28sIHNvCisgICAgLy8gbXVsdGlwbGljYXRpb24gYnkgeCBpcyBlcXVpdmFs
ZW50IHRvIGEgbGVmdCBzaGlmdCBieSBpdHMKKyAgICAvLyBiYXNlLTIgbG9nYXJpdGhtLiBXZSBj
YWxjdWxhdGUgdGhhdCB1bmtub3duIGJhc2UtMiBsb2dhcml0aG0KKyAgICAvLyBieSBzaGlmdGlu
ZyB0aGUgZGVCcnVpam4gc2VxdWVuY2UgYW5kIG1hcHBpbmcgdGhlIGZyYW1lZCB2YWx1ZS4KKyAg
ICBpbnQgYmFzZTJMb2cge21hcHBpbmdbKHggKiBkZUJydWlqbikgPj4gNThdfTsKKyAgICByZXR1
cm4gNjMgLSBiYXNlMkxvZzsgLy8gY29udmVydCB0byBsZWFkaW5nIHplcm8gY291bnQKK30KKwor
aW5saW5lIGNvbnN0ZXhwciBpbnQgbGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQzMl90IHgp
Cit7CisgICAgcmV0dXJuIGxlYWRpbmdaZXJvQml0Q291bnQoc3RhdGljX2Nhc3Q8c3RkOjp1aW50
NjRfdD4oeCkpIC0gMzI7Cit9CisKK2lubGluZSBjb25zdGV4cHIgaW50IGxlYWRpbmdaZXJvQml0
Q291bnQoc3RkOjp1aW50MTZfdCB4KQoreworICAgIHJldHVybiBsZWFkaW5nWmVyb0JpdENvdW50
KHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KHgpKSAtIDQ4OworfQorCitpbmxpbmUgaW50IGxl
YWRpbmdaZXJvQml0Q291bnQoc3RkOjp1aW50OF90IHgpCit7CisgICAgcmV0dXJuIGVpZ2h0Qml0
TGVhZGluZ1plcm9CaXRDb3VudFt4XTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEE+IGlubGlu
ZSBjb25zdGV4cHIgaW50IGJpdHNOZWVkZWRGb3IoQSB4KQoreworICAgIHJldHVybiA4ICogc2l6
ZW9mIHggLSBsZWFkaW5nWmVyb0JpdENvdW50KHgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpsZWFkaW5nWmVyb0JpdENvdW50OwordXNpbmcgV1RGOjpiaXRzTmVlZGVk
Rm9yOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDMyMDgxMjdkMDQwYjk3YTliZjBkNTgxYWE5ZWE2NDVkM2YxNTY3ZDkuLjI3YjNhOTk5NDFmZTll
ZGQxMDVmMjM2Y2YzZDNkNDFiZjBlZDA3NGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wOS0yMCAgUGhpbGlw
IENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIExMVk0vRkxh
bmcncyBpbnQxMjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFkZGVkIHRlc3Rz
IGZvciBJbnQxMjggYW5kIExlYWRpbmdaZXJvQml0Q291bnQgY29waWVkIGZyb20gTExWTSdzIHRl
c3RzLAorICAgICAgICByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0eWxlLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ludDEyOC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VGVzdFVu
YXJ5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRlc3RCaW5hcnkpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb05hdGl2ZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpGcm9tTmF0aXZlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRlc3RWc05hdGl2ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGVh
ZGluZ1plcm9CaXRDb3VudC5jcHA6IEFkZGVkLgorICAgICAgICAoY291bnRXaXRoVHdvU2hpZnRl
ZEJpdHMpOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFr
ZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXggY2NiMmNkMTM0
Njk4YjJiMzUyMDAxZjZiMjdkYzg4YzA4ZmI3NDdkZS4uNGQzMTRkYjkyY2Y0NGUyOTZiYzYxYzU5
ZGU4MWY1MWNjNGUxNDJhZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC00OSwx
MCArNDksMTIgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dURi9IYXNoZXIuY3Bw
CiAgICAgVGVzdHMvV1RGL0hleE51bWJlci5jcHAKICAgICBUZXN0cy9XVEYvSW5kZXhTcGFyc2VT
ZXQuY3BwCisgICAgVGVzdHMvV1RGL0ludDEyOC5jcHAKICAgICBUZXN0cy9XVEYvSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5jcHAKICAgICBUZXN0cy9XVEYvSXRlcmF0b3JSYW5nZS5jcHAKICAg
ICBUZXN0cy9XVEYvSlNPTlZhbHVlLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNwcAor
ICAgIFRlc3RzL1dURi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcAogICAgIFRlc3RzL1dURi9MaWZl
Y3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCiAgICAgVGVzdHMv
V1RGL0xpc3RIYXNoU2V0LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOGY2ODIyODlh
YTgxZjY5OTY3MjdhYTBkNTkyMjg5YWUwNGRlYWFlLi45OTBmYzU0OGUyZmMzNjVhNjVjN2Q5ZDRi
MWU4MjA5Yjc4ZmIxMTBlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5MSw2ICsxMjkx
LDggQEAKIAkJRjY2MEFBMTUxNUE2MUFCRjAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY2MEFBMTQxNUE2MUFCRjAwM0ExMjQzIC8q
IEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUu
Y3BwICovOyB9OwogCQlGNkI3QkU5NTE3NDY5MjEyMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzX0J1bmRsZS5jcHAgKi87IH07CiAJCUY2QjdCRTk3MTc0NjlCOTYwMDhBMzQ0NSAvKiBh
c3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0NSAvKiBhc3Nv
Y2lhdGUtZm9ybS1jb250cm9scy5odG1sICovOyB9OworCQlGNkQ2N0QzNzI2RjkwMjA2MDA2RTAz
NDkgLyogTGVhZGluZ1plcm9CaXRDb3VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNkQ2N0QzNTI2RjkwMjA1MDA2RTAzNDkgLyogTGVhZGluZ1pl
cm9CaXRDb3VudC5jcHAgKi87IH07CisJCUY2RDY3RDM4MjZGOTAyMDYwMDZFMDM0OSAvKiBJbnQx
MjguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZE
NjdEMzYyNkY5MDIwNjAwNkUwMzQ5IC8qIEludDEyOC5jcHAgKi87IH07CiAJCUY2RjQ5QzZCMTU1
NDVDQTcwMDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNkY0OUM2NjE1NTQ1
QzhEMDAwN0YzOUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwICovOyB9
OwogCQlGNkZERERENjE0MjQxQzZGMDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RkREREQ1MTQy
NDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi87IH07CiAJCUZFMkJDREM3MjQ3MEZE
QTMwMERFQzMzQiAvKiBTdGRMaWJFeHRyYXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyQkNEQzYyNDcwRkM3MDAwREVDMzNCIC8qIFN0ZExpYkV4
dHJhcy5jcHAgKi87IH07CkBAIC0zMTY0LDYgKzMxNjYsOCBAQAogCQlGNkI3QkU5MjE3NDY5MUVG
MDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29j
aWF0ZUZvcm1Db250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3Jt
Q29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5NjE3NDY5
QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJh
c3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjZENjdEMzUyNkY5MDIwNTAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291bnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVhZGluZ1plcm9CaXRDb3VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2RDY3RDM2MjZGOTAyMDYwMDZFMDM0
OSAvKiBJbnQxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50
MTI4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjYxNTU0NUM4RDAw
MDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjcxNTU0NUM4RDAw
MDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RkREREQyMTQyNDFBRDQwMDRGMTcyOSAvKiBQcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDk4LDkgKzQ1MDIs
MTEgQEAKIAkJCQkyNkIyREZGODE1QkRFNTk5MDA0RjY5MUQgLyogSGFzaFNldC5jcHAgKi8sCiAJ
CQkJN0M4QkZGNzAyM0MwMTA2NzAwQzAwOUIzIC8qIEhleE51bWJlci5jcHAgKi8sCiAJCQkJMzM5
NzZEODIyNERDNDc5QjAwODEyMzA0IC8qIEluZGV4U3BhcnNlU2V0LmNwcCAqLywKKwkJCQlGNkQ2
N0QzNjI2RjkwMjA2MDA2RTAzNDkgLyogSW50MTI4LmNwcCAqLywKIAkJCQkyNjZGQUZEMjE1RTU3
NzUyMDBGNjFENUIgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgKi8sCiAJCQkJN0NF
QjYyQTkyMjM2MDg2QzAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwICovLAogCQkJCTdBMDUw
OTQwMUZCOUYwNDQwMEIzM0ZCOCAvKiBKU09OVmFsdWUuY3BwICovLAorCQkJCUY2RDY3RDM1MjZG
OTAyMDUwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCAqLywKIAkJCQk1MzFDMUQ4
RDFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgKi8sCiAJCQkJQTU3RDU0RjcxRjMz
OTdCNDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5jcHAgKi8sCiAJCQkJQTU3RDU0RjgxRjMz
OTdCNDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5oICovLApAQCAtNTI5NiwxMCArNTMwMiwx
MiBAQAogCQkJCTdDODNERUQ0MUQwQTU5MEMwMEZFQkNGMyAvKiBIYXNoU2V0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDOEJGRjcxMjNDMDEwN0EwMEMwMDlCMyAvKiBIZXhOdW1iZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzM5NzZEODMyNERDNDc5QjAwODEyMzA0IC8qIEluZGV4U3BhcnNl
U2V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY2RDY3RDM4MjZGOTAyMDYwMDZFMDM0OSAvKiBJ
bnQxMjguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RFRTAxRDBBNTkwQzAwRkVCQ0YzIC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTNGQ0RF
NkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NF
QjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpTT05WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNkQ2N0QzNzI2RjkwMjA2MDA2RTAzNDkgLyogTGVhZGluZ1plcm9CaXRDb3Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVC
RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcg
LyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIw
NDEwMEUxREY2QSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSW50MTI4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmMxYzJmYzQ2ZThkZTg1ZDk3
MmIyZWE2ZTBmNDkwOTViYmRkMDk5MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKQEAgLTAsMCArMSwxNDQgQEAKKy8vIFRha2VuIGZy
b20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0g
RXhjZXB0aW9ucy4KKy8vIFNlZSBTb3VyY2UvV1RGL0xJQ0VOU0UtTExWTS50eHQgZm9yIGxpY2Vu
c2UgaW5mb3JtYXRpb24uCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBX
SVRIIExMVk0tZXhjZXB0aW9uCisKKy8vIEJhc2VkIG9uOgorLy8gaHR0cHM6Ly9naXRodWIuY29t
L2xsdm0vbGx2bS1wcm9qZWN0L2Jsb2IvZDQ4MGY5NjgvZmxhbmcvdW5pdHRlc3RzL0V2YWx1YXRl
L3VpbnQxMjguY3BwCisKKyNkZWZpbmUgQVZPSURfTkFUSVZFX0lOVDEyOF9UIDEKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9JbnQxMjguaD4KKworI2luY2x1ZGUgPGNpbnR0
eXBlcz4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgdm9pZCBUZXN0VW5h
cnkoc3RkOjp1aW50NjRfdCB4KQoreworICAgIFVJbnQxMjggbiB7eH07CisgICAgRVhQRUNUX0VR
KHgsIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pKTsKKyAgICBFWFBFQ1RfRVEofngsIHN0
YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KH5uKSk7CisgICAgRVhQRUNUX0VRKC14LCBzdGF0aWNf
Y2FzdDxzdGQ6OnVpbnQ2NF90PigtbikpOworICAgIEVYUEVDVF9FUSgheCwgc3RhdGljX2Nhc3Q8
c3RkOjp1aW50NjRfdD4oIW4pKTsKKyAgICBFWFBFQ1RfVFJVRShuID09IG4pOworICAgIEVYUEVD
VF9UUlVFKG4gKyBuID09IG4gKiBzdGF0aWNfY2FzdDxVSW50MTI4PigyKSk7CisgICAgRVhQRUNU
X1RSVUUobiAtIG4gPT0gc3RhdGljX2Nhc3Q8VUludDEyOD4oMCkpOworICAgIEVYUEVDVF9UUlVF
KG4gKyBuID09IG4gPDwgc3RhdGljX2Nhc3Q8VUludDEyOD4oMSkpOworICAgIEVYUEVDVF9UUlVF
KG4gKyBuID09IG4gPDwgc3RhdGljX2Nhc3Q8VUludDEyOD4oMSkpOworICAgIEVYUEVDVF9UUlVF
KChuICsgbikgLSBuID09IG4pOworICAgIEVYUEVDVF9UUlVFKCgobiArIG4pID4+IHN0YXRpY19j
YXN0PFVJbnQxMjg+KDEpKSA9PSBuKTsKKyAgICBpZiAoeCkgeworICAgICAgICBFWFBFQ1RfVFJV
RShzdGF0aWNfY2FzdDxVSW50MTI4PigwKSAvIG4gPT0gc3RhdGljX2Nhc3Q8VUludDEyOD4oMCkp
OworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxVSW50MTI4PihuIC0gMSkgLyBuID09
IHN0YXRpY19jYXN0PFVJbnQxMjg+KDApKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nh
c3Q8VUludDEyOD4obikgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDEpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8VUludDEyOD4obiArIG4gLSAxKSAvIG4gPT0gc3RhdGlj
X2Nhc3Q8VUludDEyOD4oMSkpOworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxVSW50
MTI4PihuICsgbikgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDIpKTsKKyAgICB9Cit9CisK
K3N0YXRpYyB2b2lkIFRlc3RCaW5hcnkoc3RkOjp1aW50NjRfdCB4LCBzdGQ6OnVpbnQ2NF90IHkp
Cit7CisgICAgVUludDEyOCBtIHt4fSwgbiB7eX07CisgICAgRVhQRUNUX0VRKHgsIHN0YXRpY19j
YXN0PHN0ZDo6dWludDY0X3Q+KG0pKTsKKyAgICBFWFBFQ1RfRVEoeSwgc3RhdGljX2Nhc3Q8c3Rk
Ojp1aW50NjRfdD4obikpOworICAgIEVYUEVDVF9FUSh4ICYgeSwgc3RhdGljX2Nhc3Q8c3RkOjp1
aW50NjRfdD4obSAmIG4pKTsKKyAgICBFWFBFQ1RfRVEoeCB8IHksIHN0YXRpY19jYXN0PHN0ZDo6
dWludDY0X3Q+KG0gfCBuKSk7CisgICAgRVhQRUNUX0VRKHggXiB5LCBzdGF0aWNfY2FzdDxzdGQ6
OnVpbnQ2NF90PihtIF4gbikpOworICAgIEVYUEVDVF9FUSh4ICsgeSwgc3RhdGljX2Nhc3Q8c3Rk
Ojp1aW50NjRfdD4obSArIG4pKTsKKyAgICBFWFBFQ1RfRVEoeCAtIHksIHN0YXRpY19jYXN0PHN0
ZDo6dWludDY0X3Q+KG0gLSBuKSk7CisgICAgRVhQRUNUX0VRKHggKiB5LCBzdGF0aWNfY2FzdDxz
dGQ6OnVpbnQ2NF90PihtICogbikpOworICAgIGlmIChuKQorICAgICAgICBFWFBFQ1RfRVEoeCAv
IHksIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG0gLyBuKSk7Cit9CisKK1RFU1QoV1RGX0lu
dDEyOCwgQmFzaWMpCit7CisgICAgZm9yIChzdGQ6OnVpbnQ2NF90IGogezB9OyBqIDwgNjQ7ICsr
aikgeworICAgICAgICBUZXN0VW5hcnkoaik7CisgICAgICAgIFRlc3RVbmFyeSh+aik7CisgICAg
ICAgIFRlc3RVbmFyeShzdGQ6OnVpbnQ2NF90KDEpIDw8IGopOworICAgICAgICBmb3IgKHN0ZDo6
dWludDY0X3QgayB7MH07IGsgPCA2NDsgKytrKQorICAgICAgICAgICAgVGVzdEJpbmFyeShqLCBr
KTsKKyAgICB9Cit9CisKKyNpZiBIQVZFKElOVDEyOF9UKQorc3RhdGljIF9fdWludDEyOF90IFRv
TmF0aXZlKFVJbnQxMjggbikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8X191aW50MTI4X3Q+
KHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4gPj4gNjQpKSA8PCA2NCB8CisgICAgICAgIHN0
YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pOworfQorCitzdGF0aWMgVUludDEyOCBGcm9tTmF0
aXZlKF9fdWludDEyOF90IG4pCit7CisgICAgcmV0dXJuIFVJbnQxMjgge3N0YXRpY19jYXN0PHN0
ZDo6dWludDY0X3Q+KG4gPj4gNjQpfSA8PCA2NCB8CisgICAgICAgIFVJbnQxMjgge3N0YXRpY19j
YXN0PHN0ZDo6dWludDY0X3Q+KG4pfTsKK30KKworc3RhdGljIHZvaWQgVGVzdFZzTmF0aXZlKF9f
dWludDEyOF90IHgsIF9fdWludDEyOF90IHkpCit7CisgICAgVUludDEyOCBtIHtGcm9tTmF0aXZl
KHgpfSwgbiB7RnJvbU5hdGl2ZSh5KX07CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSkgPT0g
eCk7CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobikgPT0geSk7CisgICAgRVhQRUNUX1RSVUUo
VG9OYXRpdmUofm0pID09IH54KTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZSgtbSkgPT0gLXgp
OworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKCFtKSA9PSAheCk7CisgICAgRVhQRUNUX1RSVUUo
VG9OYXRpdmUobSA8IG4pID09ICh4IDwgeSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0g
PD0gbikgPT0gKHggPD0geSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPT0gbikgPT0g
KHggPT0geSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gIT0gbikgPT0gKHggIT0geSkp
OworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPj0gbikgPT0gKHggPj0geSkpOworICAgIEVY
UEVDVF9UUlVFKFRvTmF0aXZlKG0gPiBuKSA9PSAoeCA+IHkpKTsKKyAgICBFWFBFQ1RfVFJVRShU
b05hdGl2ZShtICYgbikgPT0gKHggJiB5KSk7CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSB8
IG4pID09ICh4IHwgeSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gXiBuKSA9PSAoeCBe
IHkpKTsKKyAgICBpZiAoeSA8IDEyOCkgeworICAgICAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZSht
IDw8IG4pID09ICh4IDw8IHkpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSA+PiBu
KSA9PSAoeCA+PiB5KSk7CisgICAgfQorICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gKyBuKSA9
PSAoeCArIHkpKTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtIC0gbikgPT0gKHggLSB5KSk7
CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSAqIG4pID09ICh4ICogeSkpOworICAgIGlmICh5
ID4gMCkgeworICAgICAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtIC8gbikgPT0gKHggLyB5KSk7
CisgICAgICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gJSBuKSA9PSAoeCAlIHkpKTsKKyAgICAg
ICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSAtIG4gKiAobSAvIG4pKSA9PSAoeCAlIHkpKTsKKyAg
ICB9Cit9CisKK1RFU1QoV1RGX0ludDEyOCwgVnNOYXRpdmUpCit7CisgICAgR1RFU1RfTE9HXyhJ
TkZPKSA8PCAiRW52aXJvbm1lbnQgaGFzIG5hdGl2ZSBfX3VpbnQxMjhfdCI7CisKKyAgICBmb3Ig
KGludCBqIHswfTsgaiA8IDEyODsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwg
MTI4OyArK2spIHsKKyAgICAgICAgICAgIF9fdWludDEyOF90IG0gezF9LCBuIHsxfTsKKyAgICAg
ICAgICAgIG0gPDw9IGosIG4gPDw9IGs7CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUobSwgbik7
CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUofm0sIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0
aXZlKG0sIH5uKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZSh+bSwgfm4pOworICAgICAgICAg
ICAgVGVzdFZzTmF0aXZlKG0gXiBuLCBuKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtLCBt
IF4gbik7CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUobSBeIH5uLCBuKTsKKyAgICAgICAgICAg
IFRlc3RWc05hdGl2ZShtLCB+bSBeIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0aXZlKG0gXiB+
biwgbSBeIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0aXZlKG0gXiBuLCB+bSBeIG4pOworICAg
ICAgICAgICAgVGVzdFZzTmF0aXZlKG0gXiB+biwgfm0gXiBuKTsKKyAgICAgICAgICAgIFRlc3RC
aW5hcnkobSwgMTAwMDAwMDAwMDAwMDAwMDApOyAvLyBpbXBvcnRhbnQgY2FzZSBmb3IgZGVjaW1h
bCBjb252ZXJzaW9uCisgICAgICAgICAgICBUZXN0QmluYXJ5KH5tLCAxMDAwMDAwMDAwMDAwMDAw
MCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKyNlbHNlIC8vICFIQVZFKElOVDEyOF9UKQorCitU
RVNUKFdURl9JbnQxMjgsIFZzTmF0aXZlKQoreworICAgIEdURVNUX0xPR18oSU5GTykgPDwgIkVu
dmlyb25tZW50IGxhY2tzIG5hdGl2ZSBfX3VpbnQxMjhfdCI7Cit9CisKKyNlbmRpZiAvLyAhSEFW
RShJTlQxMjhfVCkKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGVhZGluZ1plcm9CaXRDb3VudC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43NTljYzBiNzE4ZTQyMzg4NWM4ZTUyMWQ5MTA5MWFhZTRkNDAzMzAzCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGVhZGluZ1plcm9CaXRD
b3VudC5jcHAKQEAgLTAsMCArMSw0NSBAQAorLy8gVGFrZW4gZnJvbSBMTFZNIFByb2plY3QsIHVu
ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgorLy8gU2Vl
IFNvdXJjZS9XVEYvTElDRU5TRS1MTFZNLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KKy8v
IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24K
KworLy8gQmFzZWQgb246CisvLyBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3Qv
YmxvYi9kNDgwZjk2OC9mbGFuZy91bml0dGVzdHMvRXZhbHVhdGUvbGVhZGluZy16ZXJvLWJpdC1j
b3VudC5jcHAKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9MZWFkaW5nWmVy
b0JpdENvdW50Lmg+CisKKyNpbmNsdWRlIDxsaW1pdHM+CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJ
bnRUeXBlPgorc3RhdGljIGJvb2wgY291bnRXaXRoVHdvU2hpZnRlZEJpdHMoaW50IGosIGludCBr
KQoreworICAgIEludFR5cGUgeCA9IChJbnRUeXBlIHsxfSA8PCBqKSB8IChJbnRUeXBlIHsxfSA8
PCBrKTsKKyAgICByZXR1cm4gbGVhZGluZ1plcm9CaXRDb3VudCh4KSA9PSBzdGQ6Om51bWVyaWNf
bGltaXRzPEludFR5cGU+OjpkaWdpdHMgLSAxIC0gajsKK30KKworVEVTVChXVEZfTGVhZGluZ1pl
cm9CaXRDb3VudCwgQmFzaWMpCit7CisgICAgRVhQRUNUX0VRKGxlYWRpbmdaZXJvQml0Q291bnQo
c3RkOjp1aW50NjRfdCB7MH0pLCA2NCk7CisgICAgZm9yIChpbnQgaiB7MH07IGogPCA2NDsgKytq
KSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwgajsgKytrKQorICAgICAgICAgICAgRVhQ
RUNUX1BSRUQyKGNvdW50V2l0aFR3b1NoaWZ0ZWRCaXRzPHN0ZDo6dWludDY0X3Q+LCBqLCBrKTsK
KyAgICB9CisKKyAgICBFWFBFQ1RfRVEobGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQzMl90
IHswfSksIDMyKTsKKyAgICBmb3IgKGludCBqIHswfTsgaiA8IDMyOyArK2opIHsKKyAgICAgICAg
Zm9yIChpbnQgayB7MH07IGsgPCBqOyArK2spCisgICAgICAgICAgICBFWFBFQ1RfUFJFRDIoY291
bnRXaXRoVHdvU2hpZnRlZEJpdHM8c3RkOjp1aW50MzJfdD4sIGosIGspOworICAgIH0KKworICAg
IEVYUEVDVF9FUShsZWFkaW5nWmVyb0JpdENvdW50KHN0ZDo6dWludDE2X3QgezB9KSwgMTYpOwor
ICAgIGZvciAoaW50IGogezB9OyBqIDwgMTY7ICsraikgeworICAgICAgICBmb3IgKGludCBrIHsw
fTsgayA8IGo7ICsraykKKyAgICAgICAgICAgIEVYUEVDVF9QUkVEMihjb3VudFdpdGhUd29TaGlm
dGVkQml0czxzdGQ6OnVpbnQxNl90Piwgaiwgayk7CisgICAgfQorCisgICAgRVhQRUNUX0VRKGxl
YWRpbmdaZXJvQml0Q291bnQoc3RkOjp1aW50OF90IHswfSksIDgpOworICAgIGZvciAoaW50IGog
ezB9OyBqIDwgODsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwgajsgKytrKQor
ICAgICAgICAgICAgRVhQRUNUX1BSRUQyKGNvdW50V2l0aFR3b1NoaWZ0ZWRCaXRzPHN0ZDo6dWlu
dDhfdD4sIGosIGspOworICAgIH0KK30K
</data>
<flag name="commit-queue"
          id="462183"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438712</attachid>
            <date>2021-09-20 12:52:07 -0700</date>
            <delta_ts>2021-09-21 11:04:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230437-20210920125206.patch</filename>
            <type>text/plain</type>
            <size>50083</size>
            <attacher name="Philip Chimento">philip.chimento</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyNzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3Zjg5M2Y5N2IyMmI2NmQzOTU1MTgy
YWFmYWJlNjBiYjI1YWMxMTcuLjEzMDdhYWQwZGVlMDQ3ZGU1ZTM2ZTIwNzU5ODdmNTJlZDU1NzBl
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMjEtMDktMjAgIFBoaWxpcCBDaGltZW50byAgPHBo
aWxpcC5jaGltZW50b0BnbWFpbC5jb20+CisKKyAgICAgICAgQWRkIExMVk0vRkxhbmcncyBpbnQx
MjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFkZGVkIGludDEyOF90IGltcGxl
bWVudGF0aW9uIGZyb20gTExWTSwgYW5kIGl0cyBkZXBlbmRlbmN5CisgICAgICAgIExlYWRpbmda
ZXJvQml0Q291bnQuaC4gQm90aCByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0eWxl
LgorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBMSUNF
TlNFLUxMVk0udHh0OiBBZGRlZC4KKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0ludDEy
OC5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6SW50MTI4SW1wbCk6CisgICAg
ICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yKyBjb25zdCk6CisgICAgICAgIChXVEY6Oklu
dDEyOEltcGw6Om9wZXJhdG9yfiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9w
ZXJhdG9yLSBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yISBjb25z
dCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAg
ICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvciBzdGQ6OnVpbnQ2NF90IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Igc3RkOjppbnQ2NF90IGNvbnN0KToKKyAg
ICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3IgaW50IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6SW50MTI4SW1wbDo6aGlnaCBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Omxv
dyBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yKyspOgorICAgICAg
ICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvci0tKToKKyAgICAgICAgKFdURjo6SW50MTI4SW1w
bDo6b3BlcmF0b3ImIGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Ig
fCAgY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcl4gY29uc3QpOgor
ICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcjw8IGNvbnN0KToKKyAgICAgICAgKFdU
Rjo6SW50MTI4SW1wbDo6b3BlcmF0b3I+PiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yKiBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9y
LyBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yJSBjb25zdCk6Cisg
ICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yPCBjb25zdCk6CisgICAgICAgIChXVEY6
OkludDEyOEltcGw6Om9wZXJhdG9yPD0gY29uc3QpOgorICAgICAgICAoV1RGOjpJbnQxMjhJbXBs
OjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3Ih
PSBjb25zdCk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yPj0gY29uc3QpOgor
ICAgICAgICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcj4gY29uc3QpOgorICAgICAgICAoV1RG
OjpJbnQxMjhJbXBsOjpvcGVyYXRvciY9KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3Bl
cmF0b3J8PSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yXj0pOgorICAgICAg
ICAoV1RGOjpJbnQxMjhJbXBsOjpvcGVyYXRvcjw8PSk6CisgICAgICAgIChXVEY6OkludDEyOElt
cGw6Om9wZXJhdG9yPj49KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0b3IrPSk6
CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yLT0pOgorICAgICAgICAoV1RGOjpJ
bnQxMjhJbXBsOjpvcGVyYXRvcio9KToKKyAgICAgICAgKFdURjo6SW50MTI4SW1wbDo6b3BlcmF0
b3IvPSk6CisgICAgICAgIChXVEY6OkludDEyOEltcGw6Om9wZXJhdG9yJT0pOgorICAgICAgICAo
V1RGOjpJbnQxMjhJbXBsOjpsZWFkaW5nWmVyb2VzIGNvbnN0KToKKyAgICAgICAgKiB3dGYvTGVh
ZGluZ1plcm9CaXRDb3VudC5jcHA6IEFkZGVkLgorICAgICAgICAqIHd0Zi9MZWFkaW5nWmVyb0Jp
dENvdW50Lmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpsZWFkaW5nWmVyb0JpdENvdW50KToKKyAg
ICAgICAgKFdURjo6Yml0c05lZWRlZEZvcik6CisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8g
bWFrZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0
IGIvU291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ZGM1MDYxNWQ3ZWMy
Yjk5MTNkYzQzNGZiMjQzZmMzMDg4OWQyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L0xJQ0VOU0UtTExWTS50eHQKQEAgLTAsMCArMSwyMTkgQEAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEFwYWNoZSBMaWNlbnNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBW
ZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CisgICAgICAgICAgICAgICAgICAgICAgICBodHRwOi8v
d3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvCisKKyAgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1Ig
VVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgIDEuIERlZmluaXRpb25z
LgorCisgICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg
Zm9yIHVzZSwgcmVwcm9kdWN0aW9uLAorICAgICAgYW5kIGRpc3RyaWJ1dGlvbiBhcyBkZWZpbmVk
IGJ5IFNlY3Rpb25zIDEgdGhyb3VnaCA5IG9mIHRoaXMgZG9jdW1lbnQuCisKKyAgICAgICJMaWNl
bnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVk
IGJ5CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyIHRoYXQgaXMgZ3JhbnRpbmcgdGhlIExpY2Vu
c2UuCisKKyAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBh
Y3RpbmcgZW50aXR5IGFuZCBhbGwKKyAgICAgIG90aGVyIGVudGl0aWVzIHRoYXQgY29udHJvbCwg
YXJlIGNvbnRyb2xsZWQgYnksIG9yIGFyZSB1bmRlciBjb21tb24KKyAgICAgIGNvbnRyb2wgd2l0
aCB0aGF0IGVudGl0eS4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sCisgICAg
ICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBj
YXVzZSB0aGUKKyAgICAgIGRpcmVjdGlvbiBvciBtYW5hZ2VtZW50IG9mIHN1Y2ggZW50aXR5LCB3
aGV0aGVyIGJ5IGNvbnRyYWN0IG9yCisgICAgICBvdGhlcndpc2UsIG9yIChpaSkgb3duZXJzaGlw
IG9mIGZpZnR5IHBlcmNlbnQgKDUwJSkgb3IgbW9yZSBvZiB0aGUKKyAgICAgIG91dHN0YW5kaW5n
IHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCisK
KyAgICAgICJZb3UiIChvciAiWW91ciIpIHNoYWxsIG1lYW4gYW4gaW5kaXZpZHVhbCBvciBMZWdh
bCBFbnRpdHkKKyAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExp
Y2Vuc2UuCisKKyAgICAgICJTb3VyY2UiIGZvcm0gc2hhbGwgbWVhbiB0aGUgcHJlZmVycmVkIGZv
cm0gZm9yIG1ha2luZyBtb2RpZmljYXRpb25zLAorICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGlt
aXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgorICAgICAgc291cmNl
LCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKworICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBt
ZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKKyAgICAgIHRyYW5zZm9ybWF0
aW9uIG9yIHRyYW5zbGF0aW9uIG9mIGEgU291cmNlIGZvcm0sIGluY2x1ZGluZyBidXQKKyAgICAg
IG5vdCBsaW1pdGVkIHRvIGNvbXBpbGVkIG9iamVjdCBjb2RlLCBnZW5lcmF0ZWQgZG9jdW1lbnRh
dGlvbiwKKyAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KKworICAg
ICAgIldvcmsiIHNoYWxsIG1lYW4gdGhlIHdvcmsgb2YgYXV0aG9yc2hpcCwgd2hldGhlciBpbiBT
b3VyY2Ugb3IKKyAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGlj
ZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKKyAgICAgIGNvcHlyaWdodCBub3RpY2UgdGhhdCBpcyBp
bmNsdWRlZCBpbiBvciBhdHRhY2hlZCB0byB0aGUgd29yaworICAgICAgKGFuIGV4YW1wbGUgaXMg
cHJvdmlkZWQgaW4gdGhlIEFwcGVuZGl4IGJlbG93KS4KKworICAgICAgIkRlcml2YXRpdmUgV29y
a3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIG9yIE9iamVjdAorICAg
ICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgV29yayBhbmQg
Zm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVs
YWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBh
IHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuIEZvciB0aGUgcHVycG9zZXMK
KyAgICAgIG9mIHRoaXMgTGljZW5zZSwgRGVyaXZhdGl2ZSBXb3JrcyBzaGFsbCBub3QgaW5jbHVk
ZSB3b3JrcyB0aGF0IHJlbWFpbgorICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5r
IChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAorICAgICAgdGhlIFdvcmsg
YW5kIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZi4KKworICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hh
bGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKKyAgICAgIHRoZSBvcmln
aW5hbCB2ZXJzaW9uIG9mIHRoZSBXb3JrIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyBvciBhZGRpdGlv
bnMKKyAgICAgIHRvIHRoYXQgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YsIHRoYXQg
aXMgaW50ZW50aW9uYWxseQorICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNp
b24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgorICAgICAgb3IgYnkgYW4gaW5k
aXZpZHVhbCBvciBMZWdhbCBFbnRpdHkgYXV0aG9yaXplZCB0byBzdWJtaXQgb24gYmVoYWxmIG9m
CisgICAgICB0aGUgY29weXJpZ2h0IG93bmVyLiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVm
aW5pdGlvbiwgInN1Ym1pdHRlZCIKKyAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMs
IHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKKyAgICAgIHRvIHRoZSBMaWNl
bnNvciBvciBpdHMgcmVwcmVzZW50YXRpdmVzLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRv
CisgICAgICBjb21tdW5pY2F0aW9uIG9uIGVsZWN0cm9uaWMgbWFpbGluZyBsaXN0cywgc291cmNl
IGNvZGUgY29udHJvbCBzeXN0ZW1zLAorICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMg
dGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKKyAgICAgIExpY2Vuc29y
IGZvciB0aGUgcHVycG9zZSBvZiBkaXNjdXNzaW5nIGFuZCBpbXByb3ZpbmcgdGhlIFdvcmssIGJ1
dAorICAgICAgZXhjbHVkaW5nIGNvbW11bmljYXRpb24gdGhhdCBpcyBjb25zcGljdW91c2x5IG1h
cmtlZCBvciBvdGhlcndpc2UKKyAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29w
eXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgorCisgICAgICAiQ29udHJpYnV0
b3IiIHNoYWxsIG1lYW4gTGljZW5zb3IgYW5kIGFueSBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0
eQorICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2
ZWQgYnkgTGljZW5zb3IgYW5kCisgICAgICBzdWJzZXF1ZW50bHkgaW5jb3Jwb3JhdGVkIHdpdGhp
biB0aGUgV29yay4KKworICAgIDIuIEdyYW50IG9mIENvcHlyaWdodCBMaWNlbnNlLiBTdWJqZWN0
IHRvIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCBlYWNo
IENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgdG8gWW91IGEgcGVycGV0dWFsLAorICAgICAgd29y
bGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2Fi
bGUKKyAgICAgIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0
aXZlIFdvcmtzIG9mLAorICAgICAgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwg
c3VibGljZW5zZSwgYW5kIGRpc3RyaWJ1dGUgdGhlCisgICAgICBXb3JrIGFuZCBzdWNoIERlcml2
YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgorCisgICAgMy4gR3JhbnQgb2Yg
UGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisg
ICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3Ug
YSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwg
cm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhp
cyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2Us
IG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUg
V29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0
ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJl
IG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFs
b25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0
aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJ
ZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRp
dHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBs
YXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBp
bmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3Ig
Y29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNl
cworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsg
c2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMg
ZmlsZWQuCisKKyAgICA0LiBSZWRpc3RyaWJ1dGlvbi4gWW91IG1heSByZXByb2R1Y2UgYW5kIGRp
c3RyaWJ1dGUgY29waWVzIG9mIHRoZQorICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRo
ZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CisgICAgICBtb2RpZmljYXRpb25z
LCBhbmQgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLCBwcm92aWRlZCB0aGF0IFlvdQorICAgICAg
bWVldCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICAgIChhKSBZb3UgbXVzdCBnaXZl
IGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBXb3JrIG9yCisgICAgICAgICAgRGVyaXZhdGl2
ZSBXb3JrcyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlOyBhbmQKKworICAgICAgKGIpIFlvdSBtdXN0
IGNhdXNlIGFueSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcworICAg
ICAgICAgIHN0YXRpbmcgdGhhdCBZb3UgY2hhbmdlZCB0aGUgZmlsZXM7IGFuZAorCisgICAgICAo
YykgWW91IG11c3QgcmV0YWluLCBpbiB0aGUgU291cmNlIGZvcm0gb2YgYW55IERlcml2YXRpdmUg
V29ya3MKKyAgICAgICAgICB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbGwgY29weXJpZ2h0LCBwYXRl
bnQsIHRyYWRlbWFyaywgYW5kCisgICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRo
ZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKKyAgICAgICAgICBleGNsdWRpbmcgdGhvc2Ugbm90
aWNlcyB0aGF0IGRvIG5vdCBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mCisgICAgICAgICAgdGhlIERl
cml2YXRpdmUgV29ya3M7IGFuZAorCisgICAgICAoZCkgSWYgdGhlIFdvcmsgaW5jbHVkZXMgYSAi
Tk9USUNFIiB0ZXh0IGZpbGUgYXMgcGFydCBvZiBpdHMKKyAgICAgICAgICBkaXN0cmlidXRpb24s
IHRoZW4gYW55IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSBtdXN0CisgICAg
ICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMg
Y29udGFpbmVkCisgICAgICAgICAgd2l0aGluIHN1Y2ggTk9USUNFIGZpbGUsIGV4Y2x1ZGluZyB0
aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90CisgICAgICAgICAgcGVydGFpbiB0byBhbnkgcGFydCBv
ZiB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaW4gYXQgbGVhc3Qgb25lCisgICAgICAgICAgb2YgdGhl
IGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQK
KyAgICAgICAgICBhcyBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyB3aXRoaW4gdGhlIFNv
dXJjZSBmb3JtIG9yCisgICAgICAgICAgZG9jdW1lbnRhdGlvbiwgaWYgcHJvdmlkZWQgYWxvbmcg
d2l0aCB0aGUgRGVyaXZhdGl2ZSBXb3Jrczsgb3IsCisgICAgICAgICAgd2l0aGluIGEgZGlzcGxh
eSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAorICAgICAgICAgIHdo
ZXJldmVyIHN1Y2ggdGhpcmQtcGFydHkgbm90aWNlcyBub3JtYWxseSBhcHBlYXIuIFRoZSBjb250
ZW50cworICAgICAgICAgIG9mIHRoZSBOT1RJQ0UgZmlsZSBhcmUgZm9yIGluZm9ybWF0aW9uYWwg
cHVycG9zZXMgb25seSBhbmQKKyAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZ
b3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgorICAgICAgICAgIG5vdGljZXMgd2l0aGlu
IERlcml2YXRpdmUgV29ya3MgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxvbmdzaWRlCisgICAgICAg
ICAgb3IgYXMgYW4gYWRkZW5kdW0gdG8gdGhlIE5PVElDRSB0ZXh0IGZyb20gdGhlIFdvcmssIHBy
b3ZpZGVkCisgICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNl
cyBjYW5ub3QgYmUgY29uc3RydWVkCisgICAgICAgICAgYXMgbW9kaWZ5aW5nIHRoZSBMaWNlbnNl
LgorCisgICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlv
dXIgbW9kaWZpY2F0aW9ucyBhbmQKKyAgICAgIG1heSBwcm92aWRlIGFkZGl0aW9uYWwgb3IgZGlm
ZmVyZW50IGxpY2Vuc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMKKyAgICAgIGZvciB1c2UsIHJlcHJv
ZHVjdGlvbiwgb3IgZGlzdHJpYnV0aW9uIG9mIFlvdXIgbW9kaWZpY2F0aW9ucywgb3IKKyAgICAg
IGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIg
dXNlLAorICAgICAgcmVwcm9kdWN0aW9uLCBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBXb3JrIG90
aGVyd2lzZSBjb21wbGllcyB3aXRoCisgICAgICB0aGUgY29uZGl0aW9ucyBzdGF0ZWQgaW4gdGhp
cyBMaWNlbnNlLgorCisgICAgNS4gU3VibWlzc2lvbiBvZiBDb250cmlidXRpb25zLiBVbmxlc3Mg
WW91IGV4cGxpY2l0bHkgc3RhdGUgb3RoZXJ3aXNlLAorICAgICAgYW55IENvbnRyaWJ1dGlvbiBp
bnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCisgICAgICBi
eSBZb3UgdG8gdGhlIExpY2Vuc29yIHNoYWxsIGJlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0
aW9ucyBvZgorICAgICAgdGhpcyBMaWNlbnNlLCB3aXRob3V0IGFueSBhZGRpdGlvbmFsIHRlcm1z
IG9yIGNvbmRpdGlvbnMuCisgICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5n
IGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CisgICAgICB0aGUgdGVybXMgb2YgYW55
IHNlcGFyYXRlIGxpY2Vuc2UgYWdyZWVtZW50IHlvdSBtYXkgaGF2ZSBleGVjdXRlZAorICAgICAg
d2l0aCBMaWNlbnNvciByZWdhcmRpbmcgc3VjaCBDb250cmlidXRpb25zLgorCisgICAgNi4gVHJh
ZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRo
ZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1
Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciBy
ZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmln
aW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0Ug
ZmlsZS4KKworICAgIDcuIERpc2NsYWltZXIgb2YgV2FycmFudHkuIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvcgorICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29y
IHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAorICAgICAgQ29udHJpYnV0b3IgcHJvdmlkZXMg
aXRzIENvbnRyaWJ1dGlvbnMpIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgICBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyAg
ICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGll
cyBvciBjb25kaXRpb25zCisgICAgICBvZiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hB
TlRBQklMSVRZLCBvciBGSVRORVNTIEZPUiBBCisgICAgICBQQVJUSUNVTEFSIFBVUlBPU0UuIFlv
dSBhcmUgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKKyAgICAgIGFwcHJv
cHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1l
IGFueQorICAgICAgcmlza3MgYXNzb2NpYXRlZCB3aXRoIFlvdXIgZXhlcmNpc2Ugb2YgcGVybWlz
c2lvbnMgdW5kZXIgdGhpcyBMaWNlbnNlLgorCisgICAgOC4gTGltaXRhdGlvbiBvZiBMaWFiaWxp
dHkuIEluIG5vIGV2ZW50IGFuZCB1bmRlciBubyBsZWdhbCB0aGVvcnksCisgICAgICB3aGV0aGVy
IGluIHRvcnQgKGluY2x1ZGluZyBuZWdsaWdlbmNlKSwgY29udHJhY3QsIG9yIG90aGVyd2lzZSwK
KyAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVy
YXRlIGFuZCBncm9zc2x5CisgICAgICBuZWdsaWdlbnQgYWN0cykgb3IgYWdyZWVkIHRvIGluIHdy
aXRpbmcsIHNoYWxsIGFueSBDb250cmlidXRvciBiZQorICAgICAgbGlhYmxlIHRvIFlvdSBmb3Ig
ZGFtYWdlcywgaW5jbHVkaW5nIGFueSBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAorICAgICAg
aW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJp
c2luZyBhcyBhCisgICAgICByZXN1bHQgb2YgdGhpcyBMaWNlbnNlIG9yIG91dCBvZiB0aGUgdXNl
IG9yIGluYWJpbGl0eSB0byB1c2UgdGhlCisgICAgICBXb3JrIChpbmNsdWRpbmcgYnV0IG5vdCBs
aW1pdGVkIHRvIGRhbWFnZXMgZm9yIGxvc3Mgb2YgZ29vZHdpbGwsCisgICAgICB3b3JrIHN0b3Bw
YWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAorICAg
ICAgb3RoZXIgY29tbWVyY2lhbCBkYW1hZ2VzIG9yIGxvc3NlcyksIGV2ZW4gaWYgc3VjaCBDb250
cmlidXRvcgorICAgICAgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3Vj
aCBkYW1hZ2VzLgorCisgICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlh
YmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2
ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFy
Z2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHks
CisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25z
aXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1
Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFs
ZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBv
ZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5p
ZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9y
IGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdh
aW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5n
IGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICAgRU5EIE9G
IFRFUk1TIEFORCBDT05ESVRJT05TCisKKyAgICBBUFBFTkRJWDogSG93IHRvIGFwcGx5IHRoZSBB
cGFjaGUgTGljZW5zZSB0byB5b3VyIHdvcmsuCisKKyAgICAgIFRvIGFwcGx5IHRoZSBBcGFjaGUg
TGljZW5zZSB0byB5b3VyIHdvcmssIGF0dGFjaCB0aGUgZm9sbG93aW5nCisgICAgICBib2lsZXJw
bGF0ZSBub3RpY2UsIHdpdGggdGhlIGZpZWxkcyBlbmNsb3NlZCBieSBicmFja2V0cyAiW10iCisg
ICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9u
J3QgaW5jbHVkZQorICAgICAgdGhlIGJyYWNrZXRzISkgIFRoZSB0ZXh0IHNob3VsZCBiZSBlbmNs
b3NlZCBpbiB0aGUgYXBwcm9wcmlhdGUKKyAgICAgIGNvbW1lbnQgc3ludGF4IGZvciB0aGUgZmls
ZSBmb3JtYXQuIFdlIGFsc28gcmVjb21tZW5kIHRoYXQgYQorICAgICAgZmlsZSBvciBjbGFzcyBu
YW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQorICAgICAg
c2FtZSAicHJpbnRlZCBwYWdlIiBhcyB0aGUgY29weXJpZ2h0IG5vdGljZSBmb3IgZWFzaWVyCisg
ICAgICBpZGVudGlmaWNhdGlvbiB3aXRoaW4gdGhpcmQtcGFydHkgYXJjaGl2ZXMuCisKKyAgICBD
b3B5cmlnaHQgW3l5eXldIFtuYW1lIG9mIGNvcHlyaWdodCBvd25lcl0KKworICAgIExpY2Vuc2Vk
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwor
ICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4KKyAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQK
KworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisg
ICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLCBzb2Z0d2FyZQorICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3Ry
aWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENP
TkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICAgU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZAorICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKKy0tLSBMTFZN
IEV4Y2VwdGlvbnMgdG8gdGhlIEFwYWNoZSAyLjAgTGljZW5zZSAtLS0tCisKK0FzIGFuIGV4Y2Vw
dGlvbiwgaWYsIGFzIGEgcmVzdWx0IG9mIHlvdXIgY29tcGlsaW5nIHlvdXIgc291cmNlIGNvZGUs
IHBvcnRpb25zCitvZiB0aGlzIFNvZnR3YXJlIGFyZSBlbWJlZGRlZCBpbnRvIGFuIE9iamVjdCBm
b3JtIG9mIHN1Y2ggc291cmNlIGNvZGUsIHlvdQorbWF5IHJlZGlzdHJpYnV0ZSBzdWNoIGVtYmVk
ZGVkIHBvcnRpb25zIGluIHN1Y2ggT2JqZWN0IGZvcm0gd2l0aG91dCBjb21wbHlpbmcKK3dpdGgg
dGhlIGNvbmRpdGlvbnMgb2YgU2VjdGlvbnMgNChhKSwgNChiKSBhbmQgNChkKSBvZiB0aGUgTGlj
ZW5zZS4KKworSW4gYWRkaXRpb24sIGlmIHlvdSBjb21iaW5lIG9yIGxpbmsgY29tcGlsZWQgZm9y
bXMgb2YgdGhpcyBTb2Z0d2FyZSB3aXRoCitzb2Z0d2FyZSB0aGF0IGlzIGxpY2Vuc2VkIHVuZGVy
IHRoZSBHUEx2MiAoIkNvbWJpbmVkIFNvZnR3YXJlIikgYW5kIGlmIGEKK2NvdXJ0IG9mIGNvbXBl
dGVudCBqdXJpc2RpY3Rpb24gZGV0ZXJtaW5lcyB0aGF0IHRoZSBwYXRlbnQgcHJvdmlzaW9uIChT
ZWN0aW9uCiszKSwgdGhlIGluZGVtbml0eSBwcm92aXNpb24gKFNlY3Rpb24gOSkgb3Igb3RoZXIg
U2VjdGlvbiBvZiB0aGUgTGljZW5zZQorY29uZmxpY3RzIHdpdGggdGhlIGNvbmRpdGlvbnMgb2Yg
dGhlIEdQTHYyLCB5b3UgbWF5IHJldHJvYWN0aXZlbHkgYW5kCitwcm9zcGVjdGl2ZWx5IGNob29z
ZSB0byBkZWVtIHdhaXZlZCBvciBvdGhlcndpc2UgZXhjbHVkZSBzdWNoIFNlY3Rpb24ocykgb2YK
K3RoZSBMaWNlbnNlLCBidXQgb25seSBpbiB0aGVpciBlbnRpcmV0eSBhbmQgb25seSB3aXRoIHJl
c3BlY3QgdG8gdGhlIENvbWJpbmVkCitTb2Z0d2FyZS4KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYWZjZjNmMWNmMDMxNmU4YzVlNmE2ZDhhNjM3NGM0ZjFj
NjA2MTY5Zi4uMjYyNTY4OTc3ZWJkOWU0YmQ0NThhMDI2YThmM2UzZDkzYjgzMzgzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xODksNiArMTg5LDcgQEAK
IAkJRTRBMEFEM0QxQTk2MjUzQzAwNTM2REY2IC8qIFdvcmtRdWV1ZUNvY29hLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTBBRDNDMUE5NjI1M0Mw
MDUzNkRGNiAvKiBXb3JrUXVldWVDb2NvYS5jcHAgKi87IH07CiAJCUVCMkM4NkQ5MjY3QjI3NUQw
MDUyQ0I5QSAvKiBDUFVUaW1lUE9TSVguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRUIyQzg2RDgyNjdCMjc1QzAwNTJDQjlBIC8qIENQVVRpbWVQT1NJ
WC5jcHAgKi87IH07CiAJCUVCNjFFREM3MjQwOUNDQzEwMDFFRkUzNiAvKiBTeXN0ZW1UcmFjaW5n
Q29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUI2MUVEQzYyNDA5Q0NDMDAwMUVGRTM2IC8qIFN5c3RlbVRyYWNpbmdDb2NvYS5jcHAgKi87IH07
CisJCUY2RDY3RDM0MjZGOTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RDY3RDMzMjZG
OTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCAqLzsgfTsKIAkJRkUwMzJB
RDIyNDYzRTQzQjAwMTJEN0M3IC8qIFdURkNvbmZpZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTAzMkFEMDI0NjNFNDNCMDAxMkQ3QzcgLyogV1RG
Q29uZmlnLmNwcCAqLzsgfTsKIAkJRkUwNUZBRkYxRkU1MDA3NTAwMDkzMjMwIC8qIFdURkFzc2Vy
dGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkUwNUZBRkUxRkU1MDA3NTAwMDkzMjMwIC8qIFdURkFzc2VydGlvbnMuY3BwICovOyB9OwogCQlG
RTFFMkMzQjIyNDBDMDY2MDBGNkI3MjkgLyogUHRyVGFnLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFMUUyQzM5MjI0MEMwNTQwMEY2QjcyOSAvKiBQ
dHJUYWcuY3BwICovOyB9OwpAQCAtNzg0LDYgKzc4NSw5IEBACiAJCUVCOTVFMUVGMTYxQTcyNDEw
MDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Qnl0ZU9yZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCRkY2N0ZDMjQwRDdE
NjYwMDc4RkYxQiAvKiBPU1ZhcmlhbnRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT1NWYXJpYW50U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVGN0Q2
Q0Q1OUQ4NjQyQThBMERBODZBRCAvKiBTdGFja1RyYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0YWNrVHJhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RjZENjdEMzEyNkY5MDE0MjAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291bnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVhZGluZ1plcm9CaXRDb3VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNkQ2N0QzMjI2RjkwMTQyMDA2RTAzNDkgLyogSW50MTI4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEludDEyOC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNkQ2N0QzMzI2RjkwMTQzMDA2RTAzNDkgLyogTGVhZGluZ1pl
cm9CaXRDb3VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWFk
aW5nWmVyb0JpdENvdW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjcyQkJE
QjEwN0ZBNDI0ODg2MTc4QjlFIC8qIFN5bWJvbEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3ltYm9sSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFMDMyQUQwMjQ2M0U0M0IwMDEyRDdDNyAvKiBXVEZDb25maWcuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV1RGQ29uZmlnLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRkUwMzJBRDEyNDYzRTQzQjAwMTJEN0M3IC8qIFdURkNvbmZpZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZDb25maWcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMTIsNiArMTExNiw3IEBACiAJCQkJQThBNDcyQkMxNTFB
ODI1QTAwNDEyM0ZGIC8qIElubGluZUFTTS5oICovLAogCQkJCUE3MERBMDgyMTc5OUYwNEQwMDUy
OUE5QiAvKiBJbnNlcnRpb24uaCAqLywKIAkJCQk1MTgyQzIyQzFGMkJDN0U2MDA1OUJBN0MgLyog
SW5zdGFuY2VDb3VudGVkLmggKi8sCisJCQkJRjZENjdEMzIyNkY5MDE0MjAwNkUwMzQ5IC8qIElu
dDEyOC5oICovLAogCQkJCTMzRkQ0ODExMjY1Q0IzODAwMEFCRTRGNCAvKiBJbnRlcmZlcmVuY2VH
cmFwaC5oICovLAogCQkJCTBGN0VCODVCMUZBOEZGNDEwMEYxQUJDQiAvKiBJc29NYWxsb2MuaCAq
LywKIAkJCQkwRjdFQjg1QzFGQThGRjQyMDBGMUFCQ0IgLyogSXNvTWFsbG9jSW5saW5lcy5oICov
LApAQCAtMTEyNCw2ICsxMTI5LDggQEAKIAkJCQk3Qzk2OTI5NDFGNjYzMDZFMDAyNjdBOUUgLyog
S2V5VmFsdWVQYWlyLmggKi8sCiAJCQkJQzJCQ0ZDM0UxRjYxRDEzMDAwQzkyMjJDIC8qIExhbmd1
YWdlLmNwcCAqLywKIAkJCQlDMkJDRkMzRjFGNjFEMTMwMDBDOTIyMkMgLyogTGFuZ3VhZ2UuaCAq
LywKKwkJCQlGNkQ2N0QzMzI2RjkwMTQzMDA2RTAzNDkgLyogTGVhZGluZ1plcm9CaXRDb3VudC5j
cHAgKi8sCisJCQkJRjZENjdEMzEyNkY5MDE0MjAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291
bnQuaCAqLywKIAkJCQk1MzlFQjA2MjFENTUyODQyMDBDODJFRjcgLyogTEVCRGVjb2Rlci5oICov
LAogCQkJCTMzN0IyRDY4MjY1NDZFQUEwMERERkQzRCAvKiBMaWtlbHlEZW5zZVVuc2lnbmVkSW50
ZWdlclNldC5jcHAgKi8sCiAJCQkJMzM3QjJENjkyNjU0NkVBQTAwRERGRDNEIC8qIExpa2VseURl
bnNlVW5zaWduZWRJbnRlZ2VyU2V0LmggKi8sCkBAIC0xNzYwLDYgKzE3NjcsNyBAQAogCQkJCUMy
QkNGQzQwMUY2MUQxMzAwMEM5MjIyQyAvKiBMYW5ndWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlDMkJDRkM0MjFGNjFENjE2MDBDOTIyMkMgLyogTGFuZ3VhZ2VDRi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQzUwM0JFNjIzQUFFMEFFMDA3MkU2NkIgLyogTGFuZ3VhZ2VDb2NvYS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUY2RDY3RDM0MjZGOTAxNDMwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0Jp
dENvdW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzN0IyRDZBMjY1NDZFQjMwMERERkQzRCAv
KiBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
M0I4RTQxRDI0RTdDRTkyMDAzNjU1RDggLyogTGluZUJyZWFrSXRlcmF0b3JQb29sSUNVLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUMyQkNGQzU1MUY2MjFGM0YwMEM5MjIyQyAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAwODI2Yjg1M2Q1NTYy
MmZlMTg2OGZhMzZjOTdlZDI5MGJlY2MzODc1Li42NGYwZjU1MjliMjk4MDM1NjU1ZjE2Yzg0MGFi
ZDNkMTkxMDI4YjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTAzLDYgKzEwMyw3IEBAIHNl
dChXVEZfUFVCTElDX0hFQURFUlMKICAgICBJbmxpbmVBU00uaAogICAgIEluc2VydGlvbi5oCiAg
ICAgSW5zdGFuY2VDb3VudGVkLmgKKyAgICBJbnQxMjguaAogICAgIEludGVyZmVyZW5jZUdyYXBo
LmgKICAgICBJc29NYWxsb2MuaAogICAgIElzb01hbGxvY0lubGluZXMuaApAQCAtMTEzLDYgKzEx
NCw3IEBAIHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBLZXlWYWx1ZVBhaXIuaAogICAgIExF
QkRlY29kZXIuaAogICAgIExhbmd1YWdlLmgKKyAgICBMZWFkaW5nWmVyb0JpdENvdW50LmgKICAg
ICBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNldC5oCiAgICAgTGlzdER1bXAuaAogICAgIExp
c3RIYXNoU2V0LmgKQEAgLTQyMyw2ICs0MjUsNyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBKU09O
VmFsdWVzLmNwcAogICAgIEpTVmFsdWVNYWxsb2MuY3BwCiAgICAgTGFuZ3VhZ2UuY3BwCisgICAg
TGVhZGluZ1plcm9CaXRDb3VudC5jcHAKICAgICBMaWtlbHlEZW5zZVVuc2lnbmVkSW50ZWdlclNl
dC5jcHAKICAgICBMb2NrLmNwcAogICAgIExvY2tlZFByaW50U3RyZWFtLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvSW50MTI4LmggYi9Tb3VyY2UvV1RGL3d0Zi9JbnQxMjguaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42NWZlODMyNDNhMjA4M2FjY2ZjNjljMGM2MzVkNTZhODgwMzQ1NjQwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvSW50MTI4LmgKQEAgLTAsMCArMSwyOTcgQEAKKy8v
IFRha2VuIGZyb20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3
aXRoIExMVk0gRXhjZXB0aW9ucy4KKy8vIFNlZSBTb3VyY2UvV1RGL0xJQ0VOU0UtTExWTS50eHQg
Zm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBh
Y2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCisKKy8vIFBvcnRhYmxlIDEyOC1iaXQgdW5zaWdu
ZWQgaW50ZWdlciBhcml0aG1ldGljIGZvciB1c2UgaW4gaW1wb3ZlcmlzaGVkCisvLyBDKysgaW1w
bGVtZW50YXRpb25zIGxhY2tpbmcgX191aW50MTI4X3QuCisKKy8vIEJhc2VkIG9uOgorLy8gaHR0
cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0L2Jsb2IvZDQ4MGY5NjgvZmxhbmcvaW5j
bHVkZS9mbGFuZy9Db21tb24vdWludDEyOC5oCisKKyNwcmFnbWEgb25jZQorCisvLyBEZWZpbmUg
QVZPSURfTkFUSVZFX0lOVDEyOF9UIHRvIGZvcmNlIHRoZSB1c2Ugb2YgSW50MTI4SW1wbCBiZWxv
dyBpbnN0ZWFkIG9mCisvLyB0aGUgQysrIGNvbXBpbGVyJ3MgbmF0aXZlIDEyOC1iaXQgdW5zaWdu
ZWQgaW50ZWdlciB0eXBlLCBpZiBpdCBoYXMgb25lLgorI2lmbmRlZiBBVk9JRF9OQVRJVkVfSU5U
MTI4X1QKKyNkZWZpbmUgQVZPSURfTkFUSVZFX0lOVDEyOF9UIDAKKyNlbmRpZgorCisjaW5jbHVk
ZSA8Y3N0ZGludD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNpbmNsdWRlIDx3dGYvTGVhZGlu
Z1plcm9CaXRDb3VudC5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUgPGJvb2wgSVNf
U0lHTkVEID0gZmFsc2U+IGNsYXNzIEludDEyOEltcGwgeworcHVibGljOgorICAgIGNvbnN0ZXhw
ciBJbnQxMjhJbXBsKCkgeyB9CisgICAgLy8gVGhpcyBtZWFucyBvZiBkZWZpbml0aW9uIHByb3Zp
ZGVzIHNvbWUgcG9ydGFiaWxpdHkgZm9yCisgICAgLy8gInNpemVfdCIgb3BlcmFuZHMuCisgICAg
Y29uc3RleHByIEludDEyOEltcGwodW5zaWduZWQgbikgOiBsb3dfIHtufSB7IH0KKyAgICBjb25z
dGV4cHIgSW50MTI4SW1wbCh1bnNpZ25lZCBsb25nIG4pIDogbG93XyB7bn0geyB9CisgICAgY29u
c3RleHByIEludDEyOEltcGwodW5zaWduZWQgbG9uZyBsb25nIG4pIDogbG93XyB7bn0geyB9Cisg
ICAgY29uc3RleHByIEludDEyOEltcGwoaW50IG4pCisgICAgICAgIDogbG93XyB7c3RhdGljX2Nh
c3Q8c3RkOjp1aW50NjRfdD4obil9CisgICAgICAgICwgaGlnaF8gey1zdGF0aWNfY2FzdDxzdGQ6
OnVpbnQ2NF90PihuIDwgMCl9CisgICAgeyB9CisgICAgY29uc3RleHByIEludDEyOEltcGwobG9u
ZyBuKQorICAgICAgICA6IGxvd18ge3N0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pfQorICAg
ICAgICAsIGhpZ2hfIHstc3RhdGljX2Nhc3Q8c3RkOjp1aW50NjRfdD4obiA8IDApfQorICAgIHsg
fQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsKGxvbmcgbG9uZyBuKQorICAgICAgICA6IGxvd18g
e3N0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pfQorICAgICAgICAsIGhpZ2hfIHstc3RhdGlj
X2Nhc3Q8c3RkOjp1aW50NjRfdD4obiA8IDApfQorICAgIHsgfQorICAgIGNvbnN0ZXhwciBJbnQx
MjhJbXBsKGNvbnN0IEludDEyOEltcGwgJikgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhwciBJbnQx
MjhJbXBsKEludDEyOEltcGwgJiYpID0gZGVmYXVsdDsKKyAgICBjb25zdGV4cHIgSW50MTI4SW1w
bCAmb3BlcmF0b3I9KGNvbnN0IEludDEyOEltcGwgJikgPSBkZWZhdWx0OworICAgIGNvbnN0ZXhw
ciBJbnQxMjhJbXBsICZvcGVyYXRvcj0oSW50MTI4SW1wbCAmJikgPSBkZWZhdWx0OworCisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IrKCkgY29uc3QgeyByZXR1cm4gKnRoaXM7IH0K
KyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvcn4oKSBjb25zdCB7IHJldHVybiB7fmhp
Z2hfLCB+bG93X307IH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCBvcGVyYXRvci0oKSBjb25z
dCB7IHJldHVybiB+KnRoaXMgKyAxOyB9CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhKCkg
Y29uc3QgeyByZXR1cm4gIWxvd18gJiYgIWhpZ2hfOyB9CisgICAgY29uc3RleHByIGV4cGxpY2l0
IG9wZXJhdG9yIGJvb2woKSBjb25zdCB7IHJldHVybiBsb3dfIHx8IGhpZ2hfOyB9CisgICAgY29u
c3RleHByIGV4cGxpY2l0IG9wZXJhdG9yIHN0ZDo6dWludDY0X3QoKSBjb25zdCB7IHJldHVybiBs
b3dfOyB9CisgICAgY29uc3RleHByIGV4cGxpY2l0IG9wZXJhdG9yIHN0ZDo6aW50NjRfdCgpIGNv
bnN0IHsgcmV0dXJuIGxvd187IH0KKyAgICBjb25zdGV4cHIgZXhwbGljaXQgb3BlcmF0b3IgaW50
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pihsb3dfKTsgfQorCisgICAgY29uc3Rl
eHByIHN0ZDo6dWludDY0X3QgaGlnaCgpIGNvbnN0IHsgcmV0dXJuIGhpZ2hfOyB9CisgICAgY29u
c3RleHByIHN0ZDo6dWludDY0X3QgbG93KCkgY29uc3QgeyByZXR1cm4gbG93XzsgfQorCisgICAg
Y29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IrKygvKnByZWZpeCovKQorICAgIHsKKyAgICAg
ICAgKnRoaXMgKz0gMTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbCBvcGVyYXRvcisrKGludCAvKnBvc3RmaXgqLykKKyAgICB7CisgICAgICAg
IEludDEyOEltcGwgcmVzdWx0IHsqdGhpc307CisgICAgICAgICp0aGlzICs9IDE7CisgICAgICAg
IHJldHVybiByZXN1bHQ7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9y
LS0oLypwcmVmaXgqLykKKyAgICB7CisgICAgICAgICp0aGlzIC09IDE7CisgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3ItLShpbnQg
Lypwb3N0Zml4Ki8pCisgICAgeworICAgICAgICBJbnQxMjhJbXBsIHJlc3VsdCB7KnRoaXN9Owor
ICAgICAgICAqdGhpcyAtPSAxOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yJihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4ge2hpZ2hfICYgdGhhdC5oaWdoXywgbG93XyAmIHRoYXQubG93
X307CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsIG9wZXJhdG9yIHwgKEludDEyOElt
cGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7aGlnaF8gfCB0aGF0LmhpZ2hf
LCBsb3dfIHwgdGhhdC5sb3dffTsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgb3Bl
cmF0b3JeKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB7aGln
aF8gXiB0aGF0LmhpZ2hfLCBsb3dfIF4gdGhhdC5sb3dffTsKKyAgICB9CisKKyAgICBjb25zdGV4
cHIgSW50MTI4SW1wbCBvcGVyYXRvcjw8KEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIGlmICh0aGF0ID49IDEyOCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAg
IGlmICghdGhhdCkKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgc3RkOjp1aW50
NjRfdCBuIHt0aGF0Lmxvd199OworICAgICAgICBpZiAobiA+PSA2NCkKKyAgICAgICAgICAgIHJl
dHVybiB7bG93XyA8PCAobiAtIDY0KSwgMH07CisgICAgICAgIHJldHVybiB7KGhpZ2hfIDw8IG4p
IHwgKGxvd18gPj4gKDY0IC0gbikpLCBsb3dfIDw8IG59OworICAgIH0KKyAgICBjb25zdGV4cHIg
SW50MTI4SW1wbCBvcGVyYXRvcj4+KEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGlmICh0aGF0ID49IDEyOCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGlm
ICghdGhhdCkKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgc3RkOjp1aW50NjRf
dCBuIHt0aGF0Lmxvd199OworICAgICAgICBpZiAobiA+PSA2NCkKKyAgICAgICAgICAgIHJldHVy
biB7MCwgaGlnaF8gPj4gKG4gLSA2NCl9OworICAgICAgICByZXR1cm4ge2hpZ2hfID4+IG4sICho
aWdoXyA8PCAoNjQgLSBuKSkgfCAobG93XyA+PiBuKX07CisgICAgfQorCisgICAgY29uc3RleHBy
IEludDEyOEltcGwgb3BlcmF0b3IrKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHN0ZDo6dWludDY0X3QgbG93ZXIgeyhsb3dfICYgfnRvcEJpdCkgKyAodGhhdC5sb3dfICYg
fnRvcEJpdCl9OworICAgICAgICBib29sIGNhcnJ5IHsoKGxvd2VyID4+IDYzKSArIChsb3dfID4+
IDYzKSArICh0aGF0Lmxvd18gPj4gNjMpKSA+IDF9OworICAgICAgICByZXR1cm4ge2hpZ2hfICsg
dGhhdC5oaWdoXyArIGNhcnJ5LCBsb3dfICsgdGhhdC5sb3dffTsKKyAgICB9CisgICAgY29uc3Rl
eHByIEludDEyOEltcGwgb3BlcmF0b3ItKEludDEyOEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4g
KnRoaXMgKyAtdGhhdDsgfQorCisgICAgY29uc3RleHByIEludDEyOEltcGwgb3BlcmF0b3IqKElu
dDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAgICAgIHN0ZDo6dWludDY0X3QgbWFzazMy
IHsweGZmZmZmZmZmfTsKKyAgICAgICAgaWYgKCFoaWdoXyAmJiAhdGhhdC5oaWdoXykgeworICAg
ICAgICAgICAgc3RkOjp1aW50NjRfdCB4MCB7bG93XyAmIG1hc2szMn0sIHgxIHtsb3dfID4+IDMy
fTsKKyAgICAgICAgICAgIHN0ZDo6dWludDY0X3QgeTAge3RoYXQubG93XyAmIG1hc2szMn0sIHkx
IHt0aGF0Lmxvd18gPj4gMzJ9OworICAgICAgICAgICAgSW50MTI4SW1wbCB4MHkwIHt4MCAqIHkw
fSwgeDB5MSB7eDAgKiB5MX07CisgICAgICAgICAgICBJbnQxMjhJbXBsIHgxeTAge3gxICogeTB9
LCB4MXkxIHt4MSAqIHkxfTsKKyAgICAgICAgICAgIHJldHVybiB4MHkwICsgKCh4MHkxICsgeDF5
MCkgPDwgMzIpICsgKHgxeTEgPDwgNjQpOworICAgICAgICB9CisKKyAgICAgICAgc3RkOjp1aW50
NjRfdCB4MCB7bG93XyAmIG1hc2szMn0sIHgxIHtsb3dfID4+IDMyfSwgeDIge2hpZ2hfICYgbWFz
azMyfSwKKyAgICAgICAgICAgIHgzIHtoaWdoXyA+PiAzMn07CisgICAgICAgIHN0ZDo6dWludDY0
X3QgeTAge3RoYXQubG93XyAmIG1hc2szMn0sIHkxIHt0aGF0Lmxvd18gPj4gMzJ9LAorICAgICAg
ICAgICAgeTIge3RoYXQuaGlnaF8gJiBtYXNrMzJ9LCB5MyB7dGhhdC5oaWdoXyA+PiAzMn07Cisg
ICAgICAgIEludDEyOEltcGwgeDB5MCB7eDAgKiB5MH0sIHgweTEge3gwICogeTF9LCB4MHkyIHt4
MCAqIHkyfSwgeDB5MyB7eDAgKiB5M307CisgICAgICAgIEludDEyOEltcGwgeDF5MCB7eDEgKiB5
MH0sIHgxeTEge3gxICogeTF9LCB4MXkyIHt4MSAqIHkyfTsKKyAgICAgICAgSW50MTI4SW1wbCB4
MnkwIHt4MiAqIHkwfSwgeDJ5MSB7eDIgKiB5MX07CisgICAgICAgIEludDEyOEltcGwgeDN5MCB7
eDMgKiB5MH07CisgICAgICAgIHJldHVybiB4MHkwICsgKCh4MHkxICsgeDF5MCkgPDwgMzIpICsg
KCh4MHkyICsgeDF5MSArIHgyeTApIDw8IDY0KSArCisgICAgICAgICAgICAoKHgweTMgKyB4MXky
ICsgeDJ5MSArIHgzeTApIDw8IDk2KTsKKyAgICB9CisKKyAgICBjb25zdGV4cHIgSW50MTI4SW1w
bCBvcGVyYXRvci8oSW50MTI4SW1wbCB0aGF0KSBjb25zdAorICAgIHsKKyAgICAgICAgaW50IGog
e2xlYWRpbmdaZXJvZXMoKX07CisgICAgICAgIEludDEyOEltcGwgYml0cyB7KnRoaXN9OworICAg
ICAgICBiaXRzIDw8PSBqOworICAgICAgICBJbnQxMjhJbXBsIG51bWVyYXRvciB7IH07CisgICAg
ICAgIEludDEyOEltcGwgcXVvdGllbnQgeyB9OworICAgICAgICBmb3IgKDsgaiA8IDEyODsgKytq
KSB7CisgICAgICAgICAgICBudW1lcmF0b3IgPDw9IDE7CisgICAgICAgICAgICBpZiAoYml0cy5o
aWdoXyAmIHRvcEJpdCkKKyAgICAgICAgICAgICAgICBudW1lcmF0b3IubG93XyB8PSAxOworICAg
ICAgICAgICAgYml0cyA8PD0gMTsKKyAgICAgICAgICAgIHF1b3RpZW50IDw8PSAxOworICAgICAg
ICAgICAgaWYgKG51bWVyYXRvciA+PSB0aGF0KSB7CisgICAgICAgICAgICAgICAgKytxdW90aWVu
dDsKKyAgICAgICAgICAgICAgICBudW1lcmF0b3IgLT0gdGhhdDsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gcXVvdGllbnQ7CisgICAgfQorCisgICAgY29uc3RleHBy
IEludDEyOEltcGwgb3BlcmF0b3IlKEludDEyOEltcGwgdGhhdCkgY29uc3QKKyAgICB7CisgICAg
ICAgIGludCBqIHtsZWFkaW5nWmVyb2VzKCl9OworICAgICAgICBJbnQxMjhJbXBsIGJpdHMgeyp0
aGlzfTsKKyAgICAgICAgYml0cyA8PD0gajsKKyAgICAgICAgSW50MTI4SW1wbCByZW1haW5kZXIg
eyB9OworICAgICAgICBmb3IgKDsgaiA8IDEyODsgKytqKSB7CisgICAgICAgICAgICByZW1haW5k
ZXIgPDw9IDE7CisgICAgICAgICAgICBpZiAoYml0cy5oaWdoXyAmIHRvcEJpdCkKKyAgICAgICAg
ICAgICAgICByZW1haW5kZXIubG93XyB8PSAxOworICAgICAgICAgICAgYml0cyA8PD0gMTsKKyAg
ICAgICAgICAgIGlmIChyZW1haW5kZXIgPj0gdGhhdCkKKyAgICAgICAgICAgICAgICByZW1haW5k
ZXIgLT0gdGhhdDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVtYWluZGVyOworICAgIH0K
KworICAgIGNvbnN0ZXhwciBib29sIG9wZXJhdG9yPChJbnQxMjhJbXBsIHRoYXQpIGNvbnN0Cisg
ICAgeworICAgICAgICBpZiAoSVNfU0lHTkVEICYmIChoaWdoXyBeIHRoYXQuaGlnaF8pICYgdG9w
Qml0KQorICAgICAgICAgICAgcmV0dXJuICEhKGhpZ2hfICYgdG9wQml0KTsKKworICAgICAgICBy
ZXR1cm4gaGlnaF8gPCB0aGF0LmhpZ2hfIHx8IChoaWdoXyA9PSB0aGF0LmhpZ2hfICYmIGxvd18g
PCB0aGF0Lmxvd18pOworICAgIH0KKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcjw9KEludDEy
OEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4gISgqdGhpcyA+IHRoYXQpOyB9CisgICAgY29uc3Rl
eHByIGJvb2wgb3BlcmF0b3I9PShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbG93XyA9PSB0aGF0Lmxvd18gJiYgaGlnaF8gPT0gdGhhdC5oaWdoXzsKKyAgICB9
CisgICAgY29uc3RleHByIGJvb2wgb3BlcmF0b3IhPShJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsg
cmV0dXJuICEoKnRoaXMgPT0gdGhhdCk7IH0KKyAgICBjb25zdGV4cHIgYm9vbCBvcGVyYXRvcj49
KEludDEyOEltcGwgdGhhdCkgY29uc3QgeyByZXR1cm4gdGhhdCA8PSAqdGhpczsgfQorICAgIGNv
bnN0ZXhwciBib29sIG9wZXJhdG9yPihJbnQxMjhJbXBsIHRoYXQpIGNvbnN0IHsgcmV0dXJuIHRo
YXQgPCAqdGhpczsgfQorCisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJhdG9yJj0oY29u
c3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7CisgICAgICAgICp0aGlzID0gKnRoaXMgJiB0aGF0
OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBs
ICZvcGVyYXRvcnw9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhp
cyA9ICp0aGlzIHwgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICBjb25z
dGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3JePShjb25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAg
IHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyBeIHRoYXQ7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJhdG9yPDw9KGNvbnN0IEludDEy
OEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzIDw8IHRoYXQ7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOEltcGwgJm9wZXJh
dG9yPj49KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0
aGlzID4+IHRoYXQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHBy
IEludDEyOEltcGwgJm9wZXJhdG9yKz0oY29uc3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7Cisg
ICAgICAgICp0aGlzID0gKnRoaXMgKyB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
fQorICAgIGNvbnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvci09KGNvbnN0IEludDEyOEltcGwg
JnRoYXQpCisgICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzIC0gdGhhdDsKKyAgICAgICAgcmV0
dXJuICp0aGlzOworICAgIH0KKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbCAmb3BlcmF0b3IqPShj
b25zdCBJbnQxMjhJbXBsICZ0aGF0KQorICAgIHsKKyAgICAgICAgKnRoaXMgPSAqdGhpcyAqIHRo
YXQ7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisgICAgY29uc3RleHByIEludDEyOElt
cGwgJm9wZXJhdG9yLz0oY29uc3QgSW50MTI4SW1wbCAmdGhhdCkKKyAgICB7CisgICAgICAgICp0
aGlzID0gKnRoaXMgLyB0aGF0OworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorICAgIGNv
bnN0ZXhwciBJbnQxMjhJbXBsICZvcGVyYXRvciU9KGNvbnN0IEludDEyOEltcGwgJnRoYXQpCisg
ICAgeworICAgICAgICAqdGhpcyA9ICp0aGlzICUgdGhhdDsKKyAgICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBjb25zdGV4cHIgSW50MTI4SW1wbChzdGQ6OnVpbnQ2
NF90IGhpLCBzdGQ6OnVpbnQ2NF90IGxvKSA6IGxvd18ge2xvfSwgaGlnaF8ge2hpfSB7IH0KKyAg
ICBjb25zdGV4cHIgaW50IGxlYWRpbmdaZXJvZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYg
KCFoaWdoXykKKyAgICAgICAgICAgIHJldHVybiA2NCArIGxlYWRpbmdaZXJvQml0Q291bnQobG93
Xyk7CisgICAgICAgIHJldHVybiBsZWFkaW5nWmVyb0JpdENvdW50KGhpZ2hfKTsKKyAgICB9Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnVpbnQ2NF90IHRvcEJpdCB7c3RkOjp1aW50NjRfdCB7
MX0gPDwgNjN9OworICAgIHN0ZDo6dWludDY0X3QgbG93XyB7MH0sIGhpZ2hfIHswfTsKK307CisK
KyNpZiAhQVZPSURfTkFUSVZFX0lOVDEyOF9UICYmIEhBVkUoSU5UMTI4X1QpCit1c2luZyBVSW50
MTI4ID0gX191aW50MTI4X3Q7Cit1c2luZyBJbnQxMjggPSBfX2ludDEyOF90OworI2Vsc2UKK3Vz
aW5nIFVJbnQxMjggPSBJbnQxMjhJbXBsPGZhbHNlPjsKK3VzaW5nIEludDEyOCA9IEludDEyOElt
cGw8dHJ1ZT47CisjZW5kaWYKKwordGVtcGxhdGUgPGludCBCSVRTPiBzdHJ1Y3QgSG9zdFVuc2ln
bmVkSW50VHlwZUhlbHBlciB7CisgICAgdXNpbmcgdHlwZSA9IHN0ZDo6Y29uZGl0aW9uYWxfdDwo
QklUUyA8PSA4KSwgc3RkOjp1aW50OF90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gMTYpLCBzdGQ6OnVpbnQxNl90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gMzIpLCBzdGQ6OnVpbnQzMl90LAorICAgICAgICBzdGQ6OmNvbmRpdGlvbmFsX3Q8KEJJ
VFMgPD0gNjQpLCBzdGQ6OnVpbnQ2NF90LCBVSW50MTI4Pj4+PjsKK307Cit0ZW1wbGF0ZSA8aW50
IEJJVFM+IHN0cnVjdCBIb3N0U2lnbmVkSW50VHlwZUhlbHBlciB7CisgICAgdXNpbmcgdHlwZSA9
IHN0ZDo6Y29uZGl0aW9uYWxfdDwoQklUUyA8PSA4KSwgc3RkOjppbnQ4X3QsCisgICAgICAgIHN0
ZDo6Y29uZGl0aW9uYWxfdDwoQklUUyA8PSAxNiksIHN0ZDo6aW50MTZfdCwKKyAgICAgICAgc3Rk
Ojpjb25kaXRpb25hbF90PChCSVRTIDw9IDMyKSwgc3RkOjppbnQzMl90LAorICAgICAgICBzdGQ6
OmNvbmRpdGlvbmFsX3Q8KEJJVFMgPD0gNjQpLCBzdGQ6OmludDY0X3QsIEludDEyOD4+Pj47Cit9
OwordGVtcGxhdGUgPGludCBCSVRTPgordXNpbmcgSG9zdFVuc2lnbmVkSW50VHlwZSA9IHR5cGVu
YW1lIEhvc3RVbnNpZ25lZEludFR5cGVIZWxwZXI8QklUUz46OnR5cGU7Cit0ZW1wbGF0ZSA8aW50
IEJJVFM+Cit1c2luZyBIb3N0U2lnbmVkSW50VHlwZSA9IHR5cGVuYW1lIEhvc3RTaWduZWRJbnRU
eXBlSGVscGVyPEJJVFM+Ojp0eXBlOworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RG
OjpJbnQxMjg7Cit1c2luZyBXVEY6OlVJbnQxMjg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcCBiL1NvdXJjZS9XVEYvd3RmL0xlYWRpbmdaZXJvQml0
Q291bnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZjhiZTk5OGUzNTg1OTExOGQ1ZWUwMThjNmM1YWIzMmU1
ZGI3NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9MZWFkaW5nWmVyb0JpdENv
dW50LmNwcApAQCAtMCwwICsxLDMyIEBACisvLyBUYWtlbiBmcm9tIExMVk0gUHJvamVjdCwgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCisvLyBTZWUg
U291cmNlL1dURi9MSUNFTlNFLUxMVk0udHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8g
U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgor
CisvLyBCYXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9i
bG9iL2Q0ODBmOTY4L2ZsYW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL2xlYWRpbmctemVyby1iaXQt
Y291bnQuaAorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTGVhZGluZ1plcm9CaXRD
b3VudC5oIgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorCituYW1lc3BhY2UgV1RGIHsKKworY29u
c3Qgc3RkOjp1aW50OF90IG1hcHBpbmdbNjRdIHs2MywgMCwgNTgsIDEsIDU5LCA0NywgNTMsIDIs
IDYwLCAzOSwKKyAgICA0OCwgMjcsIDU0LCAzMywgNDIsIDMsIDYxLCA1MSwgMzcsIDQwLCA0OSwg
MTgsIDI4LCAyMCwgNTUsIDMwLCAzNCwgMTEsIDQzLAorICAgIDE0LCAyMiwgNCwgNjIsIDU3LCA0
NiwgNTIsIDM4LCAyNiwgMzIsIDQxLCA1MCwgMzYsIDE3LCAxOSwgMjksIDEwLCAxMywgMjEsCisg
ICAgNTYsIDQ1LCAyNSwgMzEsIDM1LCAxNiwgOSwgMTIsIDQ0LCAyNCwgMTUsIDgsIDIzLCA3LCA2
LCA1fTsKKworY29uc3Qgc3RkOjp1aW50OF90IGVpZ2h0Qml0TGVhZGluZ1plcm9CaXRDb3VudFsy
NTZdIHs4LCA3LCA2LCA2LCA1LCA1LAorICAgIDUsIDUsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQs
IDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsCisgICAgMywgMiwg
MiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwg
MiwgMiwgMiwgMiwKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAxLCAxLCAx
LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAorICAgIDEsIDEsIDEsIDEsIDEsIDEs
IDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEs
CisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwg
MSwgMSwgMSwgMSwgMSwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKKyAgICAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9MZWFkaW5nWmVyb0JpdENvdW50LmggYi9Tb3VyY2UvV1RGL3d0Zi9MZWFkaW5nWmVyb0JpdENv
dW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjI3YTAxYTYyZTc2ZDM2ODdiNWIyMDY1ZDM5YzFmM2JjZjYyMWJk
NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xlYWRpbmdaZXJvQml0Q291bnQu
aApAQCAtMCwwICsxLDg1IEBACisvLyBUYWtlbiBmcm9tIExMVk0gUHJvamVjdCwgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCisvLyBTZWUgU291cmNl
L1dURi9MSUNFTlNFLUxMVk0udHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgorLy8gU1BEWC1M
aWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgorCisvLyBC
YXNlZCBvbjoKKy8vIGh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9ibG9iL2Q0
ODBmOTY4L2ZsYW5nL2luY2x1ZGUvZmxhbmcvQ29tbW9uL2xlYWRpbmctemVyby1iaXQtY291bnQu
aAorCisjcHJhZ21hIG9uY2UKKworLy8gQSBmYXN0IGFuZCBwb3J0YWJsZSBmdW5jdGlvbiB0aGF0
IGltcGxlbWVudHMgRm9ydHJhbidzIExFQURaIGludHJpbnNpYworLy8gZnVuY3Rpb24sIHdoaWNo
IGNvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgKG1vc3Qgc2lnbmlmaWNhbnQpIHplcm8gYml0
CisvLyBwb3NpdGlvbnMgaW4gYW4gaW50ZWdlciB2YWx1ZS4gKElmIHRoZSBtb3N0IHNpZ25pZmlj
YW50IGJpdCBpcyBzZXQsIHRoZQorLy8gbGVhZGluZyB6ZXJvIGNvdW50IGlzIHplcm87IGlmIG5v
IGJpdCBpcyBzZXQsIHRoZSBsZWFkaW5nIHplcm8gY291bnQgaXMgdGhlCisvLyB3b3JkIHNpemUg
aW4gYml0czsgb3RoZXJ3aXNlLCBpdCdzIHRoZSBsYXJnZXN0IGxlZnQgc2hpZnQgY291bnQgdGhh
dAorLy8gZG9lc24ndCByZWR1Y2UgdGhlIG51bWJlciBvZiBiaXRzIGluIHRoZSB3b3JkIHRoYXQg
YXJlIHNldC4pCisKKyNpbmNsdWRlIDxjaW50dHlwZXM+CisKK25hbWVzcGFjZSBXVEYgeworCisv
LyBUaGUgZm9sbG93aW5nIG1hZ2ljIGNvbnN0YW50IGlzIGEgYmluYXJ5IGRlQnJ1aWpuIHNlcXVl
bmNlLgorLy8gSXQgaGFzIHRoZSByZW1hcmthYmxlIHByb3BlcnR5IHRoYXQgaWYgb25lIGV4dGVu
ZHMgaXQKKy8vICh2aXJ0dWFsbHkpIG9uIHRoZSByaWdodCB3aXRoIDUgbW9yZSB6ZXJvIGJpdHMs
IHRoZW4gYWxsCisvLyBvZiB0aGUgNjQgY29udGlndW91cyBmcmFtZWQgYmxvY2tzIG9mIHNpeCBi
aXRzIGluIHRoZQorLy8gZXh0ZW5kZWQgNjktYml0IHNlcXVlbmNlIGFyZSBkaXN0aW5jdC4gQ29u
c2VxdWVudGx5LAorLy8gaWYgb25lIHNoaWZ0cyBpdCBsZWZ0IGJ5IGFueSBzaGlmdCBjb3VudCBb
MC4uNjNdIHdpdGgKKy8vIHRydW5jYXRpb24gYW5kIGV4dHJhY3RzIHRoZSB1cHBlcm1vc3Qgc2l4
IGJpdCBmaWVsZAorLy8gb2YgdGhlIHNoaWZ0ZWQgdmFsdWUsIGVhY2ggc2hpZnQgY291bnQgbWFw
cyB0byBhIGRpc3RpbmN0CisvLyBmaWVsZCB2YWx1ZS4gVGhhdCBtZWFucyB0aGF0IHdlIGNhbiBt
YXAgdGhvc2UgNjQgZmllbGQKKy8vIHZhbHVlcyBiYWNrIHRvIHRoZSBzaGlmdCBjb3VudHMgdGhh
dCBwcm9kdWNlIHRoZW0sCisvLyBhbmQgKHRoZSBwb2ludCkgdGhpcyBtZWFucyB0aGF0IHdlIGNh
biBzaGlmdCB0aGlzIHZhbHVlCisvLyBieSBhbiB1bmtub3duIGJpdCBjb3VudCBpbiBbMC4uNjNd
IGFuZCB0aGVuIGZpZ3VyZSBvdXQKKy8vIHdoYXQgdGhhdCBjb3VudCBtdXN0IGhhdmUgYmVlbi4K
Ky8vICAgIDAgICA3ICAgZSAgIGQgICBkICAgNSAgIGUgICA1ICAgOSAgIGEgICA0ICAgZSAgIDIg
ICA4ICAgYyAgIDIKKy8vIDAwMDAwMTExMTExMDExMDExMTAxMDEwMTExMTAwMTAxMTAwMTEwMTAw
MTAwMTExMDAwMTAxMDAwMTEwMDAwMTAKK3N0YXRpYyBjb25zdGV4cHIgc3RkOjp1aW50NjRfdCBk
ZUJydWlqbiB7MHgwN2VkZDVlNTlhNGUyOGMyfTsKK2V4dGVybiBXVEZfRVhQT1JUX1BSSVZBVEUg
Y29uc3Qgc3RkOjp1aW50OF90IG1hcHBpbmdbNjRdOworCitleHRlcm4gV1RGX0VYUE9SVF9QUklW
QVRFIGNvbnN0IHN0ZDo6dWludDhfdCBlaWdodEJpdExlYWRpbmdaZXJvQml0Q291bnRbMjU2XTsK
KworaW5saW5lIGNvbnN0ZXhwciBpbnQgbGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQ2NF90
IHgpCit7CisgICAgaWYgKCF4KQorICAgICAgICByZXR1cm4gNjQ7CisKKyAgICB4IHw9IHggPj4g
MTsKKyAgICB4IHw9IHggPj4gMjsKKyAgICB4IHw9IHggPj4gNDsKKyAgICB4IHw9IHggPj4gODsK
KyAgICB4IHw9IHggPj4gMTY7CisgICAgeCB8PSB4ID4+IDMyOworICAgIC8vIEFsbCBvZiB0aGUg
Yml0cyBiZWxvdyB0aGUgdXBwZXJtb3N0IHNldCBiaXQgYXJlIG5vdyBhbHNvIHNldC4KKyAgICB4
IC09IHggPj4gMTsgLy8gQWxsIG9mIHRoZSBiaXRzIGJlbG93IHRoZSB1cHBlcm1vc3QgYXJlIG5v
dyBjbGVhci4KKyAgICAvLyB4IG5vdyBoYXMgZXhhY3RseSBvbmUgYml0IHNldCwgc28gaXQgaXMg
YSBwb3dlciBvZiB0d28sIHNvCisgICAgLy8gbXVsdGlwbGljYXRpb24gYnkgeCBpcyBlcXVpdmFs
ZW50IHRvIGEgbGVmdCBzaGlmdCBieSBpdHMKKyAgICAvLyBiYXNlLTIgbG9nYXJpdGhtLiBXZSBj
YWxjdWxhdGUgdGhhdCB1bmtub3duIGJhc2UtMiBsb2dhcml0aG0KKyAgICAvLyBieSBzaGlmdGlu
ZyB0aGUgZGVCcnVpam4gc2VxdWVuY2UgYW5kIG1hcHBpbmcgdGhlIGZyYW1lZCB2YWx1ZS4KKyAg
ICBpbnQgYmFzZTJMb2cge21hcHBpbmdbKHggKiBkZUJydWlqbikgPj4gNThdfTsKKyAgICByZXR1
cm4gNjMgLSBiYXNlMkxvZzsgLy8gY29udmVydCB0byBsZWFkaW5nIHplcm8gY291bnQKK30KKwor
aW5saW5lIGNvbnN0ZXhwciBpbnQgbGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQzMl90IHgp
Cit7CisgICAgcmV0dXJuIGxlYWRpbmdaZXJvQml0Q291bnQoc3RhdGljX2Nhc3Q8c3RkOjp1aW50
NjRfdD4oeCkpIC0gMzI7Cit9CisKK2lubGluZSBjb25zdGV4cHIgaW50IGxlYWRpbmdaZXJvQml0
Q291bnQoc3RkOjp1aW50MTZfdCB4KQoreworICAgIHJldHVybiBsZWFkaW5nWmVyb0JpdENvdW50
KHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KHgpKSAtIDQ4OworfQorCitpbmxpbmUgaW50IGxl
YWRpbmdaZXJvQml0Q291bnQoc3RkOjp1aW50OF90IHgpCit7CisgICAgcmV0dXJuIGVpZ2h0Qml0
TGVhZGluZ1plcm9CaXRDb3VudFt4XTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIEE+IGlubGlu
ZSBjb25zdGV4cHIgaW50IGJpdHNOZWVkZWRGb3IoQSB4KQoreworICAgIHJldHVybiA4ICogc2l6
ZW9mIHggLSBsZWFkaW5nWmVyb0JpdENvdW50KHgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYK
KwordXNpbmcgV1RGOjpsZWFkaW5nWmVyb0JpdENvdW50OwordXNpbmcgV1RGOjpiaXRzTmVlZGVk
Rm9yOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDMyMDgxMjdkMDQwYjk3YTliZjBkNTgxYWE5ZWE2NDVkM2YxNTY3ZDkuLjI3YjNhOTk5NDFmZTll
ZGQxMDVmMjM2Y2YzZDNkNDFiZjBlZDA3NGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wOS0yMCAgUGhpbGlw
IENoaW1lbnRvICA8cGNoaW1lbnRvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIExMVk0vRkxh
bmcncyBpbnQxMjhfdCBpbXBsZW1lbnRhdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDQzNworCisgICAgICAgIEFkZGVkIHRlc3Rz
IGZvciBJbnQxMjggYW5kIExlYWRpbmdaZXJvQml0Q291bnQgY29waWVkIGZyb20gTExWTSdzIHRl
c3RzLAorICAgICAgICByZWZvcm1hdHRlZCBhY2NvcmRpbmcgdG8gV2ViS2l0IHN0eWxlLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0ludDEyOC5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VGVzdFVu
YXJ5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRlc3RCaW5hcnkpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpUb05hdGl2ZSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpGcm9tTmF0aXZlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRlc3RWc05hdGl2ZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGVh
ZGluZ1plcm9CaXRDb3VudC5jcHA6IEFkZGVkLgorICAgICAgICAoY291bnRXaXRoVHdvU2hpZnRl
ZEJpdHMpOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDktMjAgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIHVzaW5nIG1ha2VSZWYoKnRoaXMpIC8gbWFr
ZVJlZlB0cih0aGlzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXggY2NiMmNkMTM0
Njk4YjJiMzUyMDAxZjZiMjdkYzg4YzA4ZmI3NDdkZS4uNGQzMTRkYjkyY2Y0NGUyOTZiYzYxYzU5
ZGU4MWY1MWNjNGUxNDJhZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC00OSwx
MCArNDksMTIgQEAgc2V0KFRlc3RXVEZfU09VUkNFUwogICAgIFRlc3RzL1dURi9IYXNoZXIuY3Bw
CiAgICAgVGVzdHMvV1RGL0hleE51bWJlci5jcHAKICAgICBUZXN0cy9XVEYvSW5kZXhTcGFyc2VT
ZXQuY3BwCisgICAgVGVzdHMvV1RGL0ludDEyOC5jcHAKICAgICBUZXN0cy9XVEYvSW50ZWdlclRv
U3RyaW5nQ29udmVyc2lvbi5jcHAKICAgICBUZXN0cy9XVEYvSXRlcmF0b3JSYW5nZS5jcHAKICAg
ICBUZXN0cy9XVEYvSlNPTlZhbHVlLmNwcAogICAgIFRlc3RzL1dURi9MRUJEZWNvZGVyLmNwcAor
ICAgIFRlc3RzL1dURi9MZWFkaW5nWmVyb0JpdENvdW50LmNwcAogICAgIFRlc3RzL1dURi9MaWZl
Y3ljbGVMb2dnZXIuY3BwCiAgICAgVGVzdHMvV1RGL0xpbmVFbmRpbmcuY3BwCiAgICAgVGVzdHMv
V1RGL0xpc3RIYXNoU2V0LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjOGY2ODIyODlh
YTgxZjY5OTY3MjdhYTBkNTkyMjg5YWUwNGRlYWFlLi45OTBmYzU0OGUyZmMzNjVhNjVjN2Q5ZDRi
MWU4MjA5Yjc4ZmIxMTBlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI5MSw2ICsxMjkx
LDggQEAKIAkJRjY2MEFBMTUxNUE2MUFCRjAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlh
bGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjY2MEFBMTQxNUE2MUFCRjAwM0ExMjQzIC8q
IEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUu
Y3BwICovOyB9OwogCQlGNkI3QkU5NTE3NDY5MjEyMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9y
bUNvbnRyb2xzX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNkI3QkU5MjE3NDY5MUVGMDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNv
bnRyb2xzX0J1bmRsZS5jcHAgKi87IH07CiAJCUY2QjdCRTk3MTc0NjlCOTYwMDhBMzQ0NSAvKiBh
c3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2QjdCRTk2MTc0NjlCN0UwMDhBMzQ0NSAvKiBhc3Nv
Y2lhdGUtZm9ybS1jb250cm9scy5odG1sICovOyB9OworCQlGNkQ2N0QzNzI2RjkwMjA2MDA2RTAz
NDkgLyogTGVhZGluZ1plcm9CaXRDb3VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNkQ2N0QzNTI2RjkwMjA1MDA2RTAzNDkgLyogTGVhZGluZ1pl
cm9CaXRDb3VudC5jcHAgKi87IH07CisJCUY2RDY3RDM4MjZGOTAyMDYwMDZFMDM0OSAvKiBJbnQx
MjguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZE
NjdEMzYyNkY5MDIwNjAwNkUwMzQ5IC8qIEludDEyOC5jcHAgKi87IH07CiAJCUY2RjQ5QzZCMTU1
NDVDQTcwMDA3RjM5RCAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlX0J1bmRsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNkY0OUM2NjE1NTQ1
QzhEMDAwN0YzOUQgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwICovOyB9
OwogCQlGNkZERERENjE0MjQxQzZGMDA0RjE3MjkgLyogcHVzaC1zdGF0ZS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2RkREREQ1MTQy
NDFDNDgwMDRGMTcyOSAvKiBwdXNoLXN0YXRlLmh0bWwgKi87IH07CiAJCUZFMkJDREM3MjQ3MEZE
QTMwMERFQzMzQiAvKiBTdGRMaWJFeHRyYXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkUyQkNEQzYyNDcwRkM3MDAwREVDMzNCIC8qIFN0ZExpYkV4
dHJhcy5jcHAgKi87IH07CkBAIC0zMTY0LDYgKzMxNjYsOCBAQAogCQlGNkI3QkU5MjE3NDY5MUVG
MDA4QTM0NDUgLyogRGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3JtQ29udHJvbHNfQnVuZGxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZCN0JFOTMxNzQ2OTFFRjAwOEEzNDQ1IC8qIERpZEFzc29j
aWF0ZUZvcm1Db250cm9scy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWRBc3NvY2lhdGVGb3Jt
Q29udHJvbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkI3QkU5NjE3NDY5
QjdFMDA4QTM0NDUgLyogYXNzb2NpYXRlLWZvcm0tY29udHJvbHMuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJh
c3NvY2lhdGUtZm9ybS1jb250cm9scy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjZENjdEMzUyNkY5MDIwNTAwNkUwMzQ5IC8qIExlYWRpbmdaZXJvQml0Q291bnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVhZGluZ1plcm9CaXRDb3VudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2RDY3RDM2MjZGOTAyMDYwMDZFMDM0
OSAvKiBJbnQxMjguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW50
MTI4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjYxNTU0NUM4RDAw
MDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZGNDlDNjcxNTU0NUM4RDAw
MDdGMzlEIC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2RkREREQyMTQyNDFBRDQwMDRGMTcyOSAvKiBQcml2
YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlD
YWxsYmFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NDk4LDkgKzQ1MDIs
MTEgQEAKIAkJCQkyNkIyREZGODE1QkRFNTk5MDA0RjY5MUQgLyogSGFzaFNldC5jcHAgKi8sCiAJ
CQkJN0M4QkZGNzAyM0MwMTA2NzAwQzAwOUIzIC8qIEhleE51bWJlci5jcHAgKi8sCiAJCQkJMzM5
NzZEODIyNERDNDc5QjAwODEyMzA0IC8qIEluZGV4U3BhcnNlU2V0LmNwcCAqLywKKwkJCQlGNkQ2
N0QzNjI2RjkwMjA2MDA2RTAzNDkgLyogSW50MTI4LmNwcCAqLywKIAkJCQkyNjZGQUZEMjE1RTU3
NzUyMDBGNjFENUIgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgKi8sCiAJCQkJN0NF
QjYyQTkyMjM2MDg2QzAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwICovLAogCQkJCTdBMDUw
OTQwMUZCOUYwNDQwMEIzM0ZCOCAvKiBKU09OVmFsdWUuY3BwICovLAorCQkJCUY2RDY3RDM1MjZG
OTAyMDUwMDZFMDM0OSAvKiBMZWFkaW5nWmVyb0JpdENvdW50LmNwcCAqLywKIAkJCQk1MzFDMUQ4
RDFERjhFRjcyMDA2RTk3OUYgLyogTEVCRGVjb2Rlci5jcHAgKi8sCiAJCQkJQTU3RDU0RjcxRjMz
OTdCNDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5jcHAgKi8sCiAJCQkJQTU3RDU0RjgxRjMz
OTdCNDAwQTk3QUE3IC8qIExpZmVjeWNsZUxvZ2dlci5oICovLApAQCAtNTI5NiwxMCArNTMwMiwx
MiBAQAogCQkJCTdDODNERUQ0MUQwQTU5MEMwMEZFQkNGMyAvKiBIYXNoU2V0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDOEJGRjcxMjNDMDEwN0EwMEMwMDlCMyAvKiBIZXhOdW1iZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMzM5NzZEODMyNERDNDc5QjAwODEyMzA0IC8qIEluZGV4U3BhcnNl
U2V0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY2RDY3RDM4MjZGOTAyMDYwMDZFMDM0OSAvKiBJ
bnQxMjguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0RFRTAxRDBBNTkwQzAwRkVCQ0YzIC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTNGQ0RF
NkIyMjlFRkZCOTAwNTk4RUNGIC8qIElzb0hlYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NF
QjYyQUIyMjM2MDlERTAwNjlDQkIwIC8qIEl0ZXJhdG9yUmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJN0EwNTA5NDExRkI5RjA2NDAwQjMzRkI4IC8qIEpTT05WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGNkQ2N0QzNzI2RjkwMjA2MDA2RTAzNDkgLyogTGVhZGluZ1plcm9CaXRDb3Vu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzFDMUQ4RTFERjhFRjcyMDA2RTk3OUYgLyogTEVC
RGVjb2Rlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdENTRGOTFGMzM5N0I0MDBBOTdBQTcg
LyogTGlmZWN5Y2xlTG9nZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTJDNTU1MUZEMzIw
NDEwMEUxREY2QSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvSW50MTI4LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU0YzA4NThhYTQzNWQ4NzEz
YWVkMDY0OWNjNDA0ZmZhMWRkZGRhMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL0ludDEyOC5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8vIFRha2VuIGZy
b20gTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0g
RXhjZXB0aW9ucy4KKy8vIFNlZSBTb3VyY2UvV1RGL0xJQ0VOU0UtTExWTS50eHQgZm9yIGxpY2Vu
c2UgaW5mb3JtYXRpb24uCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBX
SVRIIExMVk0tZXhjZXB0aW9uCisKKy8vIEJhc2VkIG9uOgorLy8gaHR0cHM6Ly9naXRodWIuY29t
L2xsdm0vbGx2bS1wcm9qZWN0L2Jsb2IvZDQ4MGY5NjgvZmxhbmcvdW5pdHRlc3RzL0V2YWx1YXRl
L3VpbnQxMjguY3BwCisKKyNkZWZpbmUgQVZPSURfTkFUSVZFX0lOVDEyOF9UIDEKKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9JbnQxMjguaD4KKworI2luY2x1ZGUgPGNpbnR0
eXBlcz4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgdm9pZCBUZXN0VW5h
cnkoc3RkOjp1aW50NjRfdCB4KQoreworICAgIFVJbnQxMjggbiB7eH07CisgICAgRVhQRUNUX0VR
KHgsIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pKTsKKyAgICBFWFBFQ1RfRVEofngsIHN0
YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KH5uKSk7CisgICAgRVhQRUNUX0VRKC14LCBzdGF0aWNf
Y2FzdDxzdGQ6OnVpbnQ2NF90PigtbikpOworICAgIEVYUEVDVF9FUSgheCwgc3RhdGljX2Nhc3Q8
c3RkOjp1aW50NjRfdD4oIW4pKTsKKyAgICBFWFBFQ1RfVFJVRShuID09IG4pOworICAgIEVYUEVD
VF9UUlVFKG4gKyBuID09IG4gKiBzdGF0aWNfY2FzdDxVSW50MTI4PigyKSk7CisgICAgRVhQRUNU
X1RSVUUobiAtIG4gPT0gc3RhdGljX2Nhc3Q8VUludDEyOD4oMCkpOworICAgIEVYUEVDVF9UUlVF
KG4gKyBuID09IG4gPDwgc3RhdGljX2Nhc3Q8VUludDEyOD4oMSkpOworICAgIEVYUEVDVF9UUlVF
KG4gKyBuID09IG4gPDwgc3RhdGljX2Nhc3Q8VUludDEyOD4oMSkpOworICAgIEVYUEVDVF9UUlVF
KChuICsgbikgLSBuID09IG4pOworICAgIEVYUEVDVF9UUlVFKCgobiArIG4pID4+IHN0YXRpY19j
YXN0PFVJbnQxMjg+KDEpKSA9PSBuKTsKKyAgICBpZiAoeCkgeworICAgICAgICBFWFBFQ1RfVFJV
RShzdGF0aWNfY2FzdDxVSW50MTI4PigwKSAvIG4gPT0gc3RhdGljX2Nhc3Q8VUludDEyOD4oMCkp
OworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxVSW50MTI4PihuIC0gMSkgLyBuID09
IHN0YXRpY19jYXN0PFVJbnQxMjg+KDApKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoc3RhdGljX2Nh
c3Q8VUludDEyOD4obikgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDEpKTsKKyAgICAgICAg
RVhQRUNUX1RSVUUoc3RhdGljX2Nhc3Q8VUludDEyOD4obiArIG4gLSAxKSAvIG4gPT0gc3RhdGlj
X2Nhc3Q8VUludDEyOD4oMSkpOworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxVSW50
MTI4PihuICsgbikgLyBuID09IHN0YXRpY19jYXN0PFVJbnQxMjg+KDIpKTsKKyAgICB9Cit9CisK
K3N0YXRpYyB2b2lkIFRlc3RCaW5hcnkoc3RkOjp1aW50NjRfdCB4LCBzdGQ6OnVpbnQ2NF90IHkp
Cit7CisgICAgVUludDEyOCBtIHt4fSwgbiB7eX07CisgICAgRVhQRUNUX0VRKHgsIHN0YXRpY19j
YXN0PHN0ZDo6dWludDY0X3Q+KG0pKTsKKyAgICBFWFBFQ1RfRVEoeSwgc3RhdGljX2Nhc3Q8c3Rk
Ojp1aW50NjRfdD4obikpOworICAgIEVYUEVDVF9FUSh4ICYgeSwgc3RhdGljX2Nhc3Q8c3RkOjp1
aW50NjRfdD4obSAmIG4pKTsKKyAgICBFWFBFQ1RfRVEoeCB8IHksIHN0YXRpY19jYXN0PHN0ZDo6
dWludDY0X3Q+KG0gfCBuKSk7CisgICAgRVhQRUNUX0VRKHggXiB5LCBzdGF0aWNfY2FzdDxzdGQ6
OnVpbnQ2NF90PihtIF4gbikpOworICAgIEVYUEVDVF9FUSh4ICsgeSwgc3RhdGljX2Nhc3Q8c3Rk
Ojp1aW50NjRfdD4obSArIG4pKTsKKyAgICBFWFBFQ1RfRVEoeCAtIHksIHN0YXRpY19jYXN0PHN0
ZDo6dWludDY0X3Q+KG0gLSBuKSk7CisgICAgRVhQRUNUX0VRKHggKiB5LCBzdGF0aWNfY2FzdDxz
dGQ6OnVpbnQ2NF90PihtICogbikpOworICAgIGlmIChuKQorICAgICAgICBFWFBFQ1RfRVEoeCAv
IHksIHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG0gLyBuKSk7Cit9CisKK1RFU1QoV1RGX0lu
dDEyOCwgQmFzaWMpCit7CisgICAgZm9yIChzdGQ6OnVpbnQ2NF90IGogezB9OyBqIDwgNjQ7ICsr
aikgeworICAgICAgICBUZXN0VW5hcnkoaik7CisgICAgICAgIFRlc3RVbmFyeSh+aik7CisgICAg
ICAgIFRlc3RVbmFyeShzdGQ6OnVpbnQ2NF90KDEpIDw8IGopOworICAgICAgICBmb3IgKHN0ZDo6
dWludDY0X3QgayB7MH07IGsgPCA2NDsgKytrKQorICAgICAgICAgICAgVGVzdEJpbmFyeShqLCBr
KTsKKyAgICB9Cit9CisKKyNpZiBIQVZFKElOVDEyOF9UKQorc3RhdGljIF9fdWludDEyOF90IFRv
TmF0aXZlKFVJbnQxMjggbikKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8X191aW50MTI4X3Q+
KHN0YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4gPj4gNjQpKSA8PCA2NCB8CisgICAgICAgIHN0
YXRpY19jYXN0PHN0ZDo6dWludDY0X3Q+KG4pOworfQorCitzdGF0aWMgVUludDEyOCBGcm9tTmF0
aXZlKF9fdWludDEyOF90IG4pCit7CisgICAgcmV0dXJuIFVJbnQxMjgge3N0YXRpY19jYXN0PHN0
ZDo6dWludDY0X3Q+KG4gPj4gNjQpfSA8PCA2NCB8CisgICAgICAgIFVJbnQxMjgge3N0YXRpY19j
YXN0PHN0ZDo6dWludDY0X3Q+KG4pfTsKK30KKworc3RhdGljIHZvaWQgVGVzdFZzTmF0aXZlKF9f
dWludDEyOF90IHgsIF9fdWludDEyOF90IHkpCit7CisgICAgVUludDEyOCBtIHtGcm9tTmF0aXZl
KHgpfSwgbiB7RnJvbU5hdGl2ZSh5KX07CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSkgPT0g
eCk7CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobikgPT0geSk7CisgICAgRVhQRUNUX1RSVUUo
VG9OYXRpdmUofm0pID09IH54KTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZSgtbSkgPT0gLXgp
OworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKCFtKSA9PSAheCk7CisgICAgRVhQRUNUX1RSVUUo
VG9OYXRpdmUobSA8IG4pID09ICh4IDwgeSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0g
PD0gbikgPT0gKHggPD0geSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPT0gbikgPT0g
KHggPT0geSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gIT0gbikgPT0gKHggIT0geSkp
OworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gPj0gbikgPT0gKHggPj0geSkpOworICAgIEVY
UEVDVF9UUlVFKFRvTmF0aXZlKG0gPiBuKSA9PSAoeCA+IHkpKTsKKyAgICBFWFBFQ1RfVFJVRShU
b05hdGl2ZShtICYgbikgPT0gKHggJiB5KSk7CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSB8
IG4pID09ICh4IHwgeSkpOworICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gXiBuKSA9PSAoeCBe
IHkpKTsKKyAgICBpZiAoeSA8IDEyOCkgeworICAgICAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZSht
IDw8IG4pID09ICh4IDw8IHkpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSA+PiBu
KSA9PSAoeCA+PiB5KSk7CisgICAgfQorICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gKyBuKSA9
PSAoeCArIHkpKTsKKyAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtIC0gbikgPT0gKHggLSB5KSk7
CisgICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSAqIG4pID09ICh4ICogeSkpOworICAgIGlmICh5
ID4gMCkgeworICAgICAgICBFWFBFQ1RfVFJVRShUb05hdGl2ZShtIC8gbikgPT0gKHggLyB5KSk7
CisgICAgICAgIEVYUEVDVF9UUlVFKFRvTmF0aXZlKG0gJSBuKSA9PSAoeCAlIHkpKTsKKyAgICAg
ICAgRVhQRUNUX1RSVUUoVG9OYXRpdmUobSAtIG4gKiAobSAvIG4pKSA9PSAoeCAlIHkpKTsKKyAg
ICB9Cit9CisKK1RFU1QoV1RGX0ludDEyOCwgVnNOYXRpdmUpCit7CisgICAgR1RFU1RfTE9HXyhJ
TkZPKSA8PCAiRW52aXJvbm1lbnQgaGFzIG5hdGl2ZSBfX3VpbnQxMjhfdCI7CisKKyAgICBmb3Ig
KGludCBqIHswfTsgaiA8IDEyODsgKytqKSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwg
MTI4OyArK2spIHsKKyAgICAgICAgICAgIF9fdWludDEyOF90IG0gezF9LCBuIHsxfTsKKyAgICAg
ICAgICAgIG0gPDw9IGo7CisgICAgICAgICAgICBuIDw8PSBrOworICAgICAgICAgICAgVGVzdFZz
TmF0aXZlKG0sIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0aXZlKH5tLCBuKTsKKyAgICAgICAg
ICAgIFRlc3RWc05hdGl2ZShtLCB+bik7CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUofm0sIH5u
KTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtIF4gbiwgbik7CisgICAgICAgICAgICBUZXN0
VnNOYXRpdmUobSwgbSBeIG4pOworICAgICAgICAgICAgVGVzdFZzTmF0aXZlKG0gXiB+biwgbik7
CisgICAgICAgICAgICBUZXN0VnNOYXRpdmUobSwgfm0gXiBuKTsKKyAgICAgICAgICAgIFRlc3RW
c05hdGl2ZShtIF4gfm4sIG0gXiBuKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtIF4gbiwg
fm0gXiBuKTsKKyAgICAgICAgICAgIFRlc3RWc05hdGl2ZShtIF4gfm4sIH5tIF4gbik7CisgICAg
ICAgICAgICBUZXN0QmluYXJ5KG0sIDEwMDAwMDAwMDAwMDAwMDAwKTsgLy8gaW1wb3J0YW50IGNh
c2UgZm9yIGRlY2ltYWwgY29udmVyc2lvbgorICAgICAgICAgICAgVGVzdEJpbmFyeSh+bSwgMTAw
MDAwMDAwMDAwMDAwMDApOworICAgICAgICB9CisgICAgfQorfQorCisjZWxzZSAvLyAhSEFWRShJ
TlQxMjhfVCkKKworVEVTVChXVEZfSW50MTI4LCBWc05hdGl2ZSkKK3sKKyAgICBHVEVTVF9MT0df
KElORk8pIDw8ICJFbnZpcm9ubWVudCBsYWNrcyBuYXRpdmUgX191aW50MTI4X3QiOworfQorCisj
ZW5kaWYgLy8gIUhBVkUoSU5UMTI4X1QpCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xlYWRpbmdaZXJvQml0
Q291bnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTGVhZGluZ1plcm9CaXRD
b3VudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU5Y2MwYjcxOGU0MjM4ODVjOGU1MjFkOTEwOTFhYWU0ZDQw
MzMwMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xl
YWRpbmdaZXJvQml0Q291bnQuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8vIFRha2VuIGZyb20gTExW
TSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0
aW9ucy4KKy8vIFNlZSBTb3VyY2UvV1RGL0xJQ0VOU0UtTExWTS50eHQgZm9yIGxpY2Vuc2UgaW5m
b3JtYXRpb24uCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExM
Vk0tZXhjZXB0aW9uCisKKy8vIEJhc2VkIG9uOgorLy8gaHR0cHM6Ly9naXRodWIuY29tL2xsdm0v
bGx2bS1wcm9qZWN0L2Jsb2IvZDQ4MGY5NjgvZmxhbmcvdW5pdHRlc3RzL0V2YWx1YXRlL2xlYWRp
bmctemVyby1iaXQtY291bnQuY3BwCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDx3
dGYvTGVhZGluZ1plcm9CaXRDb3VudC5oPgorCisjaW5jbHVkZSA8bGltaXRzPgorCit0ZW1wbGF0
ZSA8dHlwZW5hbWUgSW50VHlwZT4KK3N0YXRpYyBib29sIGNvdW50V2l0aFR3b1NoaWZ0ZWRCaXRz
KGludCBqLCBpbnQgaykKK3sKKyAgICBJbnRUeXBlIHggPSAoSW50VHlwZSB7MX0gPDwgaikgfCAo
SW50VHlwZSB7MX0gPDwgayk7CisgICAgcmV0dXJuIGxlYWRpbmdaZXJvQml0Q291bnQoeCkgPT0g
c3RkOjpudW1lcmljX2xpbWl0czxJbnRUeXBlPjo6ZGlnaXRzIC0gMSAtIGo7Cit9CisKK1RFU1Qo
V1RGX0xlYWRpbmdaZXJvQml0Q291bnQsIEJhc2ljKQoreworICAgIEVYUEVDVF9FUShsZWFkaW5n
WmVyb0JpdENvdW50KHN0ZDo6dWludDY0X3QgezB9KSwgNjQpOworICAgIGZvciAoaW50IGogezB9
OyBqIDwgNjQ7ICsraikgeworICAgICAgICBmb3IgKGludCBrIHswfTsgayA8IGo7ICsraykKKyAg
ICAgICAgICAgIEVYUEVDVF9QUkVEMihjb3VudFdpdGhUd29TaGlmdGVkQml0czxzdGQ6OnVpbnQ2
NF90Piwgaiwgayk7CisgICAgfQorCisgICAgRVhQRUNUX0VRKGxlYWRpbmdaZXJvQml0Q291bnQo
c3RkOjp1aW50MzJfdCB7MH0pLCAzMik7CisgICAgZm9yIChpbnQgaiB7MH07IGogPCAzMjsgKytq
KSB7CisgICAgICAgIGZvciAoaW50IGsgezB9OyBrIDwgajsgKytrKQorICAgICAgICAgICAgRVhQ
RUNUX1BSRUQyKGNvdW50V2l0aFR3b1NoaWZ0ZWRCaXRzPHN0ZDo6dWludDMyX3Q+LCBqLCBrKTsK
KyAgICB9CisKKyAgICBFWFBFQ1RfRVEobGVhZGluZ1plcm9CaXRDb3VudChzdGQ6OnVpbnQxNl90
IHswfSksIDE2KTsKKyAgICBmb3IgKGludCBqIHswfTsgaiA8IDE2OyArK2opIHsKKyAgICAgICAg
Zm9yIChpbnQgayB7MH07IGsgPCBqOyArK2spCisgICAgICAgICAgICBFWFBFQ1RfUFJFRDIoY291
bnRXaXRoVHdvU2hpZnRlZEJpdHM8c3RkOjp1aW50MTZfdD4sIGosIGspOworICAgIH0KKworICAg
IEVYUEVDVF9FUShsZWFkaW5nWmVyb0JpdENvdW50KHN0ZDo6dWludDhfdCB7MH0pLCA4KTsKKyAg
ICBmb3IgKGludCBqIHswfTsgaiA8IDg7ICsraikgeworICAgICAgICBmb3IgKGludCBrIHswfTsg
ayA8IGo7ICsraykKKyAgICAgICAgICAgIEVYUEVDVF9QUkVEMihjb3VudFdpdGhUd29TaGlmdGVk
Qml0czxzdGQ6OnVpbnQ4X3Q+LCBqLCBrKTsKKyAgICB9Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>