<?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>235723</bug_id>
          
          <creation_ts>2022-01-27 10:15:21 -0800</creation_ts>
          <short_desc>Default to 32 bit refcount for CanMakeCheckedPtr</short_desc>
          <delta_ts>2022-01-28 00:09:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=226158</see_also>
          <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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1834581</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-27 10:15:21 -0800</bug_when>
    <thetext>It is currently uint16_t for no good reason. We just hit the first bug caused by overrunning it (in iFC).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834583</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-27 10:16:26 -0800</bug_when>
    <thetext>rdar://86602114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834595</commentid>
    <comment_count>2</comment_count>
      <attachid>450153</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-27 10:29:22 -0800</bug_when>
    <thetext>Created attachment 450153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834681</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-27 13:36:39 -0800</bug_when>
    <thetext>I went conservative in size but going with 32-bit is quite reasonable given we also do that in RefCounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834685</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 13:38:42 -0800</bug_when>
    <thetext>Committed r288700 (246498@main): &lt;https://commits.webkit.org/246498@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450153.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834817</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-27 22:14:37 -0800</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #3)
&gt; I went conservative in size but going with 32-bit is quite reasonable given
&gt; we also do that in RefCounted.

An alternative would have been to just remove ASSERT(m_count) from decrement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834834</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-27 23:25:51 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #5)
&gt; (In reply to Ryosuke Niwa from comment #3)
&gt; &gt; I went conservative in size but going with 32-bit is quite reasonable given
&gt; &gt; we also do that in RefCounted.
&gt; 
&gt; An alternative would have been to just remove ASSERT(m_count) from decrement.

I don&apos;t think that would have been quite safe. If m_count had overflowed, then it&apos;s also possible for m_count to become 0 every 2^16 decrements and bypass CanMakeCheckedPtrBase::~CanMakeCheckedPtrBase&apos;s release assert even when there are outstanding CheckedPtr or CheckedRef to it. If the creation of CanMakeCheckedPtr objects can be influenced by scripts, it&apos;s possible for a malicious web page to control how many decrements would happen to m_count to bypass the release assert, thereby triggering UAF down the line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834841</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-27 23:46:53 -0800</bug_when>
    <thetext>Right, that&apos;s why I thought this was a better approach. Overrunning 32 bits by allocating CheckedPtrs is probably not possible in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834844</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2022-01-28 00:09:04 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; Right, that&apos;s why I thought this was a better approach. Overrunning 32 bits
&gt; by allocating CheckedPtrs is probably not possible in practice.

Right.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450153</attachid>
            <date>2022-01-27 10:29:22 -0800</date>
            <delta_ts>2022-01-27 14:30:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235723-20220127202920.patch</filename>
            <type>text/plain</type>
            <size>26952</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4Njc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJiNWZmMzg3ZWY4M2U0OThiYzBjMjQw
YmZjNjk4ODhmNjkwMDMxZjkuLmUyOWEzM2ZmYmJhZDY0YmNlMDZhMmJiYTQ2Yjc1MzI1ZGZjYmI1
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDEtMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgorCisgICAgICAgIERlZmF1bHQgdG8gMzIgYml0IHJlZmNvdW50IGZvciBD
YW5NYWtlQ2hlY2tlZFB0cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM1NzIzCisgICAgICAgIHJkYXI6Ly84NjYwMjExNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIGN1cnJlbnRseSB1aW50MTZf
dCBmb3Igbm8gZ29vZCByZWFzb24uIEl0IGlzIG5vIHVucmVhc29uYWJsZSB0byBoYXZlIGFuIG9i
amVjdCBiZWluZyByZWZlcmVuY2VkCisgICAgICAgIGJ5IGEgbGFyZ2UgbnVtYmVyIG9mIG90aGVy
IG9iamVjdHMuCisKKyAgICAgICAgV2UganVzdCBoaXQgdGhlIGZpcnN0IGJ1ZyBjYXVzZWQgYnkg
b3ZlcnJ1bm5pbmcgaXQgKGluIElGQykuCisKKyAgICAgICAgKiB3dGYvQ2hlY2tlZFJlZi5oOgor
CisgICAgICAgIHVpbnQxNl90IC0+IHVpbnQzMl90CisKIDIwMjItMDEtMjYgIE1pY2hhZWwgQ2F0
YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CiAKICAgICAgICAgQnVpbGQgZmFpbHVyZSB3
aXRoIEdDQyAxMjogTWVkaWFUaW1lLmg6MTY3OjcxOiBlcnJvcjogY2FsbCB0byBub24tJ2NvbnN0
ZXhwcicgZnVuY3Rpb24gJ1dURjo6TWVkaWFUaW1lJiBXVEY6Ok1lZGlhVGltZTo6b3BlcmF0b3I9
KGNvbnN0IFdURjo6TWVkaWFUaW1lJiknCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DaGVj
a2VkUmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9DaGVja2VkUmVmLmgKaW5kZXggOGIyMDNiNWEzY2Vj
ZDY3MjI3YmM3YTVlYTk5NjU5OWQ4ZGJmYzgwYy4uMWZlNGFkYzc3NmU2MTk5MjNkNmE4ZTY0ZmFi
NmUzOTkxN2NlMWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ2hlY2tlZFJlZi5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0NoZWNrZWRSZWYuaApAQCAtMjk4LDggKzI5OCw4IEBAIGlubGlu
ZSBTaW5nbGVUaHJlYWRJbnRlZ3JhbFdyYXBwZXI8SW50ZWdyYWxUeXBlPiYgU2luZ2xlVGhyZWFk
SW50ZWdyYWxXcmFwcGVyPEluCiAgICAgcmV0dXJuICp0aGlzOwogfQogCi11c2luZyBDYW5NYWtl
Q2hlY2tlZFB0ciA9IENhbk1ha2VDaGVja2VkUHRyQmFzZTxTaW5nbGVUaHJlYWRJbnRlZ3JhbFdy
YXBwZXI8dWludDE2X3Q+LCB1aW50MTZfdD47Ci11c2luZyBDYW5NYWtlVGhyZWFkU2FmZUNoZWNr
ZWRQdHIgPSBDYW5NYWtlQ2hlY2tlZFB0ckJhc2U8c3RkOjphdG9taWM8dWludDE2X3Q+LCB1aW50
MTZfdD47Cit1c2luZyBDYW5NYWtlQ2hlY2tlZFB0ciA9IENhbk1ha2VDaGVja2VkUHRyQmFzZTxT
aW5nbGVUaHJlYWRJbnRlZ3JhbFdyYXBwZXI8dWludDMyX3Q+LCB1aW50MzJfdD47Cit1c2luZyBD
YW5NYWtlVGhyZWFkU2FmZUNoZWNrZWRQdHIgPSBDYW5NYWtlQ2hlY2tlZFB0ckJhc2U8c3RkOjph
dG9taWM8dWludDMyX3Q+LCB1aW50MzJfdD47CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzI5MDFjMDA1
NjlkMWUyNTZhNDgzZWZkOGU1NzIxY2MwM2Y1ZDNiZi4uNWIzNzI5YjgzYjA0ZmViNzAyOWZiNjZi
MjhjYWFkYzdiOGNjMWQ0NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTI3ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEZWZhdWx0IHRvIDMyIGJpdCByZWZjb3VudCBm
b3IgQ2FuTWFrZUNoZWNrZWRQdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNTcyMworICAgICAgICByZGFyOi8vODY2MDIxMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NoZWNrZWRQdHIuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ2hlY2tlZFJlZi5jcHA6CisKIDIwMjIt
MDEtMjcgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGRhdGUgV2ViR0wgY29uZm9ybWFuY2UgdGVzdCBzdWl0ZSB0byAyMDIyLTAxLTEyCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkUHRyLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNrZWRQdHIuY3BwCmluZGV4IDc5N2I4YzYwNjIw
ODRiZTY1NzMwOTI2YzEyZTg0N2ZhNjRkMjA4MzIuLjc4NTNiZGFhMzE2MzQyYjhlMDE3MjFlNzBj
MmFkZmE4NzNlN2QzODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NoZWNrZWRQdHIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NoZWNr
ZWRQdHIuY3BwCkBAIC00Nyw2NyArNDcsNjcgQEAgVEVTVChXVEZfQ2hlY2tlZFB0ciwgQmFzaWMp
CiB7CiAgICAgewogICAgICAgICBDaGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAg
IEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgfQogCiAgICAgewogICAgICAg
ICBDaGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2Vk
T2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5w
dHJDb3VudCgpLCAwdSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIENoZWNrZWRQdHIgcHRyIHsg
JmNoZWNrZWRPYmplY3QgfTsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCEhcHRyKTsKICAgICAg
ICAgICAgIEVYUEVDVF9FUShwdHIuZ2V0KCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgICAg
IEVYUEVDVF9FUShwdHItPnNvbWVGdW5jdGlvbigpLCAtNyk7Ci0gICAgICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShj
aGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgfQotICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgQ2hlY2tl
ZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5w
dHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQo
KSwgMHUpOwogCiAgICAgICAgIENoZWNrZWRQdHIgcHRyID0geyAmY2hlY2tlZE9iamVjdCB9Owog
ICAgICAgICBFWFBFQ1RfVFJVRSghIXB0cik7CiAgICAgICAgIEVYUEVDVF9FUShwdHIuZ2V0KCks
ICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgRVhQRUNUX0VRKHB0ci0+c29tZUZ1bmN0aW9uKCks
IC03KTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7Cisg
ICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICAgICAg
cHRyID0gbnVsbHB0cjsKIAogICAgICAgICBFWFBFQ1RfRkFMU0UoISFwdHIpOwogICAgICAgICBF
WFBFQ1RfRVEocHRyLmdldCgpLCBudWxscHRyKTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRP
YmplY3QucHRyQ291bnQoKSwgMCk7CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0
ckNvdW50KCksIDB1KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIENoZWNrZWRPYmplY3QgY2hl
Y2tlZE9iamVjdDsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
MCk7CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKIAog
ICAgICAgICBDaGVja2VkUHRyIHB0cjEgeyAmY2hlY2tlZE9iamVjdCB9OwogICAgICAgICBFWFBF
Q1RfVFJVRSghIXB0cjEpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMS5nZXQoKSwgJmNoZWNrZWRP
YmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMS0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAg
ICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgIEVY
UEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKIAogICAgICAgICBjb25zdCBD
aGVja2VkUHRyIHB0cjIgeyAmY2hlY2tlZE9iamVjdCB9OwogICAgICAgICBFWFBFQ1RfVFJVRSgh
IXB0cjIpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMi5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwog
ICAgICAgICBFWFBFQ1RfRVEocHRyMi0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAgICAgRVhQ
RUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7CisgICAgICAgIEVYUEVDVF9FUShj
aGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDJ1KTsKIAogICAgICAgICBDaGVja2VkUHRyIHB0cjMg
PSBwdHIyOwogICAgICAgICBFWFBFQ1RfVFJVRSghIXB0cjMpOwogICAgICAgICBFWFBFQ1RfRVEo
cHRyMy5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9i
amVjdC5wdHJDb3VudCgpLCAzKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRy
Q291bnQoKSwgM3UpOwogCiAgICAgICAgIHB0cjEgPSBudWxscHRyOwotICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAyKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMnUpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMS5nZXQoKSwg
bnVsbHB0cik7CiAgICAgICAgIEVYUEVDVF9FUShwdHIyLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7
CiAgICAgICAgIEVYUEVDVF9FUShwdHIzLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7CiAKICAgICAg
ICAgcHRyMSA9IFdURk1vdmUocHRyMyk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0
LnB0ckNvdW50KCksIDIpOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3Vu
dCgpLCAydSk7CiAgICAgICAgIEVYUEVDVF9FUShwdHIxLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7
CiAgICAgICAgIEVYUEVDVF9FUShwdHIyLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAg
IEVYUEVDVF9FUShwdHIzLmdldCgpLCBudWxscHRyKTsKQEAgLTExOCw3MiArMTE4LDcyIEBAIFRF
U1QoV1RGX0NoZWNrZWRQdHIsIENoZWNrZWRSZWYpCiB7CiAgICAgewogICAgICAgICBDaGVja2Vk
T2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0
ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgp
LCAwdSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIENoZWNrZWRSZWYgcmVmIHsgY2hlY2tlZE9i
amVjdCB9OwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi5wdHIoKSwgJmNoZWNrZWRPYmplY3Qp
OwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAg
ICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDEpOworICAgICAgICAg
ICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMXUpOwogICAgICAgICAgICAg
Q2hlY2tlZFB0ciBwdHIgeyByZWYgfTsKICAgICAgICAgICAgIEVYUEVDVF9FUShyZWYucHRyKCks
ICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgICAgIEVYUEVDVF9FUShyZWYtPnNvbWVGdW5jdGlv
bigpLCAtNyk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocHRyLmdldCgpLCAmY2hlY2tlZE9iamVj
dCk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocHRyLT5zb21lRnVuY3Rpb24oKSwgLTcpOwotICAg
ICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7CisgICAgICAg
ICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAydSk7CiAgICAgICAgIH0K
LSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMCk7CisgICAgICAg
IEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIERlcml2ZWRDaGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVY
UEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEo
Y2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIENo
ZWNrZWRSZWY8RGVyaXZlZENoZWNrZWRPYmplY3Q+IHJlZiB7IGNoZWNrZWRPYmplY3QgfTsKICAg
ICAgICAgICAgIEVYUEVDVF9FUShyZWYucHRyKCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAg
ICAgIEVYUEVDVF9FUShyZWYtPnNvbWVGdW5jdGlvbigpLCAtNyk7Ci0gICAgICAgICAgICBFWFBF
Q1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9F
UShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgICAgIENoZWNrZWRQdHI8
Q2hlY2tlZE9iamVjdD4gcHRyIHsgcmVmIH07CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLnB0
cigpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLT5zb21lRnVu
Y3Rpb24oKSwgLTcpOwogICAgICAgICAgICAgRVhQRUNUX0VRKHB0ci5nZXQoKSwgJmNoZWNrZWRP
YmplY3QpOwogICAgICAgICAgICAgRVhQRUNUX0VRKHB0ci0+c29tZUZ1bmN0aW9uKCksIC03KTsK
LSAgICAgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDIpOworICAg
ICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMnUpOwogICAgICAg
ICB9Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAg
ICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBDaGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVYUEVD
VF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hl
Y2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIENoZWNr
ZWRSZWYgcmVmIHsgY2hlY2tlZE9iamVjdCB9OwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi5w
dHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi0+c29tZUZ1
bmN0aW9uKCksIC03KTsKLSAgICAgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNv
dW50KCksIDEpOworICAgICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQo
KSwgMXUpOwogICAgICAgICAgICAgQ2hlY2tlZFB0ciBwdHIgeyBXVEZNb3ZlKHJlZikgfTsKICAg
ICAgICAgICAgIEVYUEVDVF9FUShyZWYucHRyKCksIG51bGxwdHIpOwogICAgICAgICAgICAgRVhQ
RUNUX0VRKHB0ci5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICAgICAgRVhQRUNUX0VR
KHB0ci0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAgICAgICAgIEVYUEVDVF9FUShjaGVja2Vk
T2JqZWN0LnB0ckNvdW50KCksIDEpOworICAgICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmpl
Y3QucHRyQ291bnQoKSwgMXUpOwogICAgICAgICB9Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2Vk
T2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5w
dHJDb3VudCgpLCAwdSk7CiAgICAgfQogCiAgICAgewogICAgICAgICBEZXJpdmVkQ2hlY2tlZE9i
amVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJD
b3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
MHUpOwogICAgICAgICB7CiAgICAgICAgICAgICBDaGVja2VkUmVmPERlcml2ZWRDaGVja2VkT2Jq
ZWN0PiByZWYgeyBjaGVja2VkT2JqZWN0IH07CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLnB0
cigpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLT5zb21lRnVu
Y3Rpb24oKSwgLTcpOwotICAgICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291
bnQoKSwgMSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgp
LCAxdSk7CiAgICAgICAgICAgICBDaGVja2VkUHRyPENoZWNrZWRPYmplY3Q+IHB0ciB7IFdURk1v
dmUocmVmKSB9OwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi5wdHIoKSwgbnVsbHB0cik7CiAg
ICAgICAgICAgICBFWFBFQ1RfRVEocHRyLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAg
ICAgICBFWFBFQ1RfRVEocHRyLT5zb21lRnVuY3Rpb24oKSwgLTcpOwotICAgICAgICAgICAgRVhQ
RUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxdSk7CiAgICAgICAgIH0KLSAgICAgICAgRVhQ
RUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMCk7CisgICAgICAgIEVYUEVDVF9FUShj
aGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKICAgICB9CiB9CiAKQEAgLTE5MSw2NyArMTkx
LDY3IEBAIFRFU1QoV1RGX0NoZWNrZWRQdHIsIERlcml2ZWRDbGFzcykKIHsKICAgICB7CiAgICAg
ICAgIERlcml2ZWRDaGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVYUEVDVF9F
UShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tl
ZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgfQogCiAgICAgewogICAgICAgICBEZXJpdmVk
Q2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9i
amVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRy
Q291bnQoKSwgMHUpOwogICAgICAgICB7CiAgICAgICAgICAgICBDaGVja2VkUHRyIHB0ciA9IHsg
JmNoZWNrZWRPYmplY3QgfTsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKCEhcHRyKTsKICAgICAg
ICAgICAgIEVYUEVDVF9FUShwdHIuZ2V0KCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgICAg
IEVYUEVDVF9FUShwdHItPnNvbWVGdW5jdGlvbigpLCAtNyk7Ci0gICAgICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShj
aGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgfQotICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgQ2hlY2tl
ZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5w
dHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQo
KSwgMHUpOwogCiAgICAgICAgIENoZWNrZWRQdHI8Q2hlY2tlZE9iamVjdD4gcHRyIHsgJmNoZWNr
ZWRPYmplY3QgfTsKICAgICAgICAgRVhQRUNUX1RSVUUoISFwdHIpOwogICAgICAgICBFWFBFQ1Rf
RVEocHRyLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAgIEVYUEVDVF9FUShwdHItPnNv
bWVGdW5jdGlvbigpLCAtNyk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNv
dW50KCksIDEpOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAx
dSk7CiAgICAgICAgIHB0ciA9IG51bGxwdHI7CiAKICAgICAgICAgRVhQRUNUX0ZBTFNFKCEhcHRy
KTsKICAgICAgICAgRVhQRUNUX0VRKHB0ci5nZXQoKSwgbnVsbHB0cik7Ci0gICAgICAgIEVYUEVD
VF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hl
Y2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAgICAgfQogCiAgICAgewogICAgICAgICBEZXJp
dmVkQ2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tl
ZE9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3Qu
cHRyQ291bnQoKSwgMHUpOwogCiAgICAgICAgIENoZWNrZWRQdHI8RGVyaXZlZENoZWNrZWRPYmpl
Y3Q+IHB0cjEgeyAmY2hlY2tlZE9iamVjdCB9OwogICAgICAgICBFWFBFQ1RfVFJVRSghIXB0cjEp
OwogICAgICAgICBFWFBFQ1RfRVEocHRyMS5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAg
ICBFWFBFQ1RfRVEocHRyMS0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAgICAgRVhQRUNUX0VR
KGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgIEVYUEVDVF9FUShjaGVja2Vk
T2JqZWN0LnB0ckNvdW50KCksIDF1KTsKIAogICAgICAgICBjb25zdCBDaGVja2VkUHRyPENoZWNr
ZWRPYmplY3Q+IHB0cjIgPSBwdHIxOwogICAgICAgICBFWFBFQ1RfVFJVRSghIXB0cjIpOwogICAg
ICAgICBFWFBFQ1RfRVEocHRyMi5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICBFWFBF
Q1RfRVEocHRyMi0+c29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMik7CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0
LnB0ckNvdW50KCksIDJ1KTsKIAogICAgICAgICBDaGVja2VkUHRyPENoZWNrZWRPYmplY3Q+IHB0
cjMgPSBwdHIxOwogICAgICAgICBFWFBFQ1RfVFJVRSghIXB0cjMpOwogICAgICAgICBFWFBFQ1Rf
RVEocHRyMy5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tl
ZE9iamVjdC5wdHJDb3VudCgpLCAzKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3Qu
cHRyQ291bnQoKSwgM3UpOwogCiAgICAgICAgIHB0cjEgPSBudWxscHRyOwotICAgICAgICBFWFBF
Q1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAyKTsKKyAgICAgICAgRVhQRUNUX0VRKGNo
ZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMnUpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMS5nZXQo
KSwgbnVsbHB0cik7CiAgICAgICAgIEVYUEVDVF9FUShwdHIyLmdldCgpLCAmY2hlY2tlZE9iamVj
dCk7CiAgICAgICAgIEVYUEVDVF9FUShwdHIzLmdldCgpLCAmY2hlY2tlZE9iamVjdCk7CiAKICAg
ICAgICAgQ2hlY2tlZFB0cjxDaGVja2VkT2JqZWN0PiBwdHI0ID0gV1RGTW92ZShwdHIzKTsKLSAg
ICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7CisgICAgICAgIEVY
UEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDJ1KTsKICAgICAgICAgRVhQRUNUX0VR
KHB0cjEuZ2V0KCksIG51bGxwdHIpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMi5nZXQoKSwgJmNo
ZWNrZWRPYmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEocHRyMy5nZXQoKSwgbnVsbHB0cik7CkBA
IC0yNjMsNTMgKzI2Myw1MyBAQCBURVNUKFdURl9DaGVja2VkUHRyLCBIYXNoU2V0KQogewogICAg
IHsKICAgICAgICAgQ2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOwogCiAgICAgICAgIENoZWNrZWRQdHIgcHRyID0geyAm
Y2hlY2tlZE9iamVjdCB9OwogICAgICAgICBFWFBFQ1RfRVEocHRyLmdldCgpLCAmY2hlY2tlZE9i
amVjdCk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDEpOwor
ICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxdSk7CiAKICAgICAg
ICAgSGFzaFNldDxDaGVja2VkUHRyPENoZWNrZWRPYmplY3Q+PiBzZXQ7CiAgICAgICAgIHNldC5h
ZGQocHRyKTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7
CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDJ1KTsKIAogICAg
ICAgICBwdHIgPSBudWxscHRyOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJD
b3VudCgpLCAxKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
MXUpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgQ2hlY2tlZE9iamVjdCBvYmplY3QxOwogICAg
ICAgICBEZXJpdmVkQ2hlY2tlZE9iamVjdCBvYmplY3QyOwotICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0MS5wdHJDb3VudCgpLCAwKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDIucHRyQ291bnQo
KSwgMCk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QxLnB0ckNvdW50KCksIDB1KTsKKyAgICAg
ICAgRVhQRUNUX0VRKG9iamVjdDIucHRyQ291bnQoKSwgMHUpOwogCiAgICAgICAgIEhhc2hTZXQ8
Q2hlY2tlZFB0cjxDaGVja2VkT2JqZWN0Pj4gc2V0OwogICAgICAgICBzZXQuYWRkKCZvYmplY3Qx
KTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEucHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVY
UEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0
MS5wdHJDb3VudCgpLCAxdSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCks
IDB1KTsKIAogICAgICAgICBzZXQuYWRkKCZvYmplY3QxKTsKLSAgICAgICAgRVhQRUNUX0VRKG9i
amVjdDEucHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50
KCksIDApOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAxdSk7CisgICAg
ICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDB1KTsKIAogICAgICAgICBDaGVja2Vk
UHRyPERlcml2ZWRDaGVja2VkT2JqZWN0PiBwdHIgeyAmb2JqZWN0MiB9OwogICAgICAgICBzZXQu
YWRkKHB0cik7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QxLnB0ckNvdW50KCksIDEpOwotICAg
ICAgICBFWFBFQ1RfRVEob2JqZWN0Mi5wdHJDb3VudCgpLCAyKTsKKyAgICAgICAgRVhQRUNUX0VR
KG9iamVjdDEucHRyQ291bnQoKSwgMXUpOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0Mi5wdHJD
b3VudCgpLCAydSk7CiAgICAgICAgIHB0ciA9IG51bGxwdHI7CiAKLSAgICAgICAgRVhQRUNUX0VR
KG9iamVjdDEucHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNv
dW50KCksIDEpOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAxdSk7Cisg
ICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDF1KTsKIAogICAgICAgICBzZXQu
cmVtb3ZlKCZvYmplY3QxKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEucHRyQ291bnQoKSwg
MCk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDEpOworICAgICAgICBF
WFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShvYmpl
Y3QyLnB0ckNvdW50KCksIDF1KTsKICAgICB9CiAKICAgICB7CiAgICAgICAgIFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8Q2hlY2tlZE9iamVjdD4+IG9iamVjdHM7CiAgICAgICAgIG9iamVjdHMuYXBw
ZW5kKG1ha2VVbmlxdWVXaXRob3V0RmFzdE1hbGxvY0NoZWNrPENoZWNrZWRPYmplY3Q+KCkpOwot
ICAgICAgICBFWFBFQ1RfRVEob2JqZWN0c1swXS0+cHRyQ291bnQoKSwgMCk7CisgICAgICAgIEVY
UEVDVF9FUShvYmplY3RzWzBdLT5wdHJDb3VudCgpLCAwdSk7CiAKICAgICAgICAgSGFzaFNldDxD
aGVja2VkUHRyPENoZWNrZWRPYmplY3Q+PiBzZXQ7CiAgICAgICAgIHNldC5hZGQob2JqZWN0c1sw
XS5nZXQoKSk7CkBAIC0zMjQsMTUgKzMyNCwyNCBAQCBURVNUKFdURl9DaGVja2VkUHRyLCBIYXNo
U2V0KQogICAgICAgICB9CiAKICAgICAgICAgZm9yIChhdXRvJiBvYmplY3QgOiBvYmplY3RzKQot
ICAgICAgICAgICAgRVhQRUNUX0VRKG9iamVjdC0+cHRyQ291bnQoKSwgMSk7CisgICAgICAgICAg
ICBFWFBFQ1RfRVEob2JqZWN0LT5wdHJDb3VudCgpLCAxdSk7CiAKICAgICAgICAgYXV0byBzZXRW
ZWN0b3IgPSBXVEY6OmNvcHlUb1ZlY3RvcihzZXQpOwogCiAgICAgICAgIGZvciAoYXV0byYgb2Jq
ZWN0IDogb2JqZWN0cykKLSAgICAgICAgICAgIEVYUEVDVF9FUShvYmplY3QtPnB0ckNvdW50KCks
IDIpOworICAgICAgICAgICAgRVhQRUNUX0VRKG9iamVjdC0+cHRyQ291bnQoKSwgMnUpOwogICAg
IH0KIH0KIAorVEVTVChXVEZfQ2hlY2tlZFB0ciwgUmVmZXJlbmNlQ291bnRMaW1pdCkKK3sKKyAg
ICBDaGVja2VkT2JqZWN0IG9iamVjdDsKKyAgICBjb25zdGV4cHIgdW5zaWduZWQgY291bnQgPSAy
NTYgKiAxMDI0OworICAgIFZlY3RvcjxDaGVja2VkUHRyPENoZWNrZWRPYmplY3Q+PiBwdHJzOwor
ICAgIHB0cnMuZmlsbCgmb2JqZWN0LCBjb3VudCk7CisgICAgRVhQRUNUX0VRKG9iamVjdC5wdHJD
b3VudCgpLCBjb3VudCk7Cit9CisKIGNsYXNzIFRocmVhZFNhZmVDaGVja2VkUHRyT2JqZWN0IDog
cHVibGljIENhbk1ha2VUaHJlYWRTYWZlQ2hlY2tlZFB0ciB7CiBwdWJsaWM6CiAgICAgc3RkOjph
dG9taWM8dW5zaWduZWQ+IHZhbHVlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvQ2hlY2tlZFJlZi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dURi9DaGVja2VkUmVmLmNwcAppbmRleCA3ZWQ2N2VlY2EwMmVjYWQxMTAwMDExNWE4NWU3Mzg3
YjI0MzNkNjQzLi40OGI0ZTIyOGNkNDVkMmJlNjczZDE3YzRmMTZkMGRiYTVhMWNmNjJiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkUmVmLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkUmVmLmNwcApAQCAtNjAsNzEg
KzYwLDcxIEBAIFRFU1QoV1RGX0NoZWNrZWRSZWYsIEJhc2ljKQogewogICAgIHsKICAgICAgICAg
Q2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9i
amVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRy
Q291bnQoKSwgMHUpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgQ2hlY2tlZE9iamVjdCBjaGVj
a2VkT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAw
KTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOwogICAg
ICAgICB7CiAgICAgICAgICAgICBDaGVja2VkUmVmIHJlZiA9IGNoZWNrZWRPYmplY3Q7CiAgICAg
ICAgICAgICBFWFBFQ1RfRVEoJnJlZi5nZXQoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICAg
ICAgRVhQRUNUX0VRKHJlZi5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICAgICAgRVhQ
RUNUX0VRKHJlZi0+c29tZUZ1bmN0aW9uKCksIC03KTsKICAgICAgICAgICAgIEVYUEVDVF9FUShz
dGF0aWNfY2FzdDxDaGVja2VkT2JqZWN0Jj4ocmVmKS5zb21lRnVuY3Rpb24oKSwgLTcpOwotICAg
ICAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAg
ICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAxdSk7CiAgICAgICAgIH0K
LSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMCk7CisgICAgICAg
IEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKICAgICB9CiAKICAgICB7
CiAgICAgICAgIENoZWNrZWRPYmplY3QgY2hlY2tlZE9iamVjdDsKICAgICAgICAgQ2hlY2tlZE9i
amVjdCBhbm90aGVyT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJD
b3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
MHUpOwogCiAgICAgICAgIENoZWNrZWRSZWYgcmVmID0gY2hlY2tlZE9iamVjdDsKICAgICAgICAg
RVhQRUNUX0VRKHJlZi5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEo
cmVmLT5zb21lRnVuY3Rpb24oKSwgLTcpOwogICAgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8
Q2hlY2tlZE9iamVjdCY+KHJlZikuc29tZUZ1bmN0aW9uKCksIC03KTsKLSAgICAgICAgRVhQRUNU
X0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgIEVYUEVDVF9FUShjaGVj
a2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKIAogICAgICAgICByZWYgPSBhbm90aGVyT2JqZWN0
OwogICAgICAgICBFWFBFQ1RfRVEocmVmLnB0cigpLCAmYW5vdGhlck9iamVjdCk7Ci0gICAgICAg
IEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOwotICAgICAgICBFWFBFQ1Rf
RVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNr
ZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVj
dC5wdHJDb3VudCgpLCAxdSk7CiAgICAgfQogCiAgICAgewogICAgICAgICBDaGVja2VkT2JqZWN0
IGNoZWNrZWRPYmplY3Q7CiAgICAgICAgIENoZWNrZWRPYmplY3QgYW5vdGhlck9iamVjdDsKLSAg
ICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMCk7CisgICAgICAgIEVY
UEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKIAogICAgICAgICBDaGVja2Vk
UmVmIHJlZjEgPSBjaGVja2VkT2JqZWN0OwogICAgICAgICBFWFBFQ1RfRVEocmVmMS5wdHIoKSwg
JmNoZWNrZWRPYmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEocmVmMS0+c29tZUZ1bmN0aW9uKCks
IC03KTsKICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PENoZWNrZWRPYmplY3QmPihyZWYx
KS5zb21lRnVuY3Rpb24oKSwgLTcpOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5w
dHJDb3VudCgpLCAxKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQo
KSwgMXUpOwogCiAgICAgICAgIGNvbnN0IENoZWNrZWRSZWYgcmVmMiA9IGNoZWNrZWRPYmplY3Q7
CiAgICAgICAgIEVYUEVDVF9FUShyZWYyLnB0cigpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAg
IEVYUEVDVF9FUShyZWYyLmdldCgpLnNvbWVGdW5jdGlvbigpLCAtNyk7CiAgICAgICAgIEVYUEVD
VF9FUShzdGF0aWNfY2FzdDxjb25zdCBDaGVja2VkT2JqZWN0Jj4ocmVmMikuc29tZUZ1bmN0aW9u
KCksIC03KTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7
CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDJ1KTsKIAogICAg
ICAgICBDaGVja2VkUmVmIHJlZjMgPSByZWYyOwogICAgICAgICBFWFBFQ1RfRVEocmVmMy5wdHIo
KSwgJmNoZWNrZWRPYmplY3QpOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJD
b3VudCgpLCAzKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
M3UpOwogCiAgICAgICAgIHJlZjEgPSBhbm90aGVyT2JqZWN0OwotICAgICAgICBFWFBFQ1RfRVEo
Y2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAyKTsKLSAgICAgICAgRVhQRUNUX0VRKGFub3RoZXJP
YmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0
ckNvdW50KCksIDJ1KTsKKyAgICAgICAgRVhQRUNUX0VRKGFub3RoZXJPYmplY3QucHRyQ291bnQo
KSwgMXUpOwogICAgICAgICBFWFBFQ1RfRVEocmVmMS5wdHIoKSwgJmFub3RoZXJPYmplY3QpOwog
ICAgICAgICBFWFBFQ1RfRVEocmVmMi5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICBF
WFBFQ1RfRVEocmVmMy5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogCiAgICAgICAgIHJlZjEgPSBX
VEZNb3ZlKHJlZjMpOwotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgp
LCAyKTsKLSAgICAgICAgRVhQRUNUX0VRKGFub3RoZXJPYmplY3QucHRyQ291bnQoKSwgMCk7Cisg
ICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDJ1KTsKKyAgICAgICAg
RVhQRUNUX0VRKGFub3RoZXJPYmplY3QucHRyQ291bnQoKSwgMHUpOwogICAgICAgICBFWFBFQ1Rf
RVEocmVmMS5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEocmVmMi5w
dHIoKSwgJmNoZWNrZWRPYmplY3QpOwogICAgIH0KQEAgLTEzNCw2NiArMTM0LDY2IEBAIFRFU1Qo
V1RGX0NoZWNrZWRSZWYsIERlcml2ZWRDbGFzcykKIHsKICAgICB7CiAgICAgICAgIERlcml2ZWRD
aGVja2VkT2JqZWN0IGNoZWNrZWRPYmplY3Q7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2Jq
ZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJD
b3VudCgpLCAwdSk7CiAgICAgICAgIHsKICAgICAgICAgICAgIENoZWNrZWRSZWYgcmVmID0gY2hl
Y2tlZE9iamVjdDsKICAgICAgICAgICAgIEVYUEVDVF9FUSgmcmVmLmdldCgpLCAmY2hlY2tlZE9i
amVjdCk7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLnB0cigpLCAmY2hlY2tlZE9iamVjdCk7
CiAgICAgICAgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8RGVyaXZlZENoZWNrZWRPYmplY3Qm
PihyZWYpLnNvbWVGdW5jdGlvbigpLCAtMTEpOwogICAgICAgICAgICAgRVhQRUNUX0VRKHJlZi0+
c29tZUZ1bmN0aW9uKCksIC0xMSk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVj
dC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0
ckNvdW50KCksIDF1KTsKICAgICAgICAgfQotICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVj
dC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291
bnQoKSwgMHUpOwogICAgIH0KIAogICAgIHsKICAgICAgICAgRGVyaXZlZENoZWNrZWRPYmplY3Qg
Y2hlY2tlZE9iamVjdDsKICAgICAgICAgRGVyaXZlZENoZWNrZWRPYmplY3QgYW5vdGhlck9iamVj
dDsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMCk7Ci0gICAg
ICAgIEVYUEVDVF9FUShhbm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBF
Q1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShh
bm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKIAogICAgICAgICBDaGVja2VkUmVmPENoZWNr
ZWRPYmplY3Q+IHJlZiA9IGNoZWNrZWRPYmplY3Q7CiAgICAgICAgIEVYUEVDVF9FUShyZWYucHRy
KCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgRVhQRUNUX0VRKHJlZi0+c29tZUZ1bmN0aW9u
KCksIC0xMSk7CiAgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxDaGVja2VkT2JqZWN0Jj4o
cmVmKS5zb21lRnVuY3Rpb24oKSwgLTExKTsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmpl
Y3QucHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShhbm90aGVyT2JqZWN0LnB0ckNv
dW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAx
dSk7CisgICAgICAgIEVYUEVDVF9FUShhbm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKIAog
ICAgICAgICByZWYgPSBhbm90aGVyT2JqZWN0OwogICAgICAgICBFWFBFQ1RfRVEocmVmLnB0cigp
LCAmYW5vdGhlck9iamVjdCk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNv
dW50KCksIDApOwotICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAx
KTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOworICAg
ICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAxdSk7CiAgICAgfQogCiAg
ICAgewogICAgICAgICBEZXJpdmVkQ2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0IHsgMTAgfTsK
ICAgICAgICAgRGVyaXZlZENoZWNrZWRPYmplY3QgYW5vdGhlck9iamVjdCB7IDIwIH07Ci0gICAg
ICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDApOwotICAgICAgICBFWFBF
Q1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNo
ZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9i
amVjdC5wdHJDb3VudCgpLCAwdSk7CiAKICAgICAgICAgQ2hlY2tlZFJlZjxEZXJpdmVkQ2hlY2tl
ZE9iamVjdD4gcmVmMSA9IGNoZWNrZWRPYmplY3Q7CiAgICAgICAgIEVYUEVDVF9FUShyZWYxLnB0
cigpLCAmY2hlY2tlZE9iamVjdCk7CiAgICAgICAgIEVYUEVDVF9FUShyZWYxLT5zb21lRnVuY3Rp
b24oKSwgMTApOwogICAgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8Q2hlY2tlZE9iamVjdCY+
KHJlZjEpLnNvbWVGdW5jdGlvbigpLCAxMCk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2Jq
ZWN0LnB0ckNvdW50KCksIDEpOwotICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJD
b3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
MXUpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAK
ICAgICAgICAgY29uc3QgQ2hlY2tlZFJlZjxDaGVja2VkT2JqZWN0PiByZWYyID0gcmVmMTsKICAg
ICAgICAgRVhQRUNUX0VRKHJlZjIucHRyKCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgRVhQ
RUNUX0VRKHJlZjItPnNvbWVGdW5jdGlvbigpLCAxMCk7CiAgICAgICAgIEVYUEVDVF9FUShzdGF0
aWNfY2FzdDxjb25zdCBDaGVja2VkT2JqZWN0Jj4ocmVmMikuc29tZUZ1bmN0aW9uKCksIDEwKTsK
LSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7Ci0gICAgICAg
IEVYUEVDVF9FUShhbm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1Rf
RVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAydSk7CisgICAgICAgIEVYUEVDVF9FUShhbm90
aGVyT2JqZWN0LnB0ckNvdW50KCksIDB1KTsKIAogICAgICAgICBDaGVja2VkUmVmPENoZWNrZWRP
YmplY3Q+IHJlZjMgPSByZWYxOwogICAgICAgICBFWFBFQ1RfRVEocmVmMy5wdHIoKSwgJmNoZWNr
ZWRPYmplY3QpOwogICAgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8Q2hlY2tlZE9iamVjdCY+
KHJlZjMpLnNvbWVGdW5jdGlvbigpLCAxMCk7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2Jq
ZWN0LnB0ckNvdW50KCksIDMpOwotICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJD
b3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwg
M3UpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAwdSk7CiAK
ICAgICAgICAgcmVmMSA9IGFub3RoZXJPYmplY3Q7Ci0gICAgICAgIEVYUEVDVF9FUShjaGVja2Vk
T2JqZWN0LnB0ckNvdW50KCksIDIpOwotICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5w
dHJDb3VudCgpLCAxKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQo
KSwgMnUpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAxdSk7
CiAgICAgICAgIEVYUEVDVF9FUShyZWYxLnB0cigpLCAmYW5vdGhlck9iamVjdCk7CiAgICAgICAg
IEVYUEVDVF9FUShyZWYxLT5zb21lRnVuY3Rpb24oKSwgMjApOwogICAgICAgICBFWFBFQ1RfRVEo
c3RhdGljX2Nhc3Q8Q2hlY2tlZE9iamVjdCY+KHJlZjEpLnNvbWVGdW5jdGlvbigpLCAyMCk7CkBA
IC0yMDEsOCArMjAxLDggQEAgVEVTVChXVEZfQ2hlY2tlZFJlZiwgRGVyaXZlZENsYXNzKQogICAg
ICAgICBFWFBFQ1RfRVEocmVmMy5wdHIoKSwgJmNoZWNrZWRPYmplY3QpOwogCiAgICAgICAgIENo
ZWNrZWRSZWY8Q2hlY2tlZE9iamVjdD4gcmVmNCA9IFdURk1vdmUocmVmMSk7Ci0gICAgICAgIEVY
UEVDVF9FUShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDIpOwotICAgICAgICBFWFBFQ1RfRVEo
YW5vdGhlck9iamVjdC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRP
YmplY3QucHRyQ291bnQoKSwgMnUpOworICAgICAgICBFWFBFQ1RfRVEoYW5vdGhlck9iamVjdC5w
dHJDb3VudCgpLCAxdSk7CiAgICAgICAgIEVYUEVDVF9FUShyZWYyLnB0cigpLCAmY2hlY2tlZE9i
amVjdCk7CiAgICAgICAgIEVYUEVDVF9FUShyZWYzLnB0cigpLCAmY2hlY2tlZE9iamVjdCk7CiAg
ICAgICAgIEVYUEVDVF9FUShyZWY0LnB0cigpLCAmYW5vdGhlck9iamVjdCk7CkBAIC0yMTAsOCAr
MjEwLDggQEAgVEVTVChXVEZfQ2hlY2tlZFJlZiwgRGVyaXZlZENsYXNzKQogICAgICAgICBFWFBF
Q1RfRVEocmVmNC0+c29tZUZ1bmN0aW9uKCksIDIwKTsKIAogICAgICAgICByZWYxID0gY2hlY2tl
ZE9iamVjdDsKLSAgICAgICAgRVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMyk7
Ci0gICAgICAgIEVYUEVDVF9FUShhbm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDEpOworICAgICAg
ICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAzdSk7CisgICAgICAgIEVYUEVD
VF9FUShhbm90aGVyT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgRVhQRUNUX0VRKHJl
ZjEucHRyKCksICZjaGVja2VkT2JqZWN0KTsKICAgICAgICAgRVhQRUNUX0VRKHJlZjEtPnNvbWVG
dW5jdGlvbigpLCAxMCk7CiAgICAgICAgIEVYUEVDVF9FUShyZWYyLnB0cigpLCAmY2hlY2tlZE9i
amVjdCk7CkBAIC0yMjMsNTYgKzIyMyw1NiBAQCBURVNUKFdURl9DaGVja2VkUmVmLCBIYXNoU2V0
KQogewogICAgIHsKICAgICAgICAgQ2hlY2tlZE9iamVjdCBjaGVja2VkT2JqZWN0OwotICAgICAg
ICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAwKTsKKyAgICAgICAgRVhQRUNU
X0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMHUpOwogCiAgICAgICAgIEhhc2hTZXQ8Q2hl
Y2tlZFJlZjxDaGVja2VkT2JqZWN0Pj4gc2V0OwogICAgICAgICB7CiAgICAgICAgICAgICBDaGVj
a2VkUmVmIHJlZiA9IGNoZWNrZWRPYmplY3Q7CiAgICAgICAgICAgICBFWFBFQ1RfRVEocmVmLnB0
cigpLCAmY2hlY2tlZE9iamVjdCk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoY2hlY2tlZE9iamVj
dC5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShjaGVja2VkT2JqZWN0LnB0
ckNvdW50KCksIDF1KTsKIAogICAgICAgICAgICAgc2V0LmFkZChyZWYpOwotICAgICAgICAgICAg
RVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMik7CisgICAgICAgICAgICBFWFBF
Q1RfRVEoY2hlY2tlZE9iamVjdC5wdHJDb3VudCgpLCAydSk7CiAgICAgICAgIH0KLSAgICAgICAg
RVhQRUNUX0VRKGNoZWNrZWRPYmplY3QucHRyQ291bnQoKSwgMSk7CisgICAgICAgIEVYUEVDVF9F
UShjaGVja2VkT2JqZWN0LnB0ckNvdW50KCksIDF1KTsKICAgICB9CiAKICAgICB7CiAgICAgICAg
IENoZWNrZWRPYmplY3Qgb2JqZWN0MTsKICAgICAgICAgRGVyaXZlZENoZWNrZWRPYmplY3Qgb2Jq
ZWN0MjsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEucHRyQ291bnQoKSwgMCk7Ci0gICAgICAg
IEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0MS5wdHJDb3VudCgpLCAwdSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50
KCksIDB1KTsKIAogICAgICAgICBIYXNoU2V0PENoZWNrZWRSZWY8Q2hlY2tlZE9iamVjdD4+IHNl
dDsKICAgICAgICAgc2V0LmFkZChvYmplY3QxKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEu
cHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDAp
OworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAxdSk7CisgICAgICAgIEVY
UEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDB1KTsKICAgICAgICAgRVhQRUNUX1RSVUUoc2V0
LmNvbnRhaW5zKG9iamVjdDEpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKHNldC5jb250YWlucyhv
YmplY3QyKSk7CiAKICAgICAgICAgc2V0LmFkZChvYmplY3QxKTsKLSAgICAgICAgRVhQRUNUX0VR
KG9iamVjdDEucHRyQ291bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNv
dW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAxdSk7Cisg
ICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDB1KTsKICAgICAgICAgRVhQRUNU
X1RSVUUoc2V0LmNvbnRhaW5zKG9iamVjdDEpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKHNldC5j
b250YWlucyhvYmplY3QyKSk7CiAKICAgICAgICAgewogICAgICAgICAgICAgQ2hlY2tlZFJlZjxE
ZXJpdmVkQ2hlY2tlZE9iamVjdD4gcmVmIHsgb2JqZWN0MiB9OwogICAgICAgICAgICAgc2V0LmFk
ZChyZWYpOwotICAgICAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEucHRyQ291bnQoKSwgMSk7Ci0g
ICAgICAgICAgICBFWFBFQ1RfRVEob2JqZWN0Mi5wdHJDb3VudCgpLCAyKTsKKyAgICAgICAgICAg
IEVYUEVDVF9FUShvYmplY3QxLnB0ckNvdW50KCksIDF1KTsKKyAgICAgICAgICAgIEVYUEVDVF9F
UShvYmplY3QyLnB0ckNvdW50KCksIDJ1KTsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHNldC5j
b250YWlucyhvYmplY3QxKSk7CiAgICAgICAgICAgICBFWFBFQ1RfVFJVRShzZXQuY29udGFpbnMo
b2JqZWN0MikpOwogICAgICAgICB9CiAKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDEucHRyQ291
bnQoKSwgMSk7Ci0gICAgICAgIEVYUEVDVF9FUShvYmplY3QyLnB0ckNvdW50KCksIDEpOworICAg
ICAgICBFWFBFQ1RfRVEob2JqZWN0MS5wdHJDb3VudCgpLCAxdSk7CisgICAgICAgIEVYUEVDVF9F
UShvYmplY3QyLnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRh
aW5zKG9iamVjdDEpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRhaW5zKG9iamVjdDIp
KTsKIAogICAgICAgICBzZXQucmVtb3ZlKG9iamVjdDEpOwotICAgICAgICBFWFBFQ1RfRVEob2Jq
ZWN0MS5wdHJDb3VudCgpLCAwKTsKLSAgICAgICAgRVhQRUNUX0VRKG9iamVjdDIucHRyQ291bnQo
KSwgMSk7CisgICAgICAgIEVYUEVDVF9FUShvYmplY3QxLnB0ckNvdW50KCksIDB1KTsKKyAgICAg
ICAgRVhQRUNUX0VRKG9iamVjdDIucHRyQ291bnQoKSwgMXUpOwogICAgICAgICBFWFBFQ1RfRkFM
U0Uoc2V0LmNvbnRhaW5zKG9iamVjdDEpKTsKICAgICAgICAgRVhQRUNUX1RSVUUoc2V0LmNvbnRh
aW5zKG9iamVjdDIpKTsKICAgICB9CkBAIC0yODAsNyArMjgwLDcgQEAgVEVTVChXVEZfQ2hlY2tl
ZFJlZiwgSGFzaFNldCkKICAgICB7CiAgICAgICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q2hl
Y2tlZE9iamVjdD4+IG9iamVjdHM7CiAgICAgICAgIG9iamVjdHMuYXBwZW5kKG1ha2VVbmlxdWVX
aXRob3V0RmFzdE1hbGxvY0NoZWNrPENoZWNrZWRPYmplY3Q+KDApKTsKLSAgICAgICAgRVhQRUNU
X0VRKG9iamVjdHNbMF0tPnB0ckNvdW50KCksIDApOworICAgICAgICBFWFBFQ1RfRVEob2JqZWN0
c1swXS0+cHRyQ291bnQoKSwgMHUpOwogCiAgICAgICAgIEhhc2hTZXQ8Q2hlY2tlZFJlZjxDaGVj
a2VkT2JqZWN0Pj4gc2V0OwogICAgICAgICBzZXQuYWRkKCpvYmplY3RzWzBdLmdldCgpKTsKQEAg
LTI5NSw3ICsyOTUsNyBAQCBURVNUKFdURl9DaGVja2VkUmVmLCBIYXNoU2V0KQogICAgICAgICB9
CiAKICAgICAgICAgZm9yIChhdXRvJiBvYmplY3QgOiBvYmplY3RzKSB7Ci0gICAgICAgICAgICBF
WFBFQ1RfRVEob2JqZWN0LT5wdHJDb3VudCgpLCAxKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShv
YmplY3QtPnB0ckNvdW50KCksIDF1KTsKICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHNldC5jb250
YWlucygqb2JqZWN0KSk7CiAgICAgICAgIH0KIApAQCAtMzA5LDcgKzMwOSw3IEBAIFRFU1QoV1RG
X0NoZWNrZWRSZWYsIEhhc2hTZXQpCiAgICAgICAgIGF1dG8gc2V0VmVjdG9yID0gV1RGOjpjb3B5
VG9WZWN0b3Ioc2V0KTsKIAogICAgICAgICBmb3IgKGF1dG8mIG9iamVjdCA6IG9iamVjdHMpCi0g
ICAgICAgICAgICBFWFBFQ1RfRVEob2JqZWN0LT5wdHJDb3VudCgpLCAyKTsKKyAgICAgICAgICAg
IEVYUEVDVF9FUShvYmplY3QtPnB0ckNvdW50KCksIDJ1KTsKICAgICB9CiB9CiAK
</data>
<flag name="commit-queue"
          id="476501"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>