<?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>63106</bug_id>
          
          <creation_ts>2011-06-21 16:50:41 -0700</creation_ts>
          <short_desc>Removed the conceit that global variables are local variables when running global code</short_desc>
          <delta_ts>2011-06-22 13:25:27 -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>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>424875</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-21 16:50:41 -0700</bug_when>
    <thetext>Removed the conceit that global variables are local variables when running global code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424887</commentid>
    <comment_count>1</comment_count>
      <attachid>98084</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-21 17:15:55 -0700</bug_when>
    <thetext>Created attachment 98084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424889</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 17:18:09 -0700</bug_when>
    <thetext>Attachment 98084 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/JavaScriptCore/interpreter/RegisterFile.h:40:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424897</commentid>
    <comment_count>3</comment_count>
      <attachid>98084</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-06-21 17:26:28 -0700</bug_when>
    <thetext>Comment on attachment 98084
Patch

Attachment 98084 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/8926076</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424901</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-21 17:30:11 -0700</bug_when>
    <thetext>Not sure what the Qt failure is about -- seems like the bot is in a bad state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424905</commentid>
    <comment_count>5</comment_count>
      <attachid>98084</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-21 17:35:03 -0700</bug_when>
    <thetext>Comment on attachment 98084
Patch

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

&gt; Source/JavaScriptCore/interpreter/RegisterFile.h:-36
&gt; -#include &lt;stdio.h&gt;

Looks like WebFrameProxy.cpp in WebKit2 was depending on this include to get the printf prototype.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424907</commentid>
    <comment_count>6</comment_count>
      <attachid>98084</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-06-21 17:35:47 -0700</bug_when>
    <thetext>Comment on attachment 98084
Patch

r=me, it would be good if you could add helper function to JSGlobalObject to add new global vars directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425527</commentid>
    <comment_count>7</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-06-22 13:25:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/89465</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98084</attachid>
            <date>2011-06-21 17:15:55 -0700</date>
            <delta_ts>2011-06-21 17:35:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63106-20110621171554.patch</filename>
            <type>text/plain</type>
            <size>39263</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODkzOTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsOTUgQEAK
KzIwMTEtMDYtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHRoZSBjb25j
ZWl0IHRoYXQgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgbG9jYWwgdmFyaWFibGVzIHdoZW4gcnVubmlu
ZyBnbG9iYWwgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjMxMDYKKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgcmVxdWlyZWQgZm9yIHdyaXRl
IGJhcnJpZXIgY29ycmVjdG5lc3MuCisgICAgICAgIAorICAgICAgICBBbmQgbm93LCBhIGZldyB3
b3JkcyBhYm91dCBwZXJmb3JtYW5jZToKKyAgICAgICAgCisgICAgICAgIFdlIG9yaWdpbmFsbHkg
ZGVzaWduZWQgdGhpcyBvcHRpbWl6YXRpb24gZm9yIHRoZSBpbnRlcnByZXRlci4gSXQncyBtdWNo
CisgICAgICAgIGxlc3MgcmVsZXZhbnQgaW4gdGhlIEpJVC4KKworICAgICAgICBTdW5TcGlkZXIg
cmVwb3J0cyBubyBvdmVyYWxsIGNoYW5nZSwgYnV0IHNob3dzIGEgcmVncmVzc2lvbiB1cCB0byAy
OCUgb24KKyAgICAgICAgYml0b3BzLWJpdHdpc2UtYW5kLmpzLiAoSXQncyBub3QgY2xlYXIgd2hh
dCB0aGUgcmVhbCByZWdyZXNzaW9uIGlzLCBzaW5jZQorICAgICAgICAxbXMgaXMgb3VyIGhpZ2hl
c3QgbGV2ZWwgb2YgZ3JhbnVsYXJpdHksIGFuZCB0aGUgcmVncmVzc2lvbiBpcyBtZWFzdXJlZAor
ICAgICAgICBhcyAxbXMuKSBiaXRvcHMtYml0d2lzZS1hbmQuanMgYmFzaWNhbGx5IG9ubHkgZG9l
cyBnbG9iYWwgdmFyaWFibGUgYWNjZXNzCisgICAgICAgIGluIGEgbG9vcCwgc28gaXQgc2hvd3Mg
dGhlIG1heGltdW0gcGFpbiB5b3UgbWlnaHQgc2VlIGZyb20gdGhpcyBjaGFuZ2UuCisgICAgICAg
IFNpbmNlIHRoZXJlJ3Mgbm8gb3ZlcmFsbCByZWdyZXNzaW9uLCBhbmQgd2UgbmVlZCB0aGlzIGNo
YW5nZSBmb3IgR0MsIEkKKyAgICAgICAgdGhpbmsgaXQncyBhIGdvLgorICAgICAgICAKKyAgICAg
ICAgSW4gZnV0dXJlLCB0aGUgREZHIEpJVCBzaG91bGQgYmUgYWJsZSB0byByZW1vdmUgbW9zdCBv
ZiB0aGUgcGFpbiwgdG9vLgorICAgICAgICAKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6YWRkR2xv
YmFsVmFyKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJh
dG9yKTogRG9uJ3QgZ2l2ZSBnbG9iYWwgdmFyaWFibGVzCisgICAgICAgIG5lZ2F0aXZlIGluZGlj
ZXMsIHNpbmNlIHRoZXkncmUgbm8gbG9uZ2VyIG5lZ2F0aXZlbHkgb2Zmc2V0IGZyb20gdGhlCisg
ICAgICAgIGN1cnJlbnQgc3RhY2sgZnJhbWUuCisgICAgICAgIAorICAgICAgICBEbyBnaXZlIGds
b2JhbCB2YXJpYWJsZXMgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIHBvc2l0aXZlIGluZGljZXMs
IHNpbmNlCisgICAgICAgIHRoYXQncyBtdWNoIGVhc2llciB0byB3b3JrIHdpdGguCisgICAgICAg
IAorICAgICAgICBEb24ndCBsaW1pdCB0aGUgbnVtYmVyIG9mIG9wdGltaXphYmxlIGdsb2JhbCB2
YXJpYWJsZXMsIHNpbmNlIGl0J3Mgbm8KKyAgICAgICAgbG9uZ2VyIGxpbWl0ZWQgYnkgdGhlIHJl
Z2lzdGVyIGZpbGUsIHNpbmNlIHRoZXkncmUgbm8gbG9uZ2VyIHN0b3JlZCBpbgorICAgICAgICB0
aGUgcmVnaXN0ZXIgZmlsZS4KKworICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6cmVn
aXN0ZXJGb3IpOiBHbG9iYWwgY29kZSBuZXZlciBoYXMgYW55IGxvY2FsCisgICAgICAgIHJlZ2lz
dGVycyBiZWNhdXNlIGEgdmFyIGluIGdsb2JhbCBjb2RlIGlzIGFjdHVhbGx5IGEgcHJvcGVydHkg
b2YgdGhlCisgICAgICAgIGdsb2JhbCBvYmplY3QuCisKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVH
ZW5lcmF0b3I6OmNvbnN0UmVnaXN0ZXJGb3IpOiBEaXR0by4KKworICAgICAgICAoSlNDOjpCeXRl
Y29kZUdlbmVyYXRvcjo6ZW1pdFJlc29sdmUpOiBEaWQgYSB0aW55IGJpdCBvZiBjb25zdGFudAor
ICAgICAgICBwcm9wYWdhdGlvbiBhbmQgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHRvIHNwZWVkIHVw
IG91ciBjb21waWxlcyBhbmQKKyAgICAgICAgcmVkdWNlIFdURnMgLyBtaW51dGUuCisKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OnJlZ2lzdGVyRm9yKTogUmVtb3ZlZCBzcGVjaWFsIGhhbmRsaW5nIG9m
IGdsb2JhbHMuCisKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OnNob3VsZE9wdGlt
aXplTG9jYWxzKTogRG9uJ3Qgb3B0aW1pemUgbG9jYWxzIGluCisgICAgICAgIGdsb2JhbCBjb2Rl
LCBzaW5jZSB0aGVyZSBhcmUgbm9uZS4KKworICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6Y2FuT3B0aW1pemVOb25Mb2NhbHMpOiBEbyBvcHRpbWl6ZSBub24tbG9jYWxzCisgICAgICAg
IGluIGdsb2JhbCBjb2RlIChpLmUuLCBnbG9iYWwgdmFycyksIHNpbmNlIHRoZXJlIGFyZSBzb21l
LgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoSlND
OjpJbnRlcnByZXRlcjo6Y2FsbEV2YWwpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6SW50
ZXJwcmV0ZXIpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZHVtcFJlZ2lzdGVycyk6Cisg
ICAgICAgIChKU0M6OkludGVycHJldGVyOjpleGVjdXRlKToKKyAgICAgICAgKiBpbnRlcnByZXRl
ci9JbnRlcnByZXRlci5oOiBVcGRhdGVkIGZvciBkZWxldGVkIC8gcmVuYW1lZCBjb2RlLgorCisg
ICAgICAgICogaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmNwcDoKKyAgICAgICAgKEpTQzo6UmVn
aXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyk6CisgICAgICAgIChKU0M6OlJlZ2lz
dGVyRmlsZTo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KTogVXBkYXRlZCBmb3IgZGVsZXRlZCAvIHJl
bmFtZWQKKyAgICAgICAgZGF0YSBtZW1iZXJzLgorCisgICAgICAgICogaW50ZXJwcmV0ZXIvUmVn
aXN0ZXJGaWxlLmg6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6YmVnaW4pOgorICAgICAg
ICAoSlNDOjpSZWdpc3RlckZpbGU6OnNpemUpOgorICAgICAgICAoSlNDOjpSZWdpc3RlckZpbGU6
OlJlZ2lzdGVyRmlsZSk6CisgICAgICAgIChKU0M6OlJlZ2lzdGVyRmlsZTo6c2hyaW5rKTogUmVt
b3ZlZCBhbGwgY29kZSBhbmQgY29tbWVudHMgZGVhbGluZyB3aXRoCisgICAgICAgIGdsb2JhbCB2
YXJpYWJsZXMgc3RvcmVkIGluIHRoZSByZWdpc3RlciBmaWxlLgorCisgICAgICAgIChKU0M6OlJl
Z2lzdGVyRmlsZTo6Z3Jvdyk6IFVwZGF0ZWQgZm9yIHNhbWUuCisgICAgICAgIAorICAgICAgICBB
bHNvLCBhIHNsaWdodCBjb3JyZWN0bmVzcyBmaXg6IFRlc3QgdGhlIFZNIGNvbW1pdCBlbmQsIGFu
ZCBub3QganVzdCB0aGUKKyAgICAgICAgaW4tdXNlIGVuZCwgd2hlbiBjaGVja2luZyBmb3Igc3Rh
Y2sgb3ZlcmZsb3cuIEluIHRoZW9yeSwgaXQncyBpbnZhbGlkIHRvCisgICAgICAgIGNvbW1pdCBw
YXN0IHRoZSBlbmQgb2YgeW91ciBhbGxvY2F0aW9uLCBldmVuIGlmIHlvdSBuZXZlciB0b3VjaCB0
aGF0CisgICAgICAgIG1lbW9yeS4gVGhpcyBtYWtlcyB0aGUgdXNhYmxlIHNpemUgb2YgdGhlIHN0
YWNrIHNsaWdodGx5IHNtYWxsZXIuIE5vIHRlc3QKKyAgICAgICAgYmVjYXVzZSB3ZSBkb24ndCBr
bm93IG9mIGFueSBjYXNlIGluIHByYWN0aWNlIHdoZXJlIHRoaXMgY3Jhc2hlcy4KKworICAgICAg
ICAqIHJ1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcDoKKyAgICAgICAgKEpTQzo6SlNHbG9iYWxEYXRh
OjpKU0dsb2JhbERhdGEpOiBVcGRhdGVkIGZvciBjaGFuZ2VzIGFib3ZlLgorCisgICAgICAgICog
cnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0
OjpyZXNpemVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6YWRkU3Rh
dGljR2xvYmFscyk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdC5oOiBTaW1wbGlm
aWVkIGdsb2JhbHMgdG8gaGF2ZSBtb25vdG9uaWNhbGx5IAorICAgICAgICBpbmNyZWFzaW5nIGlu
ZGV4ZXMsIGFsd2F5cyBsb2NhdGVkIGluIG91ciBleHRlcm5hbCBzdG9yYWdlLgorCiAyMDExLTA2
LTIxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBp
bGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAkocmV2aXNpb24gODkzOTEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1LDIxICsxNzUsMTQgQEAgYm9vbCBCeXRlY29kZUdl
bmVyYXRvcjo6YWRkVmFyKGNvbnN0IElkZQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEJ5
dGVjb2RlR2VuZXJhdG9yOjphZGRHbG9iYWxWYXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGJv
b2wgaXNDb25zdGFudCwgUmVnaXN0ZXJJRComIHIwKQoraW50IEJ5dGVjb2RlR2VuZXJhdG9yOjph
ZGRHbG9iYWxWYXIoY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIGJvb2wgaXNDb25zdGFudCkKIHsK
LSAgICBpbnQgaW5kZXggPSBtX25leHRHbG9iYWxJbmRleDsKKyAgICBpbnQgaW5kZXggPSBzeW1i
b2xUYWJsZSgpLnNpemUoKTsKICAgICBTeW1ib2xUYWJsZUVudHJ5IG5ld0VudHJ5KGluZGV4LCBp
c0NvbnN0YW50ID8gUmVhZE9ubHkgOiAwKTsKICAgICBwYWlyPFN5bWJvbFRhYmxlOjppdGVyYXRv
ciwgYm9vbD4gcmVzdWx0ID0gc3ltYm9sVGFibGUoKS5hZGQoaWRlbnQuaW1wbCgpLCBuZXdFbnRy
eSk7Ci0KICAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCiAgICAgICAgIGluZGV4ID0gcmVzdWx0LmZp
cnN0LT5zZWNvbmQuZ2V0SW5kZXgoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgLS1tX25leHRHbG9i
YWxJbmRleDsKLSAgICAgICAgbV9nbG9iYWxzLmFwcGVuZChpbmRleCArIG1fZ2xvYmFsVmFyU3Rv
cmFnZU9mZnNldCk7Ci0gICAgfQotCi0gICAgcjAgPSAmcmVnaXN0ZXJGb3IoaW5kZXgpOwotICAg
IHJldHVybiByZXN1bHQuc2Vjb25kOworICAgIHJldHVybiBpbmRleDsKIH0KIAogdm9pZCBCeXRl
Y29kZUdlbmVyYXRvcjo6cHJlc2VydmVMYXN0VmFyKCkKQEAgLTIxMSw3ICsyMDQsNiBAQCBCeXRl
Y29kZUdlbmVyYXRvcjo6Qnl0ZWNvZGVHZW5lcmF0b3IoUHJvCiAgICAgLCBtX2R5bmFtaWNTY29w
ZURlcHRoKDApCiAgICAgLCBtX2Jhc2VTY29wZURlcHRoKDApCiAgICAgLCBtX2NvZGVUeXBlKEds
b2JhbENvZGUpCi0gICAgLCBtX25leHRHbG9iYWxJbmRleCgtMSkKICAgICAsIG1fbmV4dENvbnN0
YW50T2Zmc2V0KDApCiAgICAgLCBtX2dsb2JhbENvbnN0YW50SW5kZXgoMCkKICAgICAsIG1faGFz
Q3JlYXRlZEFjdGl2YXRpb24odHJ1ZSkKQEAgLTIzNSw4OSArMjI3LDM1IEBAIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjpCeXRlY29kZUdlbmVyYXRvcihQcm8KICAgICAvLyBGSVhNRTogTW92ZSBjb2RlIHRo
YXQgbW9kaWZpZXMgdGhlIGdsb2JhbCBvYmplY3QgdG8gSW50ZXJwcmV0ZXI6OmV4ZWN1dGUuCiAg
ICAgCiAgICAgbV9jb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyA9IDE7IC8vIEFsbG9jYXRlIHNw
YWNlIGZvciAidGhpcyIKKyAgICBjb2RlQmxvY2stPm1fbnVtQ2FwdHVyZWRWYXJzID0gY29kZUJs
b2NrLT5tX251bVZhcnM7CiAKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc2Nv
cGVDaGFpbi0+Z2xvYmFsT2JqZWN0LmdldCgpOwogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxlID0g
JmV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+cmVnaXN0ZXJGaWxlKCk7CiAgICAgCi0g
ICAgLy8gU2hpZnQgcmVnaXN0ZXIgaW5kZXhlcyBpbiBnZW5lcmF0ZWQgY29kZSB0byBlbGlkZSBy
ZWdpc3RlcnMgYWxsb2NhdGVkIGJ5IGludGVybWVkaWF0ZSBzdGFjayBmcmFtZXMuCi0gICAgbV9n
bG9iYWxWYXJTdG9yYWdlT2Zmc2V0ID0gLVJlZ2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6
ZSAtIG1fY29kZUJsb2NrLT5tX251bVBhcmFtZXRlcnMgLSByZWdpc3RlckZpbGUtPnNpemUoKTsK
LQotICAgIC8vIEFkZCBwcmV2aW91c2x5IGRlZmluZWQgc3ltYm9scyB0byBib29ra2VlcGluZy4K
LSAgICBtX2dsb2JhbHMuZ3JvdyhzeW1ib2xUYWJsZS0+c2l6ZSgpKTsKLSAgICBTeW1ib2xUYWJs
ZTo6aXRlcmF0b3IgZW5kID0gc3ltYm9sVGFibGUtPmVuZCgpOwotICAgIGZvciAoU3ltYm9sVGFi
bGU6Oml0ZXJhdG9yIGl0ID0gc3ltYm9sVGFibGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgcmVnaXN0ZXJGb3IoaXQtPnNlY29uZC5nZXRJbmRleCgpKS5zZXRJbmRleChpdC0+
c2Vjb25kLmdldEluZGV4KCkgKyBtX2dsb2JhbFZhclN0b3JhZ2VPZmZzZXQpOwotCiAgICAgQmF0
Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIgb3B0aW1pemVyKCptX2dsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCk7CiAKICAgICBjb25zdCBWYXJTdGFjayYgdmFyU3RhY2sgPSBwcm9ncmFtTm9kZS0+dmFy
U3RhY2soKTsKICAgICBjb25zdCBGdW5jdGlvblN0YWNrJiBmdW5jdGlvblN0YWNrID0gcHJvZ3Jh
bU5vZGUtPmZ1bmN0aW9uU3RhY2soKTsKLSAgICBib29sIGNhbk9wdGltaXplTmV3R2xvYmFscyA9
IHN5bWJvbFRhYmxlLT5zaXplKCkgKyBmdW5jdGlvblN0YWNrLnNpemUoKSArIHZhclN0YWNrLnNp
emUoKSA8IHJlZ2lzdGVyRmlsZS0+bWF4R2xvYmFscygpOwotICAgIGlmIChjYW5PcHRpbWl6ZU5l
d0dsb2JhbHMpIHsKLSAgICAgICAgLy8gU2hpZnQgbmV3IHN5bWJvbHMgc28gdGhleSBnZXQgc3Rv
cmVkIHByaW9yIHRvIGV4aXN0aW5nIHN5bWJvbHMuCi0gICAgICAgIG1fbmV4dEdsb2JhbEluZGV4
IC09IHN5bWJvbFRhYmxlLT5zaXplKCk7Ci0KLSAgICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKiwg
SWRlbnRpZmllclJlcEhhc2g+IG5ld0dsb2JhbHM7Ci0gICAgICAgIFZlY3RvcjxzdGQ6OnBhaXI8
aW50LCBib29sPiwgMTY+IGZ1bmN0aW9uSW5mbyhmdW5jdGlvblN0YWNrLnNpemUoKSk7Ci0gICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rpb25TdGFjay5zaXplKCk7ICsraSkgewot
ICAgICAgICAgICAgRnVuY3Rpb25Cb2R5Tm9kZSogZnVuY3Rpb24gPSBmdW5jdGlvblN0YWNrW2ld
OwotICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZW1vdmVEaXJlY3QoKm1fZ2xvYmFsRGF0YSwg
ZnVuY3Rpb24tPmlkZW50KCkpOyAvLyBNYWtlIHN1cmUgb3VyIG5ldyBmdW5jdGlvbiBpcyBub3Qg
c2hhZG93ZWQgYnkgYW4gb2xkIHByb3BlcnR5LgotICAgICAgICAgICAgU3ltYm9sVGFibGVFbnRy
eSBlbnRyeSA9IHN5bWJvbFRhYmxlLT5pbmxpbmVHZXQoZnVuY3Rpb24tPmlkZW50KCkuaW1wbCgp
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGVudHJ5LmlzTnVsbCgpKQotICAgICAg
ICAgICAgICAgIG5ld0dsb2JhbHMuYWRkKGZ1bmN0aW9uLT5pZGVudCgpLmltcGwoKSk7Ci0gICAg
ICAgICAgICBmdW5jdGlvbkluZm9baV0gPSBtYWtlX3BhaXIoZW50cnkuZ2V0SW5kZXgoKSwgZW50
cnkuaXNSZWFkT25seSgpKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgVmVjdG9yPGJv
b2wsIDE2PiBzaG91bGRDcmVhdGVWYXIodmFyU3RhY2suc2l6ZSgpKTsKLSAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCB2YXJTdGFjay5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYg
KG5ld0dsb2JhbHMuY29udGFpbnModmFyU3RhY2tbaV0uZmlyc3QtPmltcGwoKSkgfHwgZ2xvYmFs
T2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCAqdmFyU3RhY2tbaV0uZmlyc3QpKSB7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkQ3JlYXRlVmFyW2ldID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzaG91bGRDcmVhdGVWYXJbaV0gPSB0
cnVlOwotICAgICAgICAgICAgbmV3R2xvYmFscy5hZGQodmFyU3RhY2tbaV0uZmlyc3QtPmltcGwo
KSk7Ci0gICAgICAgIH0KIAotICAgICAgICBpbnQgZXhwZWN0ZWRTaXplID0gc3ltYm9sVGFibGUt
PnNpemUoKSArIG5ld0dsb2JhbHMuc2l6ZSgpOwotICAgICAgICBnbG9iYWxPYmplY3QtPnJlc2l6
ZVJlZ2lzdGVycyhzeW1ib2xUYWJsZS0+c2l6ZSgpLCBleHBlY3RlZFNpemUpOwotICAgIAotICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uU3RhY2suc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIEZ1bmN0aW9uQm9keU5vZGUqIGZ1bmN0aW9uID0gZnVuY3Rpb25TdGFja1tp
XTsKLSAgICAgICAgICAgIGlmIChmdW5jdGlvbkluZm9baV0uc2Vjb25kKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgUmVnaXN0ZXJJRCogZHN0ID0gYWRkR2xvYmFsVmFy
KGZ1bmN0aW9uLT5pZGVudCgpLCBmYWxzZSk7Ci0gICAgICAgICAgICBKU1ZhbHVlIHZhbHVlID0g
bmV3IChleGVjKSBKU0Z1bmN0aW9uKGV4ZWMsIG1ha2VGdW5jdGlvbihleGVjLCBmdW5jdGlvbiks
IHNjb3BlQ2hhaW4pOwotICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5yZWdpc3RlckF0KGRzdC0+
aW5kZXgoKSAtIG1fZ2xvYmFsVmFyU3RvcmFnZU9mZnNldCkuc2V0KCptX2dsb2JhbERhdGEsIGds
b2JhbE9iamVjdCwgdmFsdWUpOwotICAgICAgICB9CisgICAgc2l6ZV90IG5ld0dsb2JhbHMgPSB2
YXJTdGFjay5zaXplKCkgKyBmdW5jdGlvblN0YWNrLnNpemUoKTsKKyAgICBpZiAoIW5ld0dsb2Jh
bHMpCisgICAgICAgIHJldHVybjsKKyAgICBnbG9iYWxPYmplY3QtPnJlc2l6ZVJlZ2lzdGVycyhz
eW1ib2xUYWJsZS0+c2l6ZSgpICsgbmV3R2xvYmFscyk7CiAKLSAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCB2YXJTdGFjay5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgaWYgKCFzaG91
bGRDcmVhdGVWYXJbaV0pCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBh
ZGRHbG9iYWxWYXIoKnZhclN0YWNrW2ldLmZpcnN0LCB2YXJTdGFja1tpXS5zZWNvbmQgJiBEZWNs
YXJhdGlvblN0YWNrczo6SXNDb25zdGFudCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN5bWJv
bFRhYmxlLT5zaXplKCkgIT0gZXhwZWN0ZWRTaXplKQotICAgICAgICAgICAgQ1JBU0goKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uU3RhY2suc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgRnVuY3Rpb25Cb2R5Tm9kZSogZnVuY3Rpb24gPSBmdW5jdGlvblN0YWNrW2ldOworICAg
ICAgICBnbG9iYWxPYmplY3QtPnJlbW92ZURpcmVjdCgqbV9nbG9iYWxEYXRhLCBmdW5jdGlvbi0+
aWRlbnQoKSk7IC8vIE5ld2x5IGRlY2xhcmVkIGZ1bmN0aW9ucyBvdmVyd3JpdGUgZXhpc3Rpbmcg
cHJvcGVydGllcy4KIAotICAgICAgICBwcmVzZXJ2ZUxhc3RWYXIoKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uU3RhY2suc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgICAgIEZ1bmN0aW9uQm9keU5vZGUqIGZ1bmN0aW9uID0gZnVuY3Rpb25TdGFj
a1tpXTsKLSAgICAgICAgICAgIGdsb2JhbE9iamVjdC0+cHV0V2l0aEF0dHJpYnV0ZXMoZXhlYywg
ZnVuY3Rpb24tPmlkZW50KCksIG5ldyAoZXhlYykgSlNGdW5jdGlvbihleGVjLCBtYWtlRnVuY3Rp
b24oZXhlYywgZnVuY3Rpb24pLCBzY29wZUNoYWluKSwgRG9udERlbGV0ZSk7Ci0gICAgICAgIH0K
LSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YXJTdGFjay5zaXplKCk7ICsraSkgewot
ICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVjdC0+c3ltYm9sVGFibGVIYXNQcm9wZXJ0eSgqdmFy
U3RhY2tbaV0uZmlyc3QpIHx8IGdsb2JhbE9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywgKnZhclN0
YWNrW2ldLmZpcnN0KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlu
dCBhdHRyaWJ1dGVzID0gRG9udERlbGV0ZTsKLSAgICAgICAgICAgIGlmICh2YXJTdGFja1tpXS5z
ZWNvbmQgJiBEZWNsYXJhdGlvblN0YWNrczo6SXNDb25zdGFudCkKLSAgICAgICAgICAgICAgICBh
dHRyaWJ1dGVzIHw9IFJlYWRPbmx5OwotICAgICAgICAgICAgZ2xvYmFsT2JqZWN0LT5wdXRXaXRo
QXR0cmlidXRlcyhleGVjLCAqdmFyU3RhY2tbaV0uZmlyc3QsIGpzVW5kZWZpbmVkKCksIGF0dHJp
YnV0ZXMpOwotICAgICAgICB9CisgICAgICAgIEpTVmFsdWUgdmFsdWUgPSBuZXcgKGV4ZWMpIEpT
RnVuY3Rpb24oZXhlYywgbWFrZUZ1bmN0aW9uKGV4ZWMsIGZ1bmN0aW9uKSwgc2NvcGVDaGFpbik7
CisgICAgICAgIGludCBpbmRleCA9IGFkZEdsb2JhbFZhcihmdW5jdGlvbi0+aWRlbnQoKSwgZmFs
c2UpOworICAgICAgICBnbG9iYWxPYmplY3QtPnJlZ2lzdGVyQXQoaW5kZXgpLnNldCgqbV9nbG9i
YWxEYXRhLCBnbG9iYWxPYmplY3QsIHZhbHVlKTsKKyAgICB9CiAKLSAgICAgICAgcHJlc2VydmVM
YXN0VmFyKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB2YXJTdGFjay5zaXplKCk7ICsr
aSkgeworICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCAqdmFyU3Rh
Y2tbaV0uZmlyc3QpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGFkZEdsb2JhbFZh
cigqdmFyU3RhY2tbaV0uZmlyc3QsIHZhclN0YWNrW2ldLnNlY29uZCAmIERlY2xhcmF0aW9uU3Rh
Y2tzOjpJc0NvbnN0YW50KTsKICAgICB9Ci0gICAgY29kZUJsb2NrLT5tX251bUNhcHR1cmVkVmFy
cyA9IGNvZGVCbG9jay0+bV9udW1WYXJzOwogfQogCiBCeXRlY29kZUdlbmVyYXRvcjo6Qnl0ZWNv
ZGVHZW5lcmF0b3IoRnVuY3Rpb25Cb2R5Tm9kZSogZnVuY3Rpb25Cb2R5LCBTY29wZUNoYWluTm9k
ZSogc2NvcGVDaGFpbiwgU3ltYm9sVGFibGUqIHN5bWJvbFRhYmxlLCBDb2RlQmxvY2sqIGNvZGVC
bG9jaykKQEAgLTU1OSw2ICs0OTcsOSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6
cmVnaXN0ZXJGCiB7CiAgICAgaWYgKGlkZW50ID09IHByb3BlcnR5TmFtZXMoKS50aGlzSWRlbnRp
ZmllcikKICAgICAgICAgcmV0dXJuICZtX3RoaXNSZWdpc3RlcjsKKyAgICAgICAgCisgICAgaWYg
KG1fY29kZVR5cGUgPT0gR2xvYmFsQ29kZSkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAo
IXNob3VsZE9wdGltaXplTG9jYWxzKCkpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTczLDYgKzUx
NCwyMSBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6cmVnaXN0ZXJGCiAgICAgcmV0
dXJuIGNyZWF0ZUxhenlSZWdpc3RlcklmTmVjZXNzYXJ5KCZyZWdpc3RlckZvcihlbnRyeS5nZXRJ
bmRleCgpKSk7CiB9CiAKK1JlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjpjb25zdFJlZ2lz
dGVyRm9yKGNvbnN0IElkZW50aWZpZXImIGlkZW50KQoreworICAgIGlmIChtX2NvZGVUeXBlID09
IEV2YWxDb2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChtX2NvZGVUeXBlID09IEds
b2JhbENvZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgU3ltYm9sVGFibGVFbnRyeSBlbnRy
eSA9IHN5bWJvbFRhYmxlKCkuZ2V0KGlkZW50LmltcGwoKSk7CisgICAgaWYgKGVudHJ5LmlzTnVs
bCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBjcmVhdGVMYXp5UmVnaXN0ZXJJ
Zk5lY2Vzc2FyeSgmcmVnaXN0ZXJGb3IoZW50cnkuZ2V0SW5kZXgoKSkpOworfQorCiBib29sIEJ5
dGVjb2RlR2VuZXJhdG9yOjp3aWxsUmVzb2x2ZVRvQXJndW1lbnRzKGNvbnN0IElkZW50aWZpZXIm
IGlkZW50KQogewogICAgIGlmIChpZGVudCAhPSBwcm9wZXJ0eU5hbWVzKCkuYXJndW1lbnRzKQpA
QCAtNjA4LDE4ICs1NjQsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6Y3JlYXRl
TGF6CiAgICAgcmV0dXJuIHJlZzsKIH0KIAotUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6
OmNvbnN0UmVnaXN0ZXJGb3IoY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCi17Ci0gICAgaWYgKG1f
Y29kZVR5cGUgPT0gRXZhbENvZGUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgU3ltYm9sVGFi
bGVFbnRyeSBlbnRyeSA9IHN5bWJvbFRhYmxlKCkuZ2V0KGlkZW50LmltcGwoKSk7Ci0gICAgaWYg
KGVudHJ5LmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBjcmVhdGVM
YXp5UmVnaXN0ZXJJZk5lY2Vzc2FyeSgmcmVnaXN0ZXJGb3IoZW50cnkuZ2V0SW5kZXgoKSkpOwot
fQotCiBib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjppc0xvY2FsKGNvbnN0IElkZW50aWZpZXImIGlk
ZW50KQogewogICAgIGlmIChpZGVudCA9PSBwcm9wZXJ0eU5hbWVzKCkudGhpc0lkZW50aWZpZXIp
CkBAIC0xMjI3LDkgKzExNzEsNyBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dFJlc29sCiAgICAgfQogICAgICAgICAKICAgICBpZiAoZ2xvYmFsT2JqZWN0KSB7Ci0gICAgICAg
IGJvb2wgZm9yY2VHbG9iYWxSZXNvbHZlID0gZmFsc2U7Ci0KLSAgICAgICAgaWYgKGluZGV4ICE9
IG1pc3NpbmdTeW1ib2xNYXJrZXIoKSAmJiAhZm9yY2VHbG9iYWxSZXNvbHZlICYmICFyZXF1aXJl
c0R5bmFtaWNDaGVja3MpIHsKKyAgICAgICAgaWYgKGluZGV4ICE9IG1pc3NpbmdTeW1ib2xNYXJr
ZXIoKSAmJiAhcmVxdWlyZXNEeW5hbWljQ2hlY2tzKSB7CiAgICAgICAgICAgICAvLyBEaXJlY3Rs
eSBpbmRleCB0aGUgcHJvcGVydHkgbG9va3VwIGFjcm9zcyBtdWx0aXBsZSBzY29wZXMuCiAgICAg
ICAgICAgICByZXR1cm4gZW1pdEdldFNjb3BlZFZhcihkc3QsIGRlcHRoLCBpbmRleCwgZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAkocmV2aXNpb24gODkzOTIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0OCwxNSArNDQ4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICByZXR1cm4gbmV3UmVnaXN0ZXIoKTsKICAgICAgICAgfQogCi0gICAgICAgIC8vIFJl
dHVybnMgdGhlIFJlZ2lzdGVySUQgY29ycmVzcG9uZGluZyB0byBpZGVudC4KLSAgICAgICAgUmVn
aXN0ZXJJRCogYWRkR2xvYmFsVmFyKGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBib29sIGlzQ29u
c3RhbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJlZ2lzdGVySUQqIGxvY2FsOwotICAgICAg
ICAgICAgYWRkR2xvYmFsVmFyKGlkZW50LCBpc0NvbnN0YW50LCBsb2NhbCk7Ci0gICAgICAgICAg
ICByZXR1cm4gbG9jYWw7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGEg
bmV3IFJlZ2lzdGVySUQgd2FzIGFkZGVkLCBmYWxzZSBpZiBhIHByZS1leGlzdGluZyBSZWdpc3Rl
cklEIHdhcyByZS11c2VkLgotICAgICAgICBib29sIGFkZEdsb2JhbFZhcihjb25zdCBJZGVudGlm
aWVyJiwgYm9vbCBpc0NvbnN0YW50LCBSZWdpc3RlcklEKiYpOworICAgICAgICAvLyBSZXR1cm5z
IHRoZSBpbmRleCBvZiB0aGUgYWRkZWQgdmFyLgorICAgICAgICBpbnQgYWRkR2xvYmFsVmFyKGNv
bnN0IElkZW50aWZpZXImLCBib29sIGlzQ29uc3RhbnQpOwogCiAgICAgICAgIHZvaWQgYWRkUGFy
YW1ldGVyKGNvbnN0IElkZW50aWZpZXImLCBpbnQgcGFyYW1ldGVySW5kZXgpOwogICAgICAgICAK
QEAgLTQ2OCwxMiArNDYxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpZiAoaW5k
ZXggPj0gMCkKICAgICAgICAgICAgICAgICByZXR1cm4gbV9jYWxsZWVSZWdpc3RlcnNbaW5kZXhd
OwogCi0gICAgICAgICAgICBpZiAobV9wYXJhbWV0ZXJzLnNpemUoKSkgewotICAgICAgICAgICAg
ICAgIEFTU0VSVCghbV9nbG9iYWxzLnNpemUoKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1f
cGFyYW1ldGVyc1tpbmRleCArIG1fcGFyYW1ldGVycy5zaXplKCkgKyBSZWdpc3RlckZpbGU6OkNh
bGxGcmFtZUhlYWRlclNpemVdOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4g
bV9nbG9iYWxzWy1pbmRleCAtIDFdOworICAgICAgICAgICAgQVNTRVJUKG1fcGFyYW1ldGVycy5z
aXplKCkpOworICAgICAgICAgICAgcmV0dXJuIG1fcGFyYW1ldGVyc1tpbmRleCArIG1fcGFyYW1l
dGVycy5zaXplKCkgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemVdOwogICAgICAg
ICB9CiAKICAgICAgICAgdW5zaWduZWQgYWRkQ29uc3RhbnQoY29uc3QgSWRlbnRpZmllciYpOwpA
QCAtNTA1LDggKzQ5NCwzMCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgVmVjdG9yPEluc3Ry
dWN0aW9uPiYgaW5zdHJ1Y3Rpb25zKCkgeyByZXR1cm4gbV9jb2RlQmxvY2stPmluc3RydWN0aW9u
cygpOyB9CiAgICAgICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSgpIHsgcmV0dXJuICptX3N5
bWJvbFRhYmxlOyB9CiAKLSAgICAgICAgYm9vbCBzaG91bGRPcHRpbWl6ZUxvY2FscygpIHsgcmV0
dXJuIChtX2NvZGVUeXBlICE9IEV2YWxDb2RlKSAmJiAhbV9keW5hbWljU2NvcGVEZXB0aDsgfQot
ICAgICAgICBib29sIGNhbk9wdGltaXplTm9uTG9jYWxzKCkgeyByZXR1cm4gKG1fY29kZVR5cGUg
PT0gRnVuY3Rpb25Db2RlKSAmJiAhbV9keW5hbWljU2NvcGVEZXB0aCAmJiAhbV9jb2RlQmxvY2st
PnVzZXNFdmFsKCk7IH0KKyAgICAgICAgYm9vbCBzaG91bGRPcHRpbWl6ZUxvY2FscygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChtX2R5bmFtaWNTY29wZURlcHRoKQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgaWYgKG1fY29kZVR5cGUgIT0gRnVuY3Rp
b25Db2RlKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBib29sIGNhbk9wdGltaXplTm9uTG9jYWxz
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG1fZHluYW1pY1Njb3BlRGVwdGgpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBpZiAobV9jb2RlVHlwZSA9
PSBFdmFsQ29kZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAg
IGlmIChtX2NvZGVUeXBlID09IEZ1bmN0aW9uQ29kZSAmJiBtX2NvZGVCbG9jay0+dXNlc0V2YWwo
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CiAKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFRocm93RXhwcmVzc2lv
blRvb0RlZXBFeGNlcHRpb24oKTsKIApAQCAtNTMzLDcgKzU0NCw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fY29uc3RhbnRQb29s
UmVnaXN0ZXJzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1fY2Fs
bGVlUmVnaXN0ZXJzOwogICAgICAgICBTZWdtZW50ZWRWZWN0b3I8UmVnaXN0ZXJJRCwgMzI+IG1f
cGFyYW1ldGVyczsKLSAgICAgICAgU2VnbWVudGVkVmVjdG9yPFJlZ2lzdGVySUQsIDMyPiBtX2ds
b2JhbHM7CiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxMYWJlbCwgMzI+IG1fbGFiZWxzOwogICAg
ICAgICBTZWdtZW50ZWRWZWN0b3I8TGFiZWxTY29wZSwgOD4gbV9sYWJlbFNjb3BlczsKICAgICAg
ICAgUmVmUHRyPFJlZ2lzdGVySUQ+IG1fbGFzdFZhcjsKQEAgLTU0Niw3ICs1NTYsNiBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgVmVjdG9yPFN3aXRjaEluZm8+IG1fc3dpdGNoQ29udGV4dFN0
YWNrOwogICAgICAgICBWZWN0b3I8Rm9ySW5Db250ZXh0PiBtX2ZvckluQ29udGV4dFN0YWNrOwog
Ci0gICAgICAgIGludCBtX25leHRHbG9iYWxJbmRleDsKICAgICAgICAgaW50IG1fZmlyc3RDb25z
dGFudEluZGV4OwogICAgICAgICBpbnQgbV9uZXh0Q29uc3RhbnRPZmZzZXQ7CiAgICAgICAgIHVu
c2lnbmVkIG1fZ2xvYmFsQ29uc3RhbnRJbmRleDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gODkzOTEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MDksMTMgKzQwOSwxMiBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBJbnRl
cnByZXRlcjo6Y2FsbEV2CiAgICAgaWYgKFVOTElLRUxZKCFldmFsKSkKICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IoY2FsbEZyYW1lLCBleGNlcHRpb25WYWx1ZSk7CiAKLSAgICByZXR1cm4gY2Fs
bEZyYW1lLT5nbG9iYWxEYXRhKCkuaW50ZXJwcmV0ZXItPmV4ZWN1dGUoZXZhbCwgY2FsbEZyYW1l
LCBjYWxsRnJhbWUtPnVuY2hlY2tlZFIoY29kZUJsb2NrLT50aGlzUmVnaXN0ZXIoKSkuanNWYWx1
ZSgpLnRvVGhpc09iamVjdChjYWxsRnJhbWUpLCBjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcmVn
aXN0ZXJGaWxlLT5zdGFydCgpICsgcmVnaXN0ZXJPZmZzZXQsIHNjb3BlQ2hhaW4pOworICAgIHJl
dHVybiBjYWxsRnJhbWUtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+ZXhlY3V0ZShldmFsLCBj
YWxsRnJhbWUsIGNhbGxGcmFtZS0+dW5jaGVja2VkUihjb2RlQmxvY2stPnRoaXNSZWdpc3Rlcigp
KS5qc1ZhbHVlKCkudG9UaGlzT2JqZWN0KGNhbGxGcmFtZSksIGNhbGxGcmFtZS0+cmVnaXN0ZXJz
KCkgLSByZWdpc3RlckZpbGUtPmJlZ2luKCkgKyByZWdpc3Rlck9mZnNldCwgc2NvcGVDaGFpbik7
CiB9CiAKLUludGVycHJldGVyOjpJbnRlcnByZXRlcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEp
CitJbnRlcnByZXRlcjo6SW50ZXJwcmV0ZXIoKQogICAgIDogbV9zYW1wbGVFbnRyeURlcHRoKDAp
CiAgICAgLCBtX3JlZW50cnlEZXB0aCgwKQotICAgICwgbV9yZWdpc3RlckZpbGUoZ2xvYmFsRGF0
YSkKIHsKICNpZiBFTkFCTEUoQ09NUFVURURfR09UT19JTlRFUlBSRVRFUikKICAgICBwcml2YXRl
RXhlY3V0ZShJbml0aWFsaXplQW5kUmV0dXJuLCAwLCAwKTsKQEAgLTQ0NSwyNiArNDQ0LDEwIEBA
IHZvaWQgSW50ZXJwcmV0ZXI6OmR1bXBSZWdpc3RlcnMoQ2FsbEZyYW0KICAgICBwcmludGYoIi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKIAogICAgIENvZGVCbG9jayogY29kZUJsb2NrID0gY2Fs
bEZyYW1lLT5jb2RlQmxvY2soKTsKLSAgICBSZWdpc3RlckZpbGUqIHJlZ2lzdGVyRmlsZSA9ICZj
YWxsRnJhbWUtPnNjb3BlQ2hhaW4oKS0+Z2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkuaW50ZXJw
cmV0ZXItPnJlZ2lzdGVyRmlsZSgpOwogICAgIGNvbnN0IFJlZ2lzdGVyKiBpdDsKICAgICBjb25z
dCBSZWdpc3RlciogZW5kOwogICAgIEpTVmFsdWUgdjsKIAotICAgIGlmIChjb2RlQmxvY2stPmNv
ZGVUeXBlKCkgPT0gR2xvYmFsQ29kZSkgewotICAgICAgICBpdCA9IHJlZ2lzdGVyRmlsZS0+bGFz
dEdsb2JhbCgpOwotICAgICAgICBlbmQgPSBpdCArIHJlZ2lzdGVyRmlsZS0+bnVtR2xvYmFscygp
OwotICAgICAgICB3aGlsZSAoaXQgIT0gZW5kKSB7Ci0gICAgICAgICAgICB2ID0gKCppdCkuanNW
YWx1ZSgpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBwcmludGYoIltnbG9i
YWwgdmFyXSAgICAgICAgICAgICAgIHwgJTEwcCB8ICUtMTZzIDB4JWxseCBcbiIsIGl0LCB2LmRl
c2NyaXB0aW9uKCksIEpTVmFsdWU6OmVuY29kZSh2KSk7Ci0jZWxzZQotICAgICAgICAgICAgcHJp
bnRmKCJbZ2xvYmFsIHZhcl0gICAgICAgICAgICAgICB8ICUxMHAgfCAlLTE2cyAlcCBcbiIsIGl0
LCB2LmRlc2NyaXB0aW9uKCksIEpTVmFsdWU6OmVuY29kZSh2KSk7Ci0jZW5kaWYKLSAgICAgICAg
ICAgICsraXQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnRmKCItLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LVxuIik7Ci0gICAgfQotICAgIAogICAgIGl0ID0gY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIFJl
Z2lzdGVyRmlsZTo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSAtIGNvZGVCbG9jay0+bV9udW1QYXJhbWV0
ZXJzOwogICAgIHYgPSAoKml0KS5qc1ZhbHVlKCk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKQEAg
LTgyNiwxMCArODA5LDYgQEAgZmFpbGVkSlNPTlA6CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5n
cm93KG5ld0VuZCkpCiAgICAgICAgIHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVy
Zmxvd0Vycm9yKGNhbGxGcmFtZSkpOwogCi0gICAgSlNHbG9iYWxPYmplY3QqIGxhc3RHbG9iYWxP
YmplY3QgPSBtX3JlZ2lzdGVyRmlsZS5nbG9iYWxPYmplY3QoKTsKLSAgICBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gY2FsbEZyYW1lLT5keW5hbWljR2xvYmFsT2JqZWN0KCk7Ci0gICAg
Z2xvYmFsT2JqZWN0LT5jb3B5R2xvYmFsc1RvKG1fcmVnaXN0ZXJGaWxlKTsKLQogICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUob2xkRW5kICsgY29kZUJsb2Nr
LT5tX251bVBhcmFtZXRlcnMgKyBSZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUpOwog
ICAgIEFTU0VSVChjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycyA9PSAxKTsgLy8gMSBwYXJhbWV0
ZXIgZm9yICd0aGlzJy4KICAgICBuZXdDYWxsRnJhbWUtPmluaXQoY29kZUJsb2NrLCAwLCBzY29w
ZUNoYWluLCBDYWxsRnJhbWU6Om5vQ2FsbGVyKCksIGNvZGVCbG9jay0+bV9udW1QYXJhbWV0ZXJz
LCAwKTsKQEAgLTg1Nyw5ICs4MzYsNiBAQCBmYWlsZWRKU09OUDoKICAgICBpZiAoKnByb2ZpbGVy
KQogICAgICAgICAoKnByb2ZpbGVyKS0+ZGlkRXhlY3V0ZShjYWxsRnJhbWUsIHByb2dyYW0tPnNv
dXJjZVVSTCgpLCBwcm9ncmFtLT5saW5lTm8oKSk7CiAKLSAgICBpZiAobV9yZWVudHJ5RGVwdGgg
JiYgbGFzdEdsb2JhbE9iamVjdCAmJiBnbG9iYWxPYmplY3QgIT0gbGFzdEdsb2JhbE9iamVjdCkK
LSAgICAgICAgbGFzdEdsb2JhbE9iamVjdC0+Y29weUdsb2JhbHNUbyhtX3JlZ2lzdGVyRmlsZSk7
Ci0KICAgICBtX3JlZ2lzdGVyRmlsZS5zaHJpbmsob2xkRW5kKTsKIAogICAgIHJldHVybiBjaGVj
a2VkUmV0dXJuKHJlc3VsdCk7CkBAIC0xMjA0LDE0ICsxMTgwLDE0IEBAIEpTVmFsdWUgSW50ZXJw
cmV0ZXI6OmV4ZWN1dGUoRXZhbEV4ZWN1dGEKICAgICB9CiAKICAgICBSZWdpc3Rlciogb2xkRW5k
ID0gbV9yZWdpc3RlckZpbGUuZW5kKCk7Ci0gICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG1fcmVnaXN0
ZXJGaWxlLnN0YXJ0KCkgKyBnbG9iYWxSZWdpc3Rlck9mZnNldCArIGNvZGVCbG9jay0+bV9udW1D
YWxsZWVSZWdpc3RlcnM7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9IG1fcmVnaXN0ZXJGaWxlLmJl
Z2luKCkgKyBnbG9iYWxSZWdpc3Rlck9mZnNldCArIGNvZGVCbG9jay0+bV9udW1DYWxsZWVSZWdp
c3RlcnM7CiAgICAgaWYgKCFtX3JlZ2lzdGVyRmlsZS5ncm93KG5ld0VuZCkpIHsKICAgICAgICAg
aWYgKHB1c2hlZFNjb3BlKQogICAgICAgICAgICAgc2NvcGVDaGFpbi0+cG9wKCk7CiAgICAgICAg
IHJldHVybiBjaGVja2VkUmV0dXJuKHRocm93U3RhY2tPdmVyZmxvd0Vycm9yKGNhbGxGcmFtZSkp
OwogICAgIH0KIAotICAgIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVh
dGUobV9yZWdpc3RlckZpbGUuc3RhcnQoKSArIGdsb2JhbFJlZ2lzdGVyT2Zmc2V0KTsKKyAgICBD
YWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKG1fcmVnaXN0ZXJGaWxl
LmJlZ2luKCkgKyBnbG9iYWxSZWdpc3Rlck9mZnNldCk7CiAKICAgICBBU1NFUlQoY29kZUJsb2Nr
LT5tX251bVBhcmFtZXRlcnMgPT0gMSk7IC8vIDEgcGFyYW1ldGVyIGZvciAndGhpcycuCiAgICAg
bmV3Q2FsbEZyYW1lLT5pbml0KGNvZGVCbG9jaywgMCwgc2NvcGVDaGFpbiwgY2FsbEZyYW1lLT5h
ZGRIb3N0Q2FsbEZyYW1lRmxhZygpLCBjb2RlQmxvY2stPm1fbnVtUGFyYW1ldGVycywgMCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aAkocmV2aXNpb24gODkzOTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKICAgICAgICAgZnJpZW5kIGNsYXNzIENh
Y2hlZENhbGw7CiAgICAgcHVibGljOgotICAgICAgICBJbnRlcnByZXRlcihKU0dsb2JhbERhdGEm
KTsKKyAgICAgICAgSW50ZXJwcmV0ZXIoKTsKIAogICAgICAgICBSZWdpc3RlckZpbGUmIHJlZ2lz
dGVyRmlsZSgpIHsgcmV0dXJuIG1fcmVnaXN0ZXJGaWxlOyB9CiAgICAgICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5jcHAJ
KHJldmlzaW9uIDg5MzkxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1Jl
Z2lzdGVyRmlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDYgQEAKIAogI2luY2x1
ZGUgIkNvbnNlcnZhdGl2ZVJvb3RzLmgiCiAjaW5jbHVkZSAiSW50ZXJwcmV0ZXIuaCIKLSNpbmNs
dWRlICJKU0dsb2JhbERhdGEuaCIKLSNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogCiBuYW1l
c3BhY2UgSlNDIHsKIApAQCAtNTQsMjUgKzUyLDE1IEBAIFJlZ2lzdGVyRmlsZTo6flJlZ2lzdGVy
RmlsZSgpCiAKIHZvaWQgUmVnaXN0ZXJGaWxlOjpnYXRoZXJDb25zZXJ2YXRpdmVSb290cyhDb25z
ZXJ2YXRpdmVSb290cyYgY29uc2VydmF0aXZlUm9vdHMpCiB7Ci0gICAgY29uc2VydmF0aXZlUm9v
dHMuYWRkKHN0YXJ0KCksIGVuZCgpKTsKKyAgICBjb25zZXJ2YXRpdmVSb290cy5hZGQoYmVnaW4o
KSwgZW5kKCkpOwogfQogCiB2b2lkIFJlZ2lzdGVyRmlsZTo6cmVsZWFzZUV4Y2Vzc0NhcGFjaXR5
KCkKIHsKLSAgICBtX3Jlc2VydmF0aW9uLmRlY29tbWl0KG1fc3RhcnQsIHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KG1fY29tbWl0RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1f
c3RhcnQpKTsKLSAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudCgtKHJlaW50ZXJwcmV0X2Nhc3Q8
aW50cHRyX3Q+KG1fY29tbWl0RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KG1fc3Rh
cnQpKSk7Ci0gICAgbV9jb21taXRFbmQgPSBtX3N0YXJ0OwotICAgIG1fbWF4VXNlZCA9IG1fc3Rh
cnQ7Ci19Ci0KLXZvaWQgUmVnaXN0ZXJGaWxlOjpzZXRHbG9iYWxPYmplY3QoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBtX2dsb2JhbE9iamVjdC5zZXQoZ2xvYmFsT2JqZWN0
LT5nbG9iYWxEYXRhKCksIGdsb2JhbE9iamVjdCwgJm1fZ2xvYmFsT2JqZWN0T3duZXIsIHRoaXMp
OwotfQotCi1KU0dsb2JhbE9iamVjdCogUmVnaXN0ZXJGaWxlOjpnbG9iYWxPYmplY3QoKQotewot
ICAgIHJldHVybiBtX2dsb2JhbE9iamVjdC5nZXQoKTsKKyAgICBwdHJkaWZmX3QgZGVsdGEgPSBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4obV9jb21taXRFbmQpIC0gcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsKKyAgICBtX3Jlc2VydmF0aW9uLmRl
Y29tbWl0KG1fcmVzZXJ2YXRpb24uYmFzZSgpLCBkZWx0YSk7CisgICAgYWRkVG9Db21taXR0ZWRC
eXRlQ291bnQoLWRlbHRhKTsKKyAgICBtX2NvbW1pdEVuZCA9IHN0YXRpY19jYXN0PFJlZ2lzdGVy
Kj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOwogfQogCiB2b2lkIFJlZ2lzdGVyRmlsZTo6aW5pdGlh
bGl6ZVRocmVhZGluZygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
UmVnaXN0ZXJGaWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL1JlZ2lzdGVyRmlsZS5oCShyZXZpc2lvbiA4OTM5MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NjUgKzI5LDE1IEBACiAjaWZuZGVmIFJlZ2lzdGVyRmlsZV9oCiAjZGVmaW5lIFJlZ2lzdGVyRmls
ZV9oCiAKLSNpbmNsdWRlICJIZWFwLmgiCiAjaW5jbHVkZSAiRXhlY3V0YWJsZUFsbG9jYXRvci5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyLmgiCi0jaW5jbHVkZSAiV2Vhay5oIgotI2luY2x1ZGUgPHN0
ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VS
ZXNlcnZhdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9WTVRhZ3MuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CiAKLS8qCi0gICAgQSByZWdpc3RlciBmaWxlIGlzIGEgc3RhY2sgb2YgcmVnaXN0ZXIgZnJhbWVz
LiBXZSByZXByZXNlbnQgYSByZWdpc3RlcgotICAgIGZyYW1lIGJ5IGl0cyBvZmZzZXQgZnJvbSAi
YmFzZSIsIHRoZSBsb2dpY2FsIGZpcnN0IGVudHJ5IGluIHRoZSByZWdpc3RlcgotICAgIGZpbGUu
IFRoZSBib3R0b20tbW9zdCByZWdpc3RlciBmcmFtZSdzIG9mZnNldCBmcm9tIGJhc2UgaXMgMC4K
LQotICAgIEluIGEgcHJvZ3JhbSB3aGVyZSBmdW5jdGlvbiAiYSIgY2FsbHMgZnVuY3Rpb24gImIi
IChnbG9iYWwgY29kZSAtPiBhIC0+IGIpLAotICAgIHRoZSByZWdpc3RlciBmaWxlIG1pZ2h0IGxv
b2sgbGlrZSB0aGlzOgotCi0gICAgfCAgICAgICBnbG9iYWwgZnJhbWUgICAgIHwgICAgICAgIGNh
bGwgZnJhbWUgICAgICB8ICAgICAgICBjYWxsIGZyYW1lICAgICAgfCAgICAgc3BhcmUgY2FwYWNp
dHkgICAgIHwKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotICAgIHwgIDAgfCAgMSB8ICAyIHwgIDMgfCAgNCB8ICA1IHwgIDYgfCAgNyB8ICA4IHwgIDkg
fCAxMCB8IDExIHwgMTIgfCAxMyB8IDE0IHwgICAgfCAgICB8ICAgIHwgICAgfCAgICB8IDwtLSBp
bmRleCBpbiBidWZmZXIKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotICAgIHwgLTMgfCAtMiB8IC0xIHwgIDAgfCAgMSB8ICAyIHwgIDMgfCAgNCB8ICA1
IHwgIDYgfCAgNyB8ICA4IHwgIDkgfCAxMCB8IDExIHwgICAgfCAgICB8ICAgIHwgICAgfCAgICB8
IDwtLSBpbmRleCByZWxhdGl2ZSB0byBiYXNlCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICB8ICAgIDwtZ2xvYmFscyB8IHRlbXBzLT4gfCAgPC12
YXJzIHwgdGVtcHMtPiAgICAgIHwgICAgICAgICAgICAgICAgIDwtdmFycyB8Ci0gICAgICAgXiAg
ICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXgotICAgICAgIHwgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg
ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICAgYnVmZmVy
ICAgIGJhc2UgKGZyYW1lIDApICAgICAgICAgIGZyYW1lIDEgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmcmFtZSAyCi0KLSAgICBTaW5jZSBhbGwgdmFyaWFibGVzLCBpbmNsdWRpbmcg
Z2xvYmFscywgYXJlIGFjY2Vzc2VkIGJ5IG5lZ2F0aXZlIG9mZnNldHMKLSAgICBmcm9tIHRoZWly
IHJlZ2lzdGVyIGZyYW1lIHBvaW50ZXJzLCB0byBrZWVwIG9sZCBnbG9iYWwgb2Zmc2V0cyBjb3Jy
ZWN0LCBuZXcKLSAgICBnbG9iYWxzIG11c3QgYXBwZWFyIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl
IHJlZ2lzdGVyIGZpbGUsIHNoaWZ0aW5nIGJhc2UKLSAgICB0byB0aGUgcmlnaHQuCi0KLSAgICBJ
ZiB3ZSBhZGRlZCBvbmUgZ2xvYmFsIHZhcmlhYmxlIHRvIHRoZSByZWdpc3RlciBmaWxlIGRlcGlj
dGVkIGFib3ZlLCBpdAotICAgIHdvdWxkIGxvb2sgbGlrZSB0aGlzOgotCi0gICAgfCAgICAgICAg
IGdsb2JhbCBmcmFtZSAgICAgICAgfDwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KLSAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPAotICAgIHwgIDAgfCAgMSB8ICAyIHwgIDMgfCAg
NCB8ICA1IHw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+c25pcDwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA+IDwtLSBpbmRleCBpbiBidWZmZXIKLSAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPAotICAgIHwgLTQgfCAtMyB8IC0yIHwg
LTEgfCAgMCB8ICAxIHw8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA+IDwtLSBpbmRleCByZWxhdGl2ZSB0byBiYXNlCi0g
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwKLSAgICB8ICAg
ICAgICAgPC1nbG9iYWxzIHwgdGVtcHMtPiB8Ci0gICAgICAgXiAgICAgICAgICAgICAgICAgICBe
Ci0gICAgICAgfCAgICAgICAgICAgICAgICAgICB8Ci0gICAgIGJ1ZmZlciAgICAgICAgIGJhc2Ug
KGZyYW1lIDApCi0KLSAgICBBcyB5b3UgY2FuIHNlZSwgZ2xvYmFsIG9mZnNldHMgcmVsYXRpdmUg
dG8gYmFzZSBoYXZlIHN0YXllZCBjb25zdGFudCwKLSAgICBidXQgYmFzZSBpdHNlbGYgaGFzIG1v
dmVkLiBUbyBrZWVwIHVwIHdpdGggcG9zc2libGUgY2hhbmdlcyB0byBiYXNlLAotICAgIGNsaWVu
dHMga2VlcCBhbiBpbmRpcmVjdCBwb2ludGVyLCBzbyB0aGVpciBjYWxjdWxhdGlvbnMgdXBkYXRl
Ci0gICAgYXV0b21hdGljYWxseSB3aGVuIGJhc2UgY2hhbmdlcy4KLQotICAgIEZvciBjbGllbnQg
c2ltcGxpY2l0eSwgdGhlIFJlZ2lzdGVyRmlsZSBtZWFzdXJlcyBzaXplIGFuZCBjYXBhY2l0eSBm
cm9tCi0gICAgImJhc2UiLCBub3QgImJ1ZmZlciIuCi0qLwotCi0gICAgY2xhc3MgSlNHbG9iYWxP
YmplY3Q7CisgICAgY2xhc3MgQ29uc2VydmF0aXZlUm9vdHM7CiAKICAgICBjbGFzcyBSZWdpc3Rl
ckZpbGUgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZWdpc3RlckZpbGUpOwpAQCAt
MTA2LDMyICs1NiwyMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZW51bSB7IFByb2dyYW1D
b2RlVGhpc1JlZ2lzdGVyID0gLUNhbGxGcmFtZUhlYWRlclNpemUgLSAxIH07CiAKICAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBkZWZhdWx0Q2FwYWNpdHkgPSA1MTIgKiAxMDI0OwotICAgICAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1bHRNYXhHbG9iYWxzID0gOCAqIDEwMjQ7CiAgICAg
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY29tbWl0U2l6ZSA9IDE2ICogMTAyNDsKICAgICAgICAg
Ly8gQWxsb3cgOGsgb2YgZXhjZXNzIHJlZ2lzdGVycyBiZWZvcmUgd2Ugc3RhcnQgdHJ5aW5nIHRv
IHJlYXAgdGhlIHJlZ2lzdGVyZmlsZQogICAgICAgICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IG1h
eEV4Y2Vzc0NhcGFjaXR5ID0gOCAqIDEwMjQ7CiAKLSAgICAgICAgUmVnaXN0ZXJGaWxlKEpTR2xv
YmFsRGF0YSYsIHNpemVfdCBjYXBhY2l0eSA9IGRlZmF1bHRDYXBhY2l0eSwgc2l6ZV90IG1heEds
b2JhbHMgPSBkZWZhdWx0TWF4R2xvYmFscyk7CisgICAgICAgIFJlZ2lzdGVyRmlsZShzaXplX3Qg
Y2FwYWNpdHkgPSBkZWZhdWx0Q2FwYWNpdHkpOwogICAgICAgICB+UmVnaXN0ZXJGaWxlKCk7CiAg
ICAgICAgIAogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2
ZVJvb3RzJik7CiAKLSAgICAgICAgUmVnaXN0ZXIqIHN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9z
dGFydDsgfQorICAgICAgICBSZWdpc3RlciogYmVnaW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxSZWdpc3Rlcio+KG1fcmVzZXJ2YXRpb24uYmFzZSgpKTsgfQogICAgICAgICBSZWdpc3Rl
ciogZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KLSAgICAgICAgc2l6ZV90IHNpemUoKSBj
b25zdCB7IHJldHVybiBtX2VuZCAtIG1fc3RhcnQ7IH0KLQotICAgICAgICB2b2lkIHNldEdsb2Jh
bE9iamVjdChKU0dsb2JhbE9iamVjdCopOwotICAgICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KCk7CisgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gZW5kKCkgLSBi
ZWdpbigpOyB9CiAKICAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiBuZXdFbmQpOwogICAgICAg
ICB2b2lkIHNocmluayhSZWdpc3RlciogbmV3RW5kKTsKICAgICAgICAgCi0gICAgICAgIHZvaWQg
c2V0TnVtR2xvYmFscyhzaXplX3QgbnVtR2xvYmFscykgeyBtX251bUdsb2JhbHMgPSBudW1HbG9i
YWxzOyB9Ci0gICAgICAgIGludCBudW1HbG9iYWxzKCkgY29uc3QgeyByZXR1cm4gbV9udW1HbG9i
YWxzOyB9Ci0gICAgICAgIHNpemVfdCBtYXhHbG9iYWxzKCkgY29uc3QgeyByZXR1cm4gbV9tYXhH
bG9iYWxzOyB9Ci0KLSAgICAgICAgUmVnaXN0ZXIqIGxhc3RHbG9iYWwoKSBjb25zdCB7IHJldHVy
biBtX3N0YXJ0IC0gbV9udW1HbG9iYWxzOyB9Ci0gICAgICAgIAogICAgICAgICBzdGF0aWMgc2l6
ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
VGhyZWFkaW5nKCk7CiAKQEAgLTE0Myw0NSArODMsMTkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAgICAgICAg
dm9pZCBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChsb25nKTsKLSAgICAgICAgc2l6ZV90IG1fbnVt
R2xvYmFsczsKLSAgICAgICAgY29uc3Qgc2l6ZV90IG1fbWF4R2xvYmFsczsKLSAgICAgICAgUmVn
aXN0ZXIqIG1fc3RhcnQ7CiAgICAgICAgIFJlZ2lzdGVyKiBtX2VuZDsKLSAgICAgICAgUmVnaXN0
ZXIqIG1fbWF4OwotICAgICAgICBSZWdpc3RlciogbV9tYXhVc2VkOwogICAgICAgICBSZWdpc3Rl
ciogbV9jb21taXRFbmQ7CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jlc2VydmF0aW9uOwot
Ci0gICAgICAgIFdlYWs8SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OyAvLyBUaGUgZ2xv
YmFsIG9iamVjdCB3aG9zZSB2YXJzIGFyZSBjdXJyZW50bHkgc3RvcmVkIGluIHRoZSByZWdpc3Rl
ciBmaWxlLgotICAgICAgICBjbGFzcyBHbG9iYWxPYmplY3RPd25lciA6IHB1YmxpYyBXZWFrSGFu
ZGxlT3duZXIgewotICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEhhbmRsZTxVbmtu
b3duPiwgdm9pZCogY29udGV4dCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxSZWdpc3RlckZpbGUqPihjb250ZXh0KS0+c2V0TnVtR2xvYmFscygwKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBtX2dsb2JhbE9iamVjdE93bmVyOwogICAgIH07CiAKLSAgICBp
bmxpbmUgUmVnaXN0ZXJGaWxlOjpSZWdpc3RlckZpbGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBzaXplX3QgY2FwYWNpdHksIHNpemVfdCBtYXhHbG9iYWxzKQotICAgICAgICA6IG1fbnVtR2xv
YmFscygwKQotICAgICAgICAsIG1fbWF4R2xvYmFscyhtYXhHbG9iYWxzKQotICAgICAgICAsIG1f
c3RhcnQoMCkKLSAgICAgICAgLCBtX2VuZCgwKQotICAgICAgICAsIG1fbWF4KDApCi0gICAgICAg
ICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgMCwgJm1fZ2xvYmFsT2JqZWN0T3duZXIsIHRo
aXMpCisgICAgaW5saW5lIFJlZ2lzdGVyRmlsZTo6UmVnaXN0ZXJGaWxlKHNpemVfdCBjYXBhY2l0
eSkKKyAgICAgICAgOiBtX2VuZCgwKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1heEdsb2JhbHMg
JiYgaXNQYWdlQWxpZ25lZChtYXhHbG9iYWxzKSk7CiAgICAgICAgIEFTU0VSVChjYXBhY2l0eSAm
JiBpc1BhZ2VBbGlnbmVkKGNhcGFjaXR5KSk7Ci0gICAgICAgIHNpemVfdCBidWZmZXJMZW5ndGgg
PSAoY2FwYWNpdHkgKyBtYXhHbG9iYWxzKSAqIHNpemVvZihSZWdpc3Rlcik7Ci0gICAgICAgIG1f
cmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUocm91bmRVcEFsbG9jYXRpb25T
aXplKGJ1ZmZlckxlbmd0aCwgY29tbWl0U2l6ZSksIE9TQWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdl
cyk7Ci0gICAgICAgIHZvaWQqIGJhc2UgPSBtX3Jlc2VydmF0aW9uLmJhc2UoKTsKLSAgICAgICAg
c2l6ZV90IGNvbW1pdHRlZFNpemUgPSByb3VuZFVwQWxsb2NhdGlvblNpemUobWF4R2xvYmFscyAq
IHNpemVvZihSZWdpc3RlciksIGNvbW1pdFNpemUpOwotICAgICAgICBtX3Jlc2VydmF0aW9uLmNv
bW1pdChiYXNlLCBjb21taXR0ZWRTaXplKTsKLSAgICAgICAgYWRkVG9Db21taXR0ZWRCeXRlQ291
bnQoc3RhdGljX2Nhc3Q8bG9uZz4oY29tbWl0dGVkU2l6ZSkpOwotICAgICAgICBtX2NvbW1pdEVu
ZCA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4oYmFzZSkgKyBjb21taXR0ZWRTaXplKTsKLSAgICAgICAgbV9zdGFydCA9IHN0YXRpY19jYXN0
PFJlZ2lzdGVyKj4oYmFzZSkgKyBtYXhHbG9iYWxzOwotICAgICAgICBtX2VuZCA9IG1fc3RhcnQ7
Ci0gICAgICAgIG1fbWF4VXNlZCA9IG1fZW5kOwotICAgICAgICBtX21heCA9IG1fc3RhcnQgKyBj
YXBhY2l0eTsKKworICAgICAgICBtX3Jlc2VydmF0aW9uID0gUGFnZVJlc2VydmF0aW9uOjpyZXNl
cnZlKHJvdW5kVXBBbGxvY2F0aW9uU2l6ZShjYXBhY2l0eSAqIHNpemVvZihSZWdpc3RlciksIGNv
bW1pdFNpemUpLCBPU0FsbG9jYXRvcjo6SlNWTVN0YWNrUGFnZXMpOworICAgICAgICBtX2VuZCA9
IHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpOworICAgICAgICBt
X2NvbW1pdEVuZCA9IHN0YXRpY19jYXN0PFJlZ2lzdGVyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkp
OwogICAgIH0KIAogICAgIGlubGluZSB2b2lkIFJlZ2lzdGVyRmlsZTo6c2hyaW5rKFJlZ2lzdGVy
KiBuZXdFbmQpCkBAIC0xODksMjggKzEwMywyNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
aWYgKG5ld0VuZCA+PSBtX2VuZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9lbmQg
PSBuZXdFbmQ7Ci0gICAgICAgIGlmIChtX2VuZCA9PSBtX3N0YXJ0ICYmIChtX21heFVzZWQgLSBt
X3N0YXJ0KSA+IG1heEV4Y2Vzc0NhcGFjaXR5KQorICAgICAgICBpZiAobV9lbmQgPT0gbV9yZXNl
cnZhdGlvbi5iYXNlKCkgJiYgKG1fY29tbWl0RW5kIC0gYmVnaW4oKSkgPj0gbWF4RXhjZXNzQ2Fw
YWNpdHkpCiAgICAgICAgICAgICByZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKTsKICAgICB9CiAKICAg
ICBpbmxpbmUgYm9vbCBSZWdpc3RlckZpbGU6Omdyb3coUmVnaXN0ZXIqIG5ld0VuZCkKICAgICB7
Ci0gICAgICAgIGlmIChuZXdFbmQgPCBtX2VuZCkKKyAgICAgICAgaWYgKG5ld0VuZCA8PSBtX2Vu
ZCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgCisgICAgICAgIGlmIChu
ZXdFbmQgPD0gbV9jb21taXRFbmQpIHsKKyAgICAgICAgICAgIG1fZW5kID0gbmV3RW5kOwogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgaWYgKG5ld0VuZCA+IG1fbWF4KQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmIChuZXdFbmQgPiBtX2NvbW1pdEVu
ZCkgewotICAgICAgICAgICAgc2l6ZV90IHNpemUgPSByb3VuZFVwQWxsb2NhdGlvblNpemUocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4obmV3RW5kKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1f
Y29tbWl0RW5kKSwgY29tbWl0U2l6ZSk7Ci0gICAgICAgICAgICBtX3Jlc2VydmF0aW9uLmNvbW1p
dChtX2NvbW1pdEVuZCwgc2l6ZSk7Ci0gICAgICAgICAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3Vu
dChzdGF0aWNfY2FzdDxsb25nPihzaXplKSk7Ci0gICAgICAgICAgICBtX2NvbW1pdEVuZCA9IHJl
aW50ZXJwcmV0X2Nhc3RfcHRyPFJlZ2lzdGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9j
b21taXRFbmQpICsgc2l6ZSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAobmV3RW5kID4gbV9t
YXhVc2VkKQotICAgICAgICAgICAgbV9tYXhVc2VkID0gbmV3RW5kOworICAgICAgICBsb25nIGRl
bHRhID0gcm91bmRVcEFsbG9jYXRpb25TaXplKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG5ld0Vu
ZCkgLSByZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdEVuZCksIGNvbW1pdFNpemUpOwor
ICAgICAgICBpZiAocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpICsgZGVsdGEg
PiBzdGF0aWNfY2FzdDxjaGFyKj4obV9yZXNlcnZhdGlvbi5iYXNlKCkpICsgbV9yZXNlcnZhdGlv
bi5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAgICAgbV9yZXNlcnZh
dGlvbi5jb21taXQobV9jb21taXRFbmQsIGRlbHRhKTsKKyAgICAgICAgYWRkVG9Db21taXR0ZWRC
eXRlQ291bnQoZGVsdGEpOworICAgICAgICBtX2NvbW1pdEVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Rf
cHRyPFJlZ2lzdGVyKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRFbmQpICsgZGVs
dGEpOwogICAgICAgICBtX2VuZCA9IG5ld0VuZDsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxEYXRhLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbERhdGEu
Y3BwCShyZXZpc2lvbiA4OTM5MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsRGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw3ICsxOTcsNyBAQCBKU0dsb2Jh
bERhdGE6OkpTR2xvYmFsRGF0YShHbG9iYWxEYXRhVHlwCiAgICAgLCBleGNsdXNpdmVUaHJlYWQo
MCkKICNlbmRpZgogewotICAgIGludGVycHJldGVyID0gbmV3IEludGVycHJldGVyKCp0aGlzKTsK
KyAgICBpbnRlcnByZXRlciA9IG5ldyBJbnRlcnByZXRlcjsKICAgICBpZiAoZ2xvYmFsRGF0YVR5
cGUgPT0gRGVmYXVsdCkKICAgICAgICAgbV9zdGFjayA9IHd0ZlRocmVhZERhdGEoKS5zdGFjaygp
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3QuY3BwCShyZXZpc2lvbiA4OTM5MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDU4ICszNzgsMjEg
QEAgYm9vbCBKU0dsb2JhbE9iamVjdDo6aXNEeW5hbWljU2NvcGUoYm9vbAogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEpTR2xvYmFsT2JqZWN0Ojpjb3B5R2xvYmFsc0Zyb20oUmVnaXN0ZXJG
aWxlJiByZWdpc3RlckZpbGUpCit2b2lkIEpTR2xvYmFsT2JqZWN0OjpyZXNpemVSZWdpc3RlcnMo
c2l6ZV90IG5ld1NpemUpCiB7Ci0gICAgQVNTRVJUKCFtX3JlZ2lzdGVyQXJyYXkpOwotICAgIEFT
U0VSVCghbV9yZWdpc3RlckFycmF5U2l6ZSk7Ci0KLSAgICBpbnQgbnVtR2xvYmFscyA9IHJlZ2lz
dGVyRmlsZS5udW1HbG9iYWxzKCk7Ci0gICAgaWYgKCFudW1HbG9iYWxzKSB7Ci0gICAgICAgIG1f
cmVnaXN0ZXJzID0gMDsKKyAgICAvLyBQcmV2aW91cyBkdXBsaWNhdGUgc3ltYm9scyBtYXkgaGF2
ZSBjcmVhdGVkIHNwYXJlIGNhcGFjaXR5IGluIG1fcmVnaXN0ZXJBcnJheS4KKyAgICBpZiAobmV3
U2l6ZSA8PSBtX3JlZ2lzdGVyQXJyYXlTaXplKQogICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFVua25vd24+ID4gcmVnaXN0ZXJBcnJheSA9IGNv
cHlSZWdpc3RlckFycmF5KGdsb2JhbERhdGEoKSwgcmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qPihyZWdpc3RlckZpbGUubGFzdEdsb2JhbCgpKSwgbnVtR2xvYmFscywgbnVt
R2xvYmFscyk7Ci0gICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiByZWdpc3RlcnMgPSByZWdpc3Rl
ckFycmF5LmdldCgpICsgbnVtR2xvYmFsczsKLSAgICBzZXRSZWdpc3RlcnMocmVnaXN0ZXJzLCBy
ZWdpc3RlckFycmF5LnJlbGVhc2UoKSwgbnVtR2xvYmFscyk7Ci19Ci0KLXZvaWQgSlNHbG9iYWxP
YmplY3Q6OmNvcHlHbG9iYWxzVG8oUmVnaXN0ZXJGaWxlJiByZWdpc3RlckZpbGUpCi17Ci0gICAg
SlNHbG9iYWxPYmplY3QqIGxhc3RHbG9iYWxPYmplY3QgPSByZWdpc3RlckZpbGUuZ2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgaWYgKGxhc3RHbG9iYWxPYmplY3QgJiYgbGFzdEdsb2JhbE9iamVjdCAhPSB0
aGlzKQotICAgICAgICBsYXN0R2xvYmFsT2JqZWN0LT5jb3B5R2xvYmFsc0Zyb20ocmVnaXN0ZXJG
aWxlKTsKIAotICAgIHJlZ2lzdGVyRmlsZS5zZXRHbG9iYWxPYmplY3QodGhpcyk7Ci0gICAgcmVn
aXN0ZXJGaWxlLnNldE51bUdsb2JhbHMoc3ltYm9sVGFibGUoKS5zaXplKCkpOwotCi0gICAgaWYg
KG1fcmVnaXN0ZXJBcnJheSkgewotICAgICAgICAvLyBUaGUgcmVnaXN0ZXIgZmlsZSBpcyBhbHdh
eXMgYSBnYyByb290IHNvIG5vIGJhcnJpZXIgaXMgbmVlZGVkIGhlcmUKLSAgICAgICAgbWVtY3B5
KHJlZ2lzdGVyRmlsZS5zdGFydCgpIC0gbV9yZWdpc3RlckFycmF5U2l6ZSwgbV9yZWdpc3RlckFy
cmF5LmdldCgpLCBtX3JlZ2lzdGVyQXJyYXlTaXplICogc2l6ZW9mKFdyaXRlQmFycmllcjxVbmtu
b3duPikpOwotICAgICAgICBzZXRSZWdpc3RlcnMocmVpbnRlcnByZXRfY2FzdDxXcml0ZUJhcnJp
ZXI8VW5rbm93bj4qPihyZWdpc3RlckZpbGUuc3RhcnQoKSksIG51bGxwdHIsIDApOwotICAgIH0K
LX0KLQotdm9pZCBKU0dsb2JhbE9iamVjdDo6cmVzaXplUmVnaXN0ZXJzKGludCBvbGRTaXplLCBp
bnQgbmV3U2l6ZSkKLXsKLSAgICBBU1NFUlQob2xkU2l6ZSA8PSBuZXdTaXplKTsKLSAgICBpZiAo
bmV3U2l6ZSA9PSBvbGRTaXplKQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG5ld1NpemUg
JiYgbmV3U2l6ZSA+IG9sZFNpemUpOwotICAgIGlmIChtX3JlZ2lzdGVyQXJyYXkgfHwgIW1fcmVn
aXN0ZXJzKSB7Ci0gICAgICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+KG9sZFNpemUpID09
IG1fcmVnaXN0ZXJBcnJheVNpemUpOwotICAgICAgICBPd25BcnJheVB0cjxXcml0ZUJhcnJpZXI8
VW5rbm93bj4gPiByZWdpc3RlckFycmF5ID0gYWRvcHRBcnJheVB0cihuZXcgV3JpdGVCYXJyaWVy
PFVua25vd24+W25ld1NpemVdKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvbGRTaXpl
OyBpKyspCi0gICAgICAgICAgICByZWdpc3RlckFycmF5W25ld1NpemUgLSBvbGRTaXplICsgaV0u
c2V0KGdsb2JhbERhdGEoKSwgdGhpcywgbV9yZWdpc3RlckFycmF5W2ldLmdldCgpKTsKLSAgICAg
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiByZWdpc3RlcnMgPSByZWdpc3RlckFycmF5LmdldCgp
ICsgbmV3U2l6ZTsKLSAgICAgICAgc2V0UmVnaXN0ZXJzKHJlZ2lzdGVycywgcmVnaXN0ZXJBcnJh
eS5yZWxlYXNlKCksIG5ld1NpemUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVChzdGF0
aWNfY2FzdDxzaXplX3Q+KG5ld1NpemUpIDwgZ2xvYmFsRGF0YSgpLmludGVycHJldGVyLT5yZWdp
c3RlckZpbGUoKS5tYXhHbG9iYWxzKCkpOwotICAgICAgICBnbG9iYWxEYXRhKCkuaW50ZXJwcmV0
ZXItPnJlZ2lzdGVyRmlsZSgpLnNldE51bUdsb2JhbHMobmV3U2l6ZSk7Ci0gICAgfQorICAgIHNp
emVfdCBvbGRTaXplID0gbV9yZWdpc3RlckFycmF5U2l6ZTsKKyAgICBPd25BcnJheVB0cjxXcml0
ZUJhcnJpZXI8VW5rbm93bj4gPiByZWdpc3RlckFycmF5ID0gYWRvcHRBcnJheVB0cihuZXcgV3Jp
dGVCYXJyaWVyPFVua25vd24+W25ld1NpemVdKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG9sZFNpemU7ICsraSkKKyAgICAgICAgcmVnaXN0ZXJBcnJheVtpXS5zZXQoZ2xvYmFsRGF0YSgp
LCB0aGlzLCBtX3JlZ2lzdGVyQXJyYXlbaV0uZ2V0KCkpOworICAgIGZvciAoc2l6ZV90IGkgPSBv
bGRTaXplOyBpIDwgbmV3U2l6ZTsgKytpKQorICAgICAgICByZWdpc3RlckFycmF5W2ldLnNldFVu
ZGVmaW5lZCgpOwogCi0gICAgZm9yIChpbnQgaSA9IC1uZXdTaXplOyBpIDwgLW9sZFNpemU7ICsr
aSkKLSAgICAgICAgbV9yZWdpc3RlcnNbaV0uc2V0VW5kZWZpbmVkKCk7CisgICAgV3JpdGVCYXJy
aWVyPFVua25vd24+KiByZWdpc3RlcnMgPSByZWdpc3RlckFycmF5LmdldCgpOworICAgIHNldFJl
Z2lzdGVycyhyZWdpc3RlcnMsIHJlZ2lzdGVyQXJyYXkucmVsZWFzZSgpLCBuZXdTaXplKTsKIH0K
IAogdm9pZCogSlNHbG9iYWxPYmplY3Q6Om9wZXJhdG9yIG5ldyhzaXplX3Qgc2l6ZSwgSlNHbG9i
YWxEYXRhKiBnbG9iYWxEYXRhKQpAQCAtNDM5LDIwICs0MDIsMTMgQEAgdm9pZCogSlNHbG9iYWxP
YmplY3Q6Om9wZXJhdG9yIG5ldyhzaXplXwogCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjphZGRTdGF0
aWNHbG9iYWxzKEdsb2JhbFByb3BlcnR5SW5mbyogZ2xvYmFscywgaW50IGNvdW50KQogewotICAg
IHNpemVfdCBvbGRTaXplID0gbV9yZWdpc3RlckFycmF5U2l6ZTsKLSAgICBzaXplX3QgbmV3U2l6
ZSA9IG9sZFNpemUgKyBjb3VudDsKLSAgICBPd25BcnJheVB0cjxXcml0ZUJhcnJpZXI8VW5rbm93
bj4gPiByZWdpc3RlckFycmF5ID0gYWRvcHRBcnJheVB0cihuZXcgV3JpdGVCYXJyaWVyPFVua25v
d24+W25ld1NpemVdKTsKLSAgICBpZiAobV9yZWdpc3RlckFycmF5KSB7Ci0gICAgICAgIC8vIG1l
bWNweSBpcyBzYWZlIGhlcmUgYXMgd2UncmUgY29weWluZyBiYXJyaWVycyB3ZSBhbHJlYWR5IG93
biBmcm9tIHRoZSBleGlzdGluZyBhcnJheQotICAgICAgICBtZW1jcHkocmVnaXN0ZXJBcnJheS5n
ZXQoKSArIGNvdW50LCBtX3JlZ2lzdGVyQXJyYXkuZ2V0KCksIG9sZFNpemUgKiBzaXplb2YoUmVn
aXN0ZXIpKTsKLSAgICB9Ci0KLSAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVycyA9
IHJlZ2lzdGVyQXJyYXkuZ2V0KCkgKyBuZXdTaXplOwotICAgIHNldFJlZ2lzdGVycyhyZWdpc3Rl
cnMsIHJlZ2lzdGVyQXJyYXkucmVsZWFzZSgpLCBuZXdTaXplKTsKKyAgICByZXNpemVSZWdpc3Rl
cnMoc3ltYm9sVGFibGUoKS5zaXplKCkgKyBjb3VudCk7CiAKLSAgICBmb3IgKGludCBpID0gMCwg
aW5kZXggPSAtc3RhdGljX2Nhc3Q8aW50PihvbGRTaXplKSAtIDE7IGkgPCBjb3VudDsgKytpLCAt
LWluZGV4KSB7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAg
IEdsb2JhbFByb3BlcnR5SW5mbyYgZ2xvYmFsID0gZ2xvYmFsc1tpXTsKICAgICAgICAgQVNTRVJU
KGdsb2JhbC5hdHRyaWJ1dGVzICYgRG9udERlbGV0ZSk7CisgICAgICAgIAorICAgICAgICBpbnQg
aW5kZXggPSBzeW1ib2xUYWJsZSgpLnNpemUoKTsKICAgICAgICAgU3ltYm9sVGFibGVFbnRyeSBu
ZXdFbnRyeShpbmRleCwgZ2xvYmFsLmF0dHJpYnV0ZXMpOwogICAgICAgICBzeW1ib2xUYWJsZSgp
LmFkZChnbG9iYWwuaWRlbnRpZmllci5pbXBsKCksIG5ld0VudHJ5KTsKICAgICAgICAgcmVnaXN0
ZXJBdChpbmRleCkuc2V0KGdsb2JhbERhdGEoKSwgdGhpcywgZ2xvYmFsLnZhbHVlKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAkocmV2
aXNpb24gODkzOTEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzgsOSArMjM4LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgc2V0RXZhbEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZXZhbEVuYWJs
ZWQgPSBlbmFibGVkOyB9CiAgICAgICAgIGJvb2wgZXZhbEVuYWJsZWQoKSB7IHJldHVybiBtX2V2
YWxFbmFibGVkOyB9CiAKLSAgICAgICAgdm9pZCBjb3B5R2xvYmFsc0Zyb20oUmVnaXN0ZXJGaWxl
Jik7Ci0gICAgICAgIHZvaWQgY29weUdsb2JhbHNUbyhSZWdpc3RlckZpbGUmKTsKLSAgICAgICAg
dm9pZCByZXNpemVSZWdpc3RlcnMoaW50IG9sZFNpemUsIGludCBuZXdTaXplKTsKKyAgICAgICAg
dm9pZCByZXNpemVSZWdpc3RlcnMoc2l6ZV90IG5ld1NpemUpOwogCiAgICAgICAgIHZvaWQgcmVz
ZXRQcm90b3R5cGUoSlNHbG9iYWxEYXRhJiwgSlNWYWx1ZSBwcm90b3R5cGUpOwogCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4OTM5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA2LTIxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlZCB0aGUgY29uY2VpdCB0aGF0IGdsb2JhbCB2YXJpYWJsZXMgYXJlIGxvY2FsIHZh
cmlhYmxlcyB3aGVuIHJ1bm5pbmcgZ2xvYmFsIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTA2CisgICAgICAgIAorICAgICAgICAqIGZhc3Qv
anMvcmVjdXJzaW9uLWxpbWl0LWVxdWFsLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB0byByZWZsZWN0
IHNsaWdodGx5CisgICAgICAgIGNoYW5nZWQgcmVjdXJzaW9uIGxpbWl0LgorCiAyMDExLTA2LTIx
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBmYWls
aW5nIHRlc3QgZXhwZWN0YXRpb25zIGZyb20gdmFyaW91cyB0ZXN0cyBmb3IgQ2hyb21pdW0gV2lu
ZG93cy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvcmVjdXJzaW9uLWxpbWl0LWVxdWFsLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3JlY3Vyc2lvbi1s
aW1pdC1lcXVhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDg5MjkxKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy9yZWN1cnNpb24tbGltaXQtZXF1YWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDExOiBSYW5nZUVycm9yOiBN
YXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5
OiBSYW5nZUVycm9yOiBNYXhpbXVtIGNhbGwgc3RhY2sgc2l6ZSBleGNlZWRlZC4KIFRlc3RzIGhp
dHRpbmcgdGhlIHJlY3Vyc2lvbiBsaW1pdCB3aXRoIGVxdWFsaXR5IGNvbXBhcmlzb25zLiBBdCBv
bmUgcG9pbnQgdGhpcyBjcmFzaGVkIGR1ZSB0byBsYWNrIG9mIGV4Y2VwdGlvbiBjaGVja2luZyBp
bnNpZGUgdGhlIGVuZ2luZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgo=
</data>
<flag name="review"
          id="92209"
          type_id="1"
          status="+"
          setter="oliver"
    />
    <flag name="commit-queue"
          id="92211"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>