<?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>145834</bug_id>
          
          <creation_ts>2015-06-10 01:23:19 -0700</creation_ts>
          <short_desc>Purge PassRefPtr in JavaScriptCore - 2</short_desc>
          <delta_ts>2015-06-12 20:52:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          <blocked>144092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1100943</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-10 01:23:19 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100944</commentid>
    <comment_count>1</comment_count>
      <attachid>254634</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-10 01:25:08 -0700</bug_when>
    <thetext>Created attachment 254634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101233</commentid>
    <comment_count>2</comment_count>
      <attachid>254709</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-06-10 23:03:27 -0700</bug_when>
    <thetext>Created attachment 254709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101791</commentid>
    <comment_count>3</comment_count>
      <attachid>254709</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-12 20:52:43 -0700</bug_when>
    <thetext>Comment on attachment 254709
Patch

Clearing flags on attachment: 254709

Committed r185532: &lt;http://trac.webkit.org/changeset/185532&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101792</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-12 20:52:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254634</attachid>
            <date>2015-06-10 01:25:08 -0700</date>
            <delta_ts>2015-06-10 23:03:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145834-20150610172442.patch</filename>
            <type>text/plain</type>
            <size>42749</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1Mzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
MzhkNTMwODRiMzNhNTNiNTBmM2U0NGQwY2JmNzdjZDA2YzRmNjQ2Li5kNjYzYjg4YTY5M2Y1MTYw
ODk1ZGQ0OTdjM2YzOTRhZWY2NTIzODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OCBAQAorMjAxNS0wNi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZSAtIDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTgzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgc3Rl
cCB0byByZW1vdmUgUGFzc1JlZlB0ciwgdGhpcyBwYXRjaCBjbGVhbnMgdXAgUGFzc1JlZlB0ciBh
cyBtdWNoIGFzIHBvc3NpYmxlCisgICAgICAgIGluIEphdmFTY3JpcHRDb3JlLgorCisgICAgICAg
ICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3BhcXVlSlNDbGFzczo6Y3JlYXRlKToK
KyAgICAgICAgKiBBUEkvSlNDbGFzc1JlZi5oOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRl
Y29kZUdlbmVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjpuZXdM
YWJlbCk6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TGFiZWwpOgorICAg
ICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXApOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUpOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNlKToKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRKdW1wSWZOb3RGdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZk5vdEZ1bmN0aW9uQXBwbHkpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdENvbXBsZXhQb3BTY29wZXMpOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEVudW1lcmF0aW9uKToKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXROb2RlRm9yTGVmdEhhbmRTaWRlKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcDoKKyAgICAgICAgKEpTQzo6VHJ5Tm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAgICAg
ICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHA6CisgICAgICAgIChKU0M6OkRlYnVn
Z2VyQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZSk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJD
YWxsRnJhbWUuaDoKKyAgICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpKSVRDb21waWxlcjo6aml0Q29kZSk6CisgICAgICAgICogaW5zcGVjdG9yL1Njcmlw
dENhbGxTdGFja0ZhY3RvcnkuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRD
YWxsU3RhY2spOgorICAgICAgICAoSW5zcGVjdG9yOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JD
b25zb2xlKToKKyAgICAgICAgKEluc3BlY3Rvcjo6Y3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbik6CisgICAgICAgIChJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdEFyZ3VtZW50cyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaDoKKyAgICAgICAgKiBq
aXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxv
Y2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oOgor
ICAgICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3BwOgorICAgICAg
ICAoSlNDOjpFeGVjdXRhYmxlQWxsb2NhdG9yOjphbGxvY2F0ZSk6CisgICAgICAgICogcHJvZmls
ZXIvTGVnYWN5UHJvZmlsZXIuY3BwOgorICAgICAgICAoSlNDOjpMZWdhY3lQcm9maWxlcjo6c3Rv
cFByb2ZpbGluZyk6CisgICAgICAgICogcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDoKKyAgICAg
ICAgKiBydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmg6CisgICAgICAgICogcnVudGltZS9FeGVj
dXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2Nr
Rm9yKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuaDoKKyAgICAgICAgKiBydW50aW1l
L0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkdlbmVyaWNUeXBlZEFycmF5VmlldzxB
ZGFwdG9yPjo6Y3JlYXRlVW5pbml0aWFsaXplZCk6CisKIDIwMTUtMDYtMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBvbmUgc3luYyBHQyBwZXIgZ2NU
aW1lciBpbnRlcnZhbCBvbiBjcml0aWNhbCBtZW1vcnkgcHJlc3N1cmUgd2FybmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDQ1MjczNmEzNTg5YmFhZDIyYThmMmFjNDI4OTJiZWJkZDU2ZWM2NzcuLjFlMDhlMjZk
NzQ5ZjM5N2Y2ZTMwNDIxNmU5MGQwYTk1NDhlYTdhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MiBAQAorMjAxNS0wNi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUHVyZ2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZSAtIDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTgzNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjYWxsIHNpdGVz
IGRlcGVuZHMgb24gY2hhbmdpbmcgb2YgSlNDLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0wyUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJp
bmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6OmdldFBhcmFtZXRlcik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjpnZXRVbmlmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmdldFZlcnRleEF0dHJpYik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJhbWV0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRl
cik6CisKIDIwMTUtMDYtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTihyMTgwODY3KTogVGFiYmluZyB0byBsb2dpbiBmaWVsZCBvbiBpQ2xv
dWQuY29tIGRvZXNuJ3QgaGF2ZSBoaWdobGlnaHQgZm9yIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2xhc3NSZWYuY3BwCmluZGV4IGE4ZTdjYjdkNDU1ZDJkMDFiOTQ5MjZmMjM4YTFj
ZTBiM2ExMTI4YzkuLmUwZGJlNjA0MzdkYTBkN2VhNjFjMjc4M2EwYzZkYzA5NDc4MWI5ZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmNwcApAQCAtMTEzLDcgKzExMyw3
IEBAIFJlZjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGVOb0F1dG9tYXRpY1By
b3RvdHlwZShjb25zdCBKU0NsYXNzRGVmaW5pCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3Bh
cXVlSlNDbGFzcyhkZWZpbml0aW9uLCAwKSk7CiB9CiAKLVBhc3NSZWZQdHI8T3BhcXVlSlNDbGFz
cz4gT3BhcXVlSlNDbGFzczo6Y3JlYXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBjbGllbnRE
ZWZpbml0aW9uKQorUmVmPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xhc3M6OmNyZWF0ZShjb25z
dCBKU0NsYXNzRGVmaW5pdGlvbiogY2xpZW50RGVmaW5pdGlvbikKIHsKICAgICBKU0NsYXNzRGVm
aW5pdGlvbiBkZWZpbml0aW9uID0gKmNsaWVudERlZmluaXRpb247IC8vIEF2b2lkIG1vZGlmeWlu
ZyBjbGllbnQgY29weS4KIApAQCAtMTI0LDcgKzEyNCw3IEBAIFBhc3NSZWZQdHI8T3BhcXVlSlND
bGFzcz4gT3BhcXVlSlNDbGFzczo6Y3JlYXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKiBjbGll
bnRECiAgICAgLy8gV2UgYXJlIHN1cHBvc2VkIHRvIHVzZSBKU0NsYXNzUmV0YWluL1JlbGVhc2Ug
YnV0IHNpbmNlIHdlIGtub3cgdGhhdCB3ZSBjdXJyZW50bHkgaGF2ZQogICAgIC8vIHRoZSBvbmx5
IHJlZmVyZW5jZSB0byB0aGlzIGNsYXNzIG9iamVjdCB3ZSBjaGVhdCBhbmQgdXNlIGEgUmVmUHRy
IGluc3RlYWQuCiAgICAgUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IHByb3RvQ2xhc3MgPSBhZG9wdFJl
ZihuZXcgT3BhcXVlSlNDbGFzcygmcHJvdG9EZWZpbml0aW9uLCAwKSk7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBPcGFxdWVKU0NsYXNzKCZkZWZpbml0aW9uLCBwcm90b0NsYXNzLmdldCgpKSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgT3BhcXVlSlNDbGFzcygmZGVmaW5pdGlvbiwgcHJv
dG9DbGFzcy5nZXQoKSkpOwogfQogCiBPcGFxdWVKU0NsYXNzQ29udGV4dERhdGE6Ok9wYXF1ZUpT
Q2xhc3NDb250ZXh0RGF0YShKU0M6OlZNJiwgT3BhcXVlSlNDbGFzcyoganNDbGFzcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKaW5kZXggNjg3ZDhiOWI5NGQ5MTgzYjhhNjk5
MzA5MzAyZTdiZGZkNzU0NzZlYi4uZmEwMjRkMzQ0ZjQ2YzUxYmFkMjBlMTU0MGZhZmU5MmFhNWFj
YzE5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNzUmVmLmgKQEAgLTg1LDcgKzg1
LDcgQEAgcHVibGljOgogfTsKIAogc3RydWN0IE9wYXF1ZUpTQ2xhc3MgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8T3BhcXVlSlNDbGFzcz4gewotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE9w
YXF1ZUpTQ2xhc3M+IGNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiopOworICAgIHN0YXRp
YyBSZWY8T3BhcXVlSlNDbGFzcz4gY3JlYXRlKGNvbnN0IEpTQ2xhc3NEZWZpbml0aW9uKik7CiAg
ICAgc3RhdGljIFJlZjxPcGFxdWVKU0NsYXNzPiBjcmVhdGVOb0F1dG9tYXRpY1Byb3RvdHlwZShj
b25zdCBKU0NsYXNzRGVmaW5pdGlvbiopOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIH5PcGFxdWVK
U0NsYXNzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
bXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCmluZGV4IGFiYmE1NDlhOTMwMzM0MGM5M2Yz
MWJiNzZjZmYwYTg5OTY5Nzk0YTkuLjZmYjY2NDcyNmVjNzlmMTdlOWJhMWRhY2ZkYTZmNTliZTFk
YzlhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCkBAIC01ODcsNyArNTg3LDcgQEAgTGFiZWxTY29wZVB0
ciBCeXRlY29kZUdlbmVyYXRvcjo6bmV3TGFiZWxTY29wZShMYWJlbFNjb3BlOjpUeXBlIHR5cGUs
IGNvbnN0IElkZW4KICAgICByZXR1cm4gTGFiZWxTY29wZVB0cihtX2xhYmVsU2NvcGVzLCBtX2xh
YmVsU2NvcGVzLnNpemUoKSAtIDEpOwogfQogCi1QYXNzUmVmUHRyPExhYmVsPiBCeXRlY29kZUdl
bmVyYXRvcjo6bmV3TGFiZWwoKQorUmVmPExhYmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6bmV3TGFi
ZWwoKQogewogICAgIC8vIFJlY2xhaW0gZnJlZSBsYWJlbCBJRHMuCiAgICAgd2hpbGUgKG1fbGFi
ZWxzLnNpemUoKSAmJiAhbV9sYWJlbHMubGFzdCgpLnJlZkNvdW50KCkpCkBAIC01OTUsMTAgKzU5
NSwxMCBAQCBQYXNzUmVmUHRyPExhYmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6bmV3TGFiZWwoKQog
CiAgICAgLy8gQWxsb2NhdGUgbmV3IGxhYmVsIElELgogICAgIG1fbGFiZWxzLmFwcGVuZCgqdGhp
cyk7Ci0gICAgcmV0dXJuICZtX2xhYmVscy5sYXN0KCk7CisgICAgcmV0dXJuIG1fbGFiZWxzLmxh
c3QoKTsKIH0KIAotUGFzc1JlZlB0cjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRMYWJl
bChMYWJlbCogbDApCitSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0TGFiZWwo
TGFiZWwqIGwwKQogewogICAgIHVuc2lnbmVkIG5ld0xhYmVsSW5kZXggPSBpbnN0cnVjdGlvbnMo
KS5zaXplKCk7CiAgICAgbDAtPnNldExvY2F0aW9uKG5ld0xhYmVsSW5kZXgpOwpAQCAtNjg4LDE1
ICs2ODgsMTUgQEAgdm9pZCBBTFdBWVNfSU5MSU5FIEJ5dGVjb2RlR2VuZXJhdG9yOjpyZXdpbmRV
bmFyeU9wKCkKICAgICBtX2xhc3RPcGNvZGVJRCA9IG9wX2VuZDsKIH0KIAotUGFzc1JlZlB0cjxM
YWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wKExhYmVsKiB0YXJnZXQpCitSZWY8TGFi
ZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcChMYWJlbCogdGFyZ2V0KQogewogICAgIHNp
emVfdCBiZWdpbiA9IGluc3RydWN0aW9ucygpLnNpemUoKTsKICAgICBlbWl0T3Bjb2RlKG9wX2pt
cCk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC0+YmluZChiZWdpbiwgaW5zdHJ1
Y3Rpb25zKCkuc2l6ZSgpKSk7Ci0gICAgcmV0dXJuIHRhcmdldDsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKnRhcmdldCk7CiB9CiAKLVBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCogdGFyZ2V0KQorUmVmPExhYmVs
PiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwgTGFi
ZWwqIHRhcmdldCkKIHsKICAgICBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfbGVzcykgewogICAg
ICAgICBpbnQgZHN0SW5kZXg7CkBAIC03MTMsNyArNzEzLDcgQEAgUGFzc1JlZlB0cjxMYWJlbD4g
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZUcnVlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVs
KiB0YXIKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMxSW5kZXgpOwogICAg
ICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzJJbmRleCk7CiAgICAgICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5z
aXplKCkpKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKnRhcmdldCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29k
ZUlEID09IG9wX2xlc3NlcSkgewogICAgICAgICBpbnQgZHN0SW5kZXg7CkBAIC03MzAsNyArNzMw
LDcgQEAgUGFzc1JlZlB0cjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZUcnVl
KFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YXIKICAgICAgICAgICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChzcmMxSW5kZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHNy
YzJJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5iaW5k
KGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJn
ZXQ7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKnRhcmdldCk7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2dyZWF0ZXIpIHsKICAgICAgICAgaW50
IGRzdEluZGV4OwpAQCAtNzQ3LDcgKzc0Nyw3IEBAIFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCogdGFyCiAg
ICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoc3JjMUluZGV4KTsKICAgICAgICAgICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMySW5kZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKHRhcmdldC0+YmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7
Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCp0YXJnZXQpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBv
cF9ncmVhdGVyZXEpIHsKICAgICAgICAgaW50IGRzdEluZGV4OwpAQCAtNzY0LDcgKzc2NCw3IEBA
IFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdp
c3RlcklEKiBjb25kLCBMYWJlbCogdGFyCiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoc3JjMUluZGV4KTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMySW5k
ZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC0+YmluZChiZWdp
biwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Owor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCp0YXJnZXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9lcV9udWxsICYmIHRhcmdldC0+aXNGb3J3YXJk
KCkpIHsKICAgICAgICAgaW50IGRzdEluZGV4OwpAQCAtNzc5LDcgKzc3OSw3IEBAIFBhc3NSZWZQ
dHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBj
b25kLCBMYWJlbCogdGFyCiAgICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX2plcV9udWxsKTsKICAg
ICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmNJbmRleCk7CiAgICAgICAgICAgICBp
bnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5z
aXplKCkpKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKnRhcmdldCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29k
ZUlEID09IG9wX25lcV9udWxsICYmIHRhcmdldC0+aXNGb3J3YXJkKCkpIHsKICAgICAgICAgaW50
IGRzdEluZGV4OwpAQCAtNzk0LDcgKzc5NCw3IEBAIFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2Rl
R2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCogdGFyCiAg
ICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX2puZXFfbnVsbCk7CiAgICAgICAgICAgICBpbnN0cnVj
dGlvbnMoKS5hcHBlbmQoc3JjSW5kZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKHRhcmdldC0+YmluZChiZWdpbiwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gdGFyZ2V0OworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCp0YXJnZXQp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC04MDMsMTAgKzgwMywxMCBAQCBQYXNzUmVmUHRyPExh
YmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwg
TGFiZWwqIHRhcgogICAgIGVtaXRPcGNvZGUob3BfanRydWUpOwogICAgIGluc3RydWN0aW9ucygp
LmFwcGVuZChjb25kLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0
LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAgICByZXR1cm4gdGFyZ2V0
OworICAgIHJldHVybiBhZG9wdFJlZigqdGFyZ2V0KTsKIH0KIAotUGFzc1JlZlB0cjxMYWJlbD4g
Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZGYWxzZShSZWdpc3RlcklEKiBjb25kLCBMYWJl
bCogdGFyZ2V0KQorUmVmPExhYmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNl
KFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YXJnZXQpCiB7CiAgICAgaWYgKG1fbGFzdE9wY29k
ZUlEID09IG9wX2xlc3MgJiYgdGFyZ2V0LT5pc0ZvcndhcmQoKSkgewogICAgICAgICBpbnQgZHN0
SW5kZXg7CkBAIC04MjMsNyArODIzLDcgQEAgUGFzc1JlZlB0cjxMYWJlbD4gQnl0ZWNvZGVHZW5l
cmF0b3I6OmVtaXRKdW1wSWZGYWxzZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCogdGEKICAgICAg
ICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMxSW5kZXgpOwogICAgICAgICAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzJJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAg
ICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKnRh
cmdldCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2xl
c3NlcSAmJiB0YXJnZXQtPmlzRm9yd2FyZCgpKSB7CiAgICAgICAgIGludCBkc3RJbmRleDsKQEAg
LTg0MCw3ICs4NDAsNyBAQCBQYXNzUmVmUHRyPExhYmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dEp1bXBJZkZhbHNlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YQogICAgICAgICAgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHNyYzFJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMo
KS5hcHBlbmQoc3JjMkluZGV4KTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0
YXJnZXQtPmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwotICAgICAgICAgICAg
cmV0dXJuIHRhcmdldDsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqdGFyZ2V0KTsKICAg
ICAgICAgfQogICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfZ3JlYXRlciAmJiB0
YXJnZXQtPmlzRm9yd2FyZCgpKSB7CiAgICAgICAgIGludCBkc3RJbmRleDsKQEAgLTg1Nyw3ICs4
NTcsNyBAQCBQYXNzUmVmUHRyPExhYmVsPiBCeXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZh
bHNlKFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YQogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25z
KCkuYXBwZW5kKHNyYzFJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQo
c3JjMkluZGV4KTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJp
bmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRh
cmdldDsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZigqdGFyZ2V0KTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfZ3JlYXRlcmVxICYmIHRhcmdldC0+
aXNGb3J3YXJkKCkpIHsKICAgICAgICAgaW50IGRzdEluZGV4OwpAQCAtODc0LDcgKzg3NCw3IEBA
IFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UoUmVn
aXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhCiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoc3JjMUluZGV4KTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmMySW5k
ZXgpOwogICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHRhcmdldC0+YmluZChiZWdp
biwgaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gdGFyZ2V0Owor
ICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCp0YXJnZXQpOwogICAgICAgICB9CiAgICAgfSBl
bHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9ub3QpIHsKICAgICAgICAgaW50IGRzdEluZGV4
OwpAQCAtODg5LDcgKzg4OSw3IEBAIFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9y
OjplbWl0SnVtcElmRmFsc2UoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhCiAgICAgICAgICAg
ICBlbWl0T3Bjb2RlKG9wX2p0cnVlKTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVu
ZChzcmNJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5i
aW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAgICAgICAgICAgIHJldHVybiB0
YXJnZXQ7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKnRhcmdldCk7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX2VxX251bGwgJiYgdGFyZ2V0LT5p
c0ZvcndhcmQoKSkgewogICAgICAgICBpbnQgZHN0SW5kZXg7CkBAIC05MDQsNyArOTA0LDcgQEAg
UGFzc1JlZlB0cjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZGYWxzZShSZWdp
c3RlcklEKiBjb25kLCBMYWJlbCogdGEKICAgICAgICAgICAgIGVtaXRPcGNvZGUob3Bfam5lcV9u
dWxsKTsKICAgICAgICAgICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChzcmNJbmRleCk7CiAgICAg
ICAgICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVj
dGlvbnMoKS5zaXplKCkpKTsKLSAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKnRhcmdldCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKG1f
bGFzdE9wY29kZUlEID09IG9wX25lcV9udWxsICYmIHRhcmdldC0+aXNGb3J3YXJkKCkpIHsKICAg
ICAgICAgaW50IGRzdEluZGV4OwpAQCAtOTE5LDcgKzkxOSw3IEBAIFBhc3NSZWZQdHI8TGFiZWw+
IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UoUmVnaXN0ZXJJRCogY29uZCwgTGFi
ZWwqIHRhCiAgICAgICAgICAgICBlbWl0T3Bjb2RlKG9wX2plcV9udWxsKTsKICAgICAgICAgICAg
IGluc3RydWN0aW9ucygpLmFwcGVuZChzcmNJbmRleCk7CiAgICAgICAgICAgICBpbnN0cnVjdGlv
bnMoKS5hcHBlbmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsK
LSAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
KnRhcmdldCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTkyNywxMCArOTI3LDEwIEBAIFBhc3NS
ZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmRmFsc2UoUmVnaXN0ZXJJ
RCogY29uZCwgTGFiZWwqIHRhCiAgICAgZW1pdE9wY29kZShvcF9qZmFsc2UpOwogICAgIGluc3Ry
dWN0aW9ucygpLmFwcGVuZChjb25kLT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQodGFyZ2V0LT5iaW5kKGJlZ2luLCBpbnN0cnVjdGlvbnMoKS5zaXplKCkpKTsKLSAgICByZXR1
cm4gdGFyZ2V0OworICAgIHJldHVybiBhZG9wdFJlZigqdGFyZ2V0KTsKIH0KIAotUGFzc1JlZlB0
cjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZOb3RGdW5jdGlvbkNhbGwoUmVn
aXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhcmdldCkKK1JlZjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0
b3I6OmVtaXRKdW1wSWZOb3RGdW5jdGlvbkNhbGwoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRh
cmdldCkKIHsKICAgICBzaXplX3QgYmVnaW4gPSBpbnN0cnVjdGlvbnMoKS5zaXplKCk7CiAKQEAg
LTkzOCwxMCArOTM4LDEwIEBAIFBhc3NSZWZQdHI8TGFiZWw+IEJ5dGVjb2RlR2VuZXJhdG9yOjpl
bWl0SnVtcElmTm90RnVuY3Rpb25DYWxsKFJlZ2lzdGVySUQqIGNvbmQsCiAgICAgaW5zdHJ1Y3Rp
b25zKCkuYXBwZW5kKGNvbmQtPmluZGV4KCkpOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChT
cGVjaWFsOjpDYWxsRnVuY3Rpb24pOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQt
PmJpbmQoYmVnaW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwotICAgIHJldHVybiB0YXJnZXQ7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCp0YXJnZXQpOwogfQogCi1QYXNzUmVmUHRyPExhYmVsPiBC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZk5vdEZ1bmN0aW9uQXBwbHkoUmVnaXN0ZXJJRCog
Y29uZCwgTGFiZWwqIHRhcmdldCkKK1JlZjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRK
dW1wSWZOb3RGdW5jdGlvbkFwcGx5KFJlZ2lzdGVySUQqIGNvbmQsIExhYmVsKiB0YXJnZXQpCiB7
CiAgICAgc2l6ZV90IGJlZ2luID0gaW5zdHJ1Y3Rpb25zKCkuc2l6ZSgpOwogCkBAIC05NDksNyAr
OTQ5LDcgQEAgUGFzc1JlZlB0cjxMYWJlbD4gQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1wSWZO
b3RGdW5jdGlvbkFwcGx5KFJlZ2lzdGVySUQqIGNvbmQKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoY29uZC0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKFNwZWNpYWw6OkFw
cGx5RnVuY3Rpb24pOwogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZCh0YXJnZXQtPmJpbmQoYmVn
aW4sIGluc3RydWN0aW9ucygpLnNpemUoKSkpOwotICAgIHJldHVybiB0YXJnZXQ7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCp0YXJnZXQpOwogfQogCiBib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjpoYXND
b25zdGFudChjb25zdCBJZGVudGlmaWVyJiBpZGVudCkgY29uc3QKQEAgLTI0MDEsNyArMjQwMSw3
IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRDb21wbGV4UG9wU2NvcGVzKFJlZ2lzdGVy
SUQqIHNjb3BlLCBDb250cm9sRmxvd0NvbnRlCiAgICAgICAgIFZlY3RvcjxUcnlDb250ZXh0PiBw
b3BwZWRUcnlDb250ZXh0czsKICAgICAgICAgTGFiZWxTY29wZVN0b3JlIHNhdmVkTGFiZWxTY29w
ZXM7CiAgICAgICAgIHdoaWxlICh0b3BTY29wZSA+IGJvdHRvbVNjb3BlICYmIHRvcFNjb3BlLT5p
c0ZpbmFsbHlCbG9jaykgewotICAgICAgICAgICAgUmVmUHRyPExhYmVsPiBiZWZvcmVGaW5hbGx5
ID0gZW1pdExhYmVsKG5ld0xhYmVsKCkuZ2V0KCkpOworICAgICAgICAgICAgUmVmUHRyPExhYmVs
PiBiZWZvcmVGaW5hbGx5ID0gZW1pdExhYmVsKG5ld0xhYmVsKCkucHRyKCkpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICAvLyBTYXZlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSB3b3JsZCB3
aGlsZSBpbnN0YXRpbmcgdGhlIHN0YXRlIG9mIHRoZSB3b3JsZAogICAgICAgICAgICAgLy8gZm9y
IHRoZSBmaW5hbGx5IGJsb2NrLgpAQCAtMjQ1OSw3ICsyNDU5LDcgQEAgdm9pZCBCeXRlY29kZUdl
bmVyYXRvcjo6ZW1pdENvbXBsZXhQb3BTY29wZXMoUmVnaXN0ZXJJRCogc2NvcGUsIENvbnRyb2xG
bG93Q29udGUKICAgICAgICAgICAgICAgICBlbWl0SXRlcmF0b3JDbG9zZShmaW5hbGx5Q29udGV4
dC5pdGVyYXRvciwgZmluYWxseUNvbnRleHQuZW51bWVyYXRpb25Ob2RlKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgUmVmUHRyPExhYmVsPiBhZnRlckZpbmFsbHkgPSBlbWl0TGFiZWwo
bmV3TGFiZWwoKS5nZXQoKSk7CisgICAgICAgICAgICBSZWZQdHI8TGFiZWw+IGFmdGVyRmluYWxs
eSA9IGVtaXRMYWJlbChuZXdMYWJlbCgpLnB0cigpKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgLy8gUmVzdG9yZSB0aGUgc3RhdGUgb2YgdGhlIHdvcmxkLgogICAgICAgICAgICAgaWYgKGZs
aXBTY29wZXMpIHsKQEAgLTI3NTksNyArMjc1OSw3IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6
OmVtaXRFbnVtZXJhdGlvbihUaHJvd2FibGVFeHByZXNzaW9uRGF0YSogbm9kZSwgRXhwcmVzc2lv
CiAKICAgICAgICAgLy8gSXRlcmF0b3JDbG9zZSBzZXF1ZW5jZSBmb3IgdGhyb3ctZWQgY29udHJv
bCBmbG93LgogICAgICAgICB7Ci0gICAgICAgICAgICBSZWZQdHI8TGFiZWw+IGNhdGNoSGVyZSA9
IGVtaXRMYWJlbChuZXdMYWJlbCgpLmdldCgpKTsKKyAgICAgICAgICAgIFJlZlB0cjxMYWJlbD4g
Y2F0Y2hIZXJlID0gZW1pdExhYmVsKG5ld0xhYmVsKCkucHRyKCkpOwogICAgICAgICAgICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IGV4Y2VwdGlvblJlZ2lzdGVyID0gbmV3VGVtcG9yYXJ5KCk7CiAgICAg
ICAgICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gdGhyb3duVmFsdWVSZWdpc3RlciA9IG5ld1RlbXBv
cmFyeSgpOwogICAgICAgICAgICAgcG9wVHJ5QW5kRW1pdENhdGNoKHRyeURhdGEsIGV4Y2VwdGlv
blJlZ2lzdGVyLmdldCgpLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCmluZGV4IGNiYzk2NTg5NGNiYmE4NDAxODdhNTk5
MGI5MTllZDNlYjFlNjc2NTYuLjcyMmI2YzBmOTdiYTJkOGIyMDdlNWFlNDVlNjIxNjBjOTc4M2Mz
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNv
ZGVHZW5lcmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5
dGVjb2RlR2VuZXJhdG9yLmgKQEAgLTQ4LDcgKzQ4LDYgQEAKIAogI2luY2x1ZGUgPGZ1bmN0aW9u
YWw+CiAKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZWdtZW50
ZWRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTM0Miw3ICszNDEsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgICAgIExhYmVsU2NvcGVQdHIgbmV3
TGFiZWxTY29wZShMYWJlbFNjb3BlOjpUeXBlLCBjb25zdCBJZGVudGlmaWVyKiA9IDApOwotICAg
ICAgICBQYXNzUmVmUHRyPExhYmVsPiBuZXdMYWJlbCgpOworICAgICAgICBSZWY8TGFiZWw+IG5l
d0xhYmVsKCk7CiAKICAgICAgICAgdm9pZCBlbWl0Tm9kZShSZWdpc3RlcklEKiBkc3QsIFN0YXRl
bWVudE5vZGUqIG4pCiAgICAgICAgIHsKQEAgLTQyMiwxNSArNDIxLDE1IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICAgICAgcmV0dXJuIChtX2NvZGVUeXBlICE9IEZ1bmN0aW9uQ29kZSB8fCBt
X2NvZGVCbG9jay0+bmVlZHNGdWxsU2NvcGVDaGFpbigpIHx8IHJpZ2h0SGFzQXNzaWdubWVudHMp
ICYmICFyaWdodElzUHVyZTsKICAgICAgICAgfQogCi0gICAgICAgIEFMV0FZU19JTkxJTkUgUGFz
c1JlZlB0cjxSZWdpc3RlcklEPiBlbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShFeHByZXNzaW9uTm9k
ZSogbiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SXNQdXJlKQorICAgICAg
ICBBTFdBWVNfSU5MSU5FIFJlZjxSZWdpc3RlcklEPiBlbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShF
eHByZXNzaW9uTm9kZSogbiwgYm9vbCByaWdodEhhc0Fzc2lnbm1lbnRzLCBib29sIHJpZ2h0SXNQ
dXJlKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobGVmdEhhbmRTaWRlTmVlZHNDb3B5KHJp
Z2h0SGFzQXNzaWdubWVudHMsIHJpZ2h0SXNQdXJlKSkgewotICAgICAgICAgICAgICAgIFBhc3NS
ZWZQdHI8UmVnaXN0ZXJJRD4gZHN0ID0gbmV3VGVtcG9yYXJ5KCk7CisgICAgICAgICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IGRzdCA9IG5ld1RlbXBvcmFyeSgpOwogICAgICAgICAgICAgICAg
IGVtaXROb2RlKGRzdC5nZXQoKSwgbik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGRzdDsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZHN0LnJlbGVhc2VOb25OdWxsKCk7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIHJldHVybiBlbWl0Tm9kZShuKTsKKyAgICAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqZW1pdE5vZGUobikpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBlbWl0VHlw
ZVByb2ZpbGVyRXhwcmVzc2lvbkluZm8oY29uc3QgSlNUZXh0UG9zaXRpb24mIHN0YXJ0RGl2b3Qs
IGNvbnN0IEpTVGV4dFBvc2l0aW9uJiBlbmREaXZvdCk7CkBAIC01MjMsMTMgKzUyMiwxMyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFB1dFRvU2NvcGUoUmVnaXN0
ZXJJRCogc2NvcGUsIGNvbnN0IFZhcmlhYmxlJiwgUmVnaXN0ZXJJRCogdmFsdWUsIFJlc29sdmVN
b2RlKTsKICAgICAgICAgUmVnaXN0ZXJJRCogaW5pdGlhbGl6ZVZhcmlhYmxlKGNvbnN0IFZhcmlh
YmxlJiwgUmVnaXN0ZXJJRCogdmFsdWUpOwogCi0gICAgICAgIFBhc3NSZWZQdHI8TGFiZWw+IGVt
aXRMYWJlbChMYWJlbCopOworICAgICAgICBSZWZQdHI8TGFiZWw+IGVtaXRMYWJlbChMYWJlbCop
OwogICAgICAgICB2b2lkIGVtaXRMb29wSGludCgpOwotICAgICAgICBQYXNzUmVmUHRyPExhYmVs
PiBlbWl0SnVtcChMYWJlbCogdGFyZ2V0KTsKLSAgICAgICAgUGFzc1JlZlB0cjxMYWJlbD4gZW1p
dEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhcmdldCk7Ci0gICAgICAgIFBh
c3NSZWZQdHI8TGFiZWw+IGVtaXRKdW1wSWZGYWxzZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCog
dGFyZ2V0KTsKLSAgICAgICAgUGFzc1JlZlB0cjxMYWJlbD4gZW1pdEp1bXBJZk5vdEZ1bmN0aW9u
Q2FsbChSZWdpc3RlcklEKiBjb25kLCBMYWJlbCogdGFyZ2V0KTsKLSAgICAgICAgUGFzc1JlZlB0
cjxMYWJlbD4gZW1pdEp1bXBJZk5vdEZ1bmN0aW9uQXBwbHkoUmVnaXN0ZXJJRCogY29uZCwgTGFi
ZWwqIHRhcmdldCk7CisgICAgICAgIFJlZjxMYWJlbD4gZW1pdEp1bXAoTGFiZWwqIHRhcmdldCk7
CisgICAgICAgIFJlZjxMYWJlbD4gZW1pdEp1bXBJZlRydWUoUmVnaXN0ZXJJRCogY29uZCwgTGFi
ZWwqIHRhcmdldCk7CisgICAgICAgIFJlZjxMYWJlbD4gZW1pdEp1bXBJZkZhbHNlKFJlZ2lzdGVy
SUQqIGNvbmQsIExhYmVsKiB0YXJnZXQpOworICAgICAgICBSZWY8TGFiZWw+IGVtaXRKdW1wSWZO
b3RGdW5jdGlvbkNhbGwoUmVnaXN0ZXJJRCogY29uZCwgTGFiZWwqIHRhcmdldCk7CisgICAgICAg
IFJlZjxMYWJlbD4gZW1pdEp1bXBJZk5vdEZ1bmN0aW9uQXBwbHkoUmVnaXN0ZXJJRCogY29uZCwg
TGFiZWwqIHRhcmdldCk7CiAgICAgICAgIHZvaWQgZW1pdFBvcFNjb3BlcyhSZWdpc3RlcklEKiBz
cmNEc3QsIGludCB0YXJnZXRTY29wZURlcHRoKTsKIAogICAgICAgICBSZWdpc3RlcklEKiBlbWl0
SGFzSW5kZXhlZFByb3BlcnR5KFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgUmVn
aXN0ZXJJRCogcHJvcGVydHlOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAppbmRleCAyNGJiOTg3ZjgzZGQ2MzVmMTA1NTZk
NmFhNWM0ZDlkMTYwNjIzNzBlLi5lOGNiNGY0ZmI1N2Y3NTI3YmExYjgxOGFhZmI3MmIwODQwMDcy
OTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwCkBAIC0yODgwLDcgKzI4ODAsNyBAQCB2b2lkIFRyeU5vZGU6OmVtaXRCeXRl
Y29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCiAgICAg
ICAgIGdlbmVyYXRvci5lbWl0SnVtcChjYXRjaEVuZExhYmVsLmdldCgpKTsKIAogICAgICAgICAv
LyBVbmNhdWdodCBleGNlcHRpb24gcGF0aDogdGhlIGNhdGNoIGJsb2NrLgotICAgICAgICBSZWZQ
dHI8TGFiZWw+IGhlcmUgPSBnZW5lcmF0b3IuZW1pdExhYmVsKGdlbmVyYXRvci5uZXdMYWJlbCgp
LmdldCgpKTsKKyAgICAgICAgUmVmUHRyPExhYmVsPiBoZXJlID0gZ2VuZXJhdG9yLmVtaXRMYWJl
bChnZW5lcmF0b3IubmV3TGFiZWwoKS5wdHIoKSk7CiAgICAgICAgIFJlZlB0cjxSZWdpc3RlcklE
PiBleGNlcHRpb25SZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKICAgICAgICAg
UmVmUHRyPFJlZ2lzdGVySUQ+IHRocm93blZhbHVlUmVnaXN0ZXIgPSBnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCk7CiAgICAgICAgIGdlbmVyYXRvci5wb3BUcnlBbmRFbWl0Q2F0Y2godHJ5RGF0YSwg
ZXhjZXB0aW9uUmVnaXN0ZXIuZ2V0KCksIHRocm93blZhbHVlUmVnaXN0ZXIuZ2V0KCksIGhlcmUu
Z2V0KCksIEhhbmRsZXJUeXBlOjpDYXRjaCk7CkBAIC0yODk5LDcgKzI4OTksNyBAQCB2b2lkIFRy
eU5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
cklEKiBkc3QpCiAgICAgfQogCiAgICAgaWYgKG1fZmluYWxseUJsb2NrKSB7Ci0gICAgICAgIFJl
ZlB0cjxMYWJlbD4gcHJlRmluYWxseUxhYmVsID0gZ2VuZXJhdG9yLmVtaXRMYWJlbChnZW5lcmF0
b3IubmV3TGFiZWwoKS5nZXQoKSk7CisgICAgICAgIFJlZlB0cjxMYWJlbD4gcHJlRmluYWxseUxh
YmVsID0gZ2VuZXJhdG9yLmVtaXRMYWJlbChnZW5lcmF0b3IubmV3TGFiZWwoKS5wdHIoKSk7CiAg
ICAgICAgIAogICAgICAgICBnZW5lcmF0b3IucG9wRmluYWxseUNvbnRleHQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAK
aW5kZXggYzZhYzQ3NWIzZjNjNDI0NDQ3YzAzZWM4MTJhNjg1MmE1MTVlN2Q2Mi4uNjNiNGU2MjM3
YTYwNTMyYmI4M2JiMGM3ZDkyNTBkNWY5ZjY1YTRmYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC04OCw3ICs4OCw3
IEBAIERlYnVnZ2VyQ2FsbEZyYW1lOjpEZWJ1Z2dlckNhbGxGcmFtZShDYWxsRnJhbWUqIGNhbGxG
cmFtZSkKICAgICBtX3Bvc2l0aW9uID0gcG9zaXRpb25Gb3JDYWxsRnJhbWUobV9jYWxsRnJhbWUp
OwogfQogCi1QYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBEZWJ1Z2dlckNhbGxGcmFtZTo6
Y2FsbGVyRnJhbWUoKQorUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBEZWJ1Z2dlckNhbGxGcmFt
ZTo6Y2FsbGVyRnJhbWUoKQogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwogICAgIGlmICghaXNW
YWxpZCgpKQpAQCAtMTAyLDcgKzEwMiw3IEBAIFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+
IERlYnVnZ2VyQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZSgpCiAKICAgICBDYWxsRnJhbWUqIGNhbGxl
ckZyYW1lID0gZnVuY3Rvci5nZXRDYWxsZXJGcmFtZSgpOwogICAgIGlmICghY2FsbGVyRnJhbWUp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIG1fY2Fs
bGVyID0gRGVidWdnZXJDYWxsRnJhbWU6OmNyZWF0ZShjYWxsZXJGcmFtZSk7CiAgICAgcmV0dXJu
IG1fY2FsbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJDYWxsRnJhbWUuaAppbmRleCBkZjYxYzZhYTM5MzU1NDdhYzc4NTE3M2RlZTEwN2I1MGMzYTQw
ZjZiLi4xYmUxNTZkOTM4MDlkMGM5ZGZhYTFiYWU2OWEyNmU1ZDRmYjU2ZmYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuaApAQCAt
NTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBleHBsaWNpdCBE
ZWJ1Z2dlckNhbGxGcmFtZShDYWxsRnJhbWUqKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIFBh
c3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNhbGxlckZyYW1lKCk7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBjYWxsZXJGcmFtZSgpOwogICAgIEV4
ZWNTdGF0ZSogZXhlYygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbEZyYW1lOyB9CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgU291cmNlSUQgc291cmNlSUQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCmluZGV4IGIxMGJlOGNmM2UwY2MwYjNkNTQ0OTEx
N2U2OGI3ODYzMjE1OTZhZTAuLjZiYTQyNDdjYjZiYTIxNzYzNTk4NWJjMzNjOWEzYjc0NzEyNzA1
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKQEAgLTMx
Myw3ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGVudHJ5LT5tX3Jlc2h1ZmZsaW5ncy5zaHJp
bmtUb0ZpdCgpOwogICAgIH0KICAgICAKLSAgICBQYXNzUmVmUHRyPEpJVENvZGU+IGppdENvZGUo
KSB7IHJldHVybiBtX2ppdENvZGU7IH0KKyAgICBSZWZQdHI8SklUQ29kZT4gaml0Q29kZSgpIHsg
cmV0dXJuIG1faml0Q29kZTsgfQogICAgIAogICAgIFZlY3RvcjxMYWJlbD4mIGJsb2NrSGVhZHMo
KSB7IHJldHVybiBtX2Jsb2NrSGVhZHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXggYjM3
ZmFhZGIwYTA2ZGU1NWJiNTg2Njc1NjI1ZmEyZTc0NzMyNDA0MC4uZjMzZDQwNWNiYWNkNjYzMWNi
Mjk0NmYwNWVkOWJmMzMxYTIzZmE0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC04NCw3ICs4
NCw3IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fcmVtYWluaW5nQ2FwYWNpdHlGb3JGcmFtZUNh
cHR1cmU7CiB9OwogCi1QYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2Fs
bFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQorUmVmPFNj
cmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCBzaXplX3QgbWF4U3RhY2tTaXplKQogewogICAgIGlmICghZXhlYykKICAgICAgICAgcmV0dXJu
IFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKCk7CkBAIC05OCw3ICs5OCw3IEBAIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIHNpemVfdCBtCiAgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKGZyYW1lcyk7
CiB9CiAKLVBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2tG
b3JDb25zb2xlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQorUmVm
PFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29sZShKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKIHsKICAgICBpZiAoIWV4ZWMpCiAg
ICAgICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZSgpOwpAQCAtMTI5LDcgKzEyOSw3
IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RTb3VyY2VJbmZvcm1hdGlvbkZyb21FeGNlcHRpb24oSlND
OjpFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0CiAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsK
IH0KIAotUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxTdGFja0Zy
b21FeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RXhjZXB0aW9uKiBleGNlcHRp
b24sIHNpemVfdCBtYXhTdGFja1NpemUpCitSZWY8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3Jp
cHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkV4Y2Vw
dGlvbiogZXhjZXB0aW9uLCBzaXplX3QgbWF4U3RhY2tTaXplKQogewogICAgIFZlY3RvcjxTY3Jp
cHRDYWxsRnJhbWU+IGZyYW1lczsKICAgICBSZWZDb3VudGVkQXJyYXk8U3RhY2tGcmFtZT4gc3Rh
Y2tUcmFjZSA9IGV4Y2VwdGlvbi0+c3RhY2soKTsKQEAgLTE2Miw3ICsxNjIsNyBAQCBQYXNzUmVm
UHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2VwdGlvbihK
U0M6OkV4ZWNTdGF0ZSogZQogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZShmcmFt
ZXMpOwogfQogCi1QYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRlU2NyaXB0QXJndW1l
bnRzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCkKK1Jl
ZjxTY3JpcHRBcmd1bWVudHM+IGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQpCiB7CiAgICAgVmVjdG9yPERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlPiBhcmd1bWVudHM7CiAgICAgc2l6ZV90IGFyZ3VtZW50Q291bnQgPSBl
eGVjLT5hcmd1bWVudENvdW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCmluZGV4IGRjNmYzYTc0N2NlMTU4
NTcyMDM5YmVmY2M5NDU0OTIzOTRlZTliZDUuLmIwYzBkYzAxYjEzMTg2YjI5NmE3MDNjY2Y3MWVi
YjNlOTg1OWEyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
U2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCkBAIC00NiwxMCArNDYsMTAgQEAgY2xhc3Mg
U2NyaXB0QXJndW1lbnRzOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCiAvLyBGSVhNRTogVGhl
IHN1YnRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHNob3VsZCBiZSBlbGltaW5hdGVkLgot
SlNfRVhQT1JUX1BSSVZBVEUgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlw
dENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSosIHNpemVfdCBtYXhTdGFja1NpemUpOwotSlNfRVhQ
T1JUX1BSSVZBVEUgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENhbGxT
dGFja0ZvckNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBzaXplX3QgbWF4U3RhY2tTaXplKTsKLUpT
X0VYUE9SVF9QUklWQVRFIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2tGcm9tRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFeGNlcHRpb24qLCBz
aXplX3QgbWF4U3RhY2tTaXplKTsKLUpTX0VYUE9SVF9QUklWQVRFIFBhc3NSZWZQdHI8U2NyaXB0
QXJndW1lbnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25l
ZCBza2lwQXJndW1lbnRDb3VudCk7CitKU19FWFBPUlRfUFJJVkFURSBSZWY8U2NyaXB0Q2FsbFN0
YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqLCBzaXplX3QgbWF4U3Rh
Y2tTaXplKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNj
cmlwdENhbGxTdGFja0ZvckNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBzaXplX3QgbWF4U3RhY2tT
aXplKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlw
dENhbGxTdGFja0Zyb21FeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkV4Y2VwdGlvbios
IHNpemVfdCBtYXhTdGFja1NpemUpOworSlNfRVhQT1JUX1BSSVZBVEUgUmVmPFNjcmlwdEFyZ3Vt
ZW50cz4gY3JlYXRlU2NyaXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgc2tp
cEFyZ3VtZW50Q291bnQpOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKaW5kZXggODU5
YjRhZDY0NTExNWVmN2RiNzM5OWU4ZDEyZDQ5NDQ0ZDk3M2FhYS4uYmI0OWU3MzZiY2Q1NTRjYmU2
NzgyMTlkY2FlMDc3ODU5ZjY2MDEwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0yMTMsMTEgKzIxMywxMSBAQCBkb3VibGUg
RXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRl
ZE1lbW9yeVVzYWdlKQogCiB9CiAKLVBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4g
RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZv
aWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCitSZWZQdHI8RXhlY3V0
YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXpl
X3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZv
cnQpCiB7CiAgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3VsdCA9IGFsbG9j
YXRvcigpLT5hbGxvY2F0ZShzaXplSW5CeXRlcywgb3duZXJVSUQpOwogICAgIFJFTEVBU0VfQVNT
RVJUKHJlc3VsdCB8fCBlZmZvcnQgIT0gSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCk7Ci0gICAg
cmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc2l6ZV90
IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDY0MzVjNjliOTM4
NWVlZmM0MzdmNmQyOTVhZWYxZGE3NmFlYTkxMjUuLmQyOTY0ZDEyYWVhMTVjY2QzMjI5ODg2Yjgz
ZDBiYjQ5ODEwNTNhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhl
Y3V0YWJsZUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0
YWJsZUFsbG9jYXRvci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8d3RmL01ldGFBbGxv
Y2F0b3JIYW5kbGUuaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9QYWdlQWxsb2NhdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTEx
Myw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFByb2ZpbGUoKSB7IH0K
ICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxlPiBhbGxvY2F0
ZShWTSYsIHNpemVfdCBzaXplSW5CeXRlcywgdm9pZCogb3duZXJVSUQsIEpJVENvbXBpbGF0aW9u
RWZmb3J0KTsKKyAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gYWxsb2NhdGUoVk0m
LCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9y
dCk7CiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKICAgICBzdGF0aWMgdm9p
ZCBtYWtlV3JpdGFibGUodm9pZCogc3RhcnQsIHNpemVfdCBzaXplKQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBvb2wuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRWTVBv
b2wuY3BwCmluZGV4IDNiZmEzNjg1ODUzZjU4YzkyYjM4YzgwNjE5NTIyNzRjZGIzMWZhYWIuLjI4
MjNhZTIwNDcxNzhiMGJlM2Q3MTcyOTlkMjM3YmYxYjBiYmU2MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Qb29sLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZN
UG9vbC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6
bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVzYWdlKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhl
Y3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQq
IG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCitSZWZQdHI8RXhlY3V0YWJs
ZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qg
c2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQp
CiB7CiAgICAgaWYgKGVmZm9ydCAhPSBKSVRDb21waWxhdGlvbkNhbkZhaWwgJiYgT3B0aW9uczo6
cmVwb3J0TXVzdFN1Y2NlZWRFeGVjdXRhYmxlQWxsb2NhdGlvbnMoKSkgewogICAgICAgICBkYXRh
TG9nKCJBbGxvY2F0aW5nICIsIHNpemVJbkJ5dGVzLCAiIGJ5dGVzIG9mIGV4ZWN1dGFibGUgbWVt
b3J5IHdpdGggSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZC5cbiIpOwpAQCAtMTc4LDcgKzE3OCw3
IEBAIFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRv
cjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKIHNpemVfdCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjb21taXR0ZWRCeXRlQ291
bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVBy
b2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxl
ci5jcHAKaW5kZXggYWFlMTU2OGYzNjFiZDZlYmZjODQxYmY3YzI2MGJiNzMzMjNlMTliNy4uNzg3
ZDM2MmRjZTRjN2E2Y2NjZDdmYWI1MDE3OWI3MzZhNTc4OGNmZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCkBAIC03OCw3ICs3OCw3
IEBAIHZvaWQgTGVnYWN5UHJvZmlsZXI6OnN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlCiAgICAgbV9jdXJyZW50UHJvZmlsZXMuYXBwZW5k
KHByb2ZpbGVHZW5lcmF0b3IpOwogfQogCi1QYXNzUmVmUHRyPFByb2ZpbGU+IExlZ2FjeVByb2Zp
bGVyOjpzdG9wUHJvZmlsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkK
K1JlZlB0cjxQcm9maWxlPiBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKCFleGVjKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxl
ci9MZWdhY3lQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2Fj
eVByb2ZpbGVyLmgKaW5kZXggOGY2YWY0MGVlOTllYTRhOTA1MDFlN2VlZWE3YjkwMjc1Y2VlM2Vh
My4uYWYwYWI0MWUyNjcyMGM1NGFlNTNjZGNmNTk1M2UzMzEyZmJhNDhmYiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVDYWxsSWRlbnRp
ZmllcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMLCB1
bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcik7
CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0ZSos
IGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+KTsKLSAgICBK
U19FWFBPUlRfUFJJVkFURSBQYXNzUmVmUHRyPFByb2ZpbGU+IHN0b3BQcm9maWxpbmcoRXhlY1N0
YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBS
ZWZQdHI8UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYgdGl0bGUpOwogICAgIHZvaWQgc3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVjdCopOwogCiAg
ICAgLy8gVXNlZCB0byBpZ25vcmUgcHJvZmlsZSBub2RlIHN1YnRyZWVzIHJvb3RlZCBhdCBJbmpl
Y3RlZFNjcmlwdCBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9E
YXRlSW5zdGFuY2VDYWNoZS5oCmluZGV4IDZlYmJiMGQ5OGJiM2I1MGZkNzlkN2U2NzMxNjJhNTg4
NzZmYTdkZTkuLjg2NWVlOGZmMjBiOWU4NWVmM2I3ZmYwNDQ2NzkxZTk0ODhlZTE5YjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNlQ2FjaGUuaApA
QCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkpTRGF0ZU1hdGguaCIKICNpbmNsdWRlIDxhcnJh
eT4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIEpTQyB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IDRjMjI1
ZTUwNmExODY3OWE0ODFkYzhiNGNkY2RlYjU3NjAwZGNiMWIuLjZjYjA5YjAxYjM4MjViODQ1NmU5
NWMxYWJjOWRmZjJiODA2ZTQxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0V4ZWN1dGFibGUuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRhYmxl
OjppbnN0YWxsQ29kZShDb2RlQmxvY2sqIGdlbmVyaWNDb2RlQmxvY2spCiAgICAgSGVhcDo6aGVh
cCh0aGlzKS0+d3JpdGVCYXJyaWVyKHRoaXMpOwogfQogCi1QYXNzUmVmUHRyPENvZGVCbG9jaz4g
U2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAorUmVmUHRyPENvZGVCbG9jaz4gU2Ny
aXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAogICAgIENvZGVTcGVjaWFsaXphdGlvbktp
bmQga2luZCwgSlNGdW5jdGlvbiogZnVuY3Rpb24sIEpTU2NvcGUqIHNjb3BlLCBKU09iamVjdCom
IGV4Y2VwdGlvbikKIHsKICAgICBWTSogdm0gPSBzY29wZS0+dm0oKTsKQEAgLTI0NCw3ICsyNDQs
NyBAQCBQYXNzUmVmUHRyPENvZGVCbG9jaz4gU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2Nr
Rm9yKAogICAgICAgICBleGNlcHRpb24gPSB2bS0+dGhyb3dFeGNlcHRpb24oCiAgICAgICAgICAg
ICBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwKICAgICAgICAgICAgIGVycm9yLnRvRXJyb3JP
YmplY3QoZ2xvYmFsT2JqZWN0LCBleGVjdXRhYmxlLT5tX3NvdXJjZSkpOwotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8gUGFyc2luZyBy
ZXZlYWxzIHdoZXRoZXIgb3VyIGZ1bmN0aW9uIHVzZXMgZmVhdHVyZXMgdGhhdCByZXF1aXJlIGEg
c2VwYXJhdGUgZnVuY3Rpb24gbmFtZSBvYmplY3QgaW4gdGhlIHNjb3BlIGNoYWluLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IGJkODNhY2Q0MTkzMmQz
NDU0NGUzMmNjNmIyNmQyYzJmOGFhYzNkNjUuLjFjN2M4MDAwM2QyYTMyYmQ2YTMxMWRhYzBkZTUz
OTAxYThhZDc4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4
ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxl
LmgKQEAgLTM5OCw3ICszOTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9pZCBpbnN0YWxs
Q29kZShDb2RlQmxvY2sqKTsKLSAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gbmV3Q29kZUJsb2Nr
Rm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQsIEpTRnVuY3Rpb24qLCBKU1Njb3BlKiwgSlNPYmpl
Y3QqJiBleGNlcHRpb24pOworICAgIFJlZlB0cjxDb2RlQmxvY2s+IG5ld0NvZGVCbG9ja0ZvcihD
b2RlU3BlY2lhbGl6YXRpb25LaW5kLCBKU0Z1bmN0aW9uKiwgSlNTY29wZSosIEpTT2JqZWN0KiYg
ZXhjZXB0aW9uKTsKICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gbmV3UmVwbGFjZW1lbnRDb2Rl
QmxvY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgCiAgICAgSlNPYmplY3QqIHBy
ZXBhcmVGb3JFeGVjdXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBmdW5jdGlvbiwg
SlNTY29wZSogc2NvcGUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5k
ZXggMDA2OWIzODZkNzUwY2QyMmZjMDE2Mjk0MjAyYzYwZjY0M2I4ZDMxYS4uMzZlMzdjYTMyYjFl
NDJjNzU5YTA0Y2Y3NDgyNDFlZmFkMjg1YWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTM3LDExICszNywx
MSBAQCBwcm90ZWN0ZWQ6CiAgICAgR2VuZXJpY1R5cGVkQXJyYXlWaWV3KFBhc3NSZWZQdHI8QXJy
YXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogCiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBjcmVhdGUo
dW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJh
eVZpZXc+IGNyZWF0ZShjb25zdCB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBhcnJheSwgdW5zaWdu
ZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+
IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9mZnNldCwgdW5z
aWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5Vmlldz4g
Y3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIFJlZlB0cjxHZW5lcmljVHlwZWRB
cnJheVZpZXc+IGNyZWF0ZShjb25zdCB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBhcnJheSwgdW5z
aWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5Vmlldz4g
Y3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNp
Z25lZCBsZW5ndGgpOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVyaWNUeXBlZEFy
cmF5Vmlldz4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRp
YyBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBjcmVhdGVVbmluaXRpYWxpemVkKHVuc2ln
bmVkIGxlbmd0aCk7CiAgICAgCiAgICAgdHlwZW5hbWUgQWRhcHRvcjo6VHlwZSogZGF0YSgpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUqPihiYXNlQWRk
cmVzcygpKTsgfQogICAgIApAQCAtOTgsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAm
JiBvZmZzZXQgKyBwb3MgPj0gb2Zmc2V0KTsKICAgICB9CiAgICAgCi0gICAgUGFzc1JlZlB0cjxH
ZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7Ci0gICAgUGFz
c1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGludCBzdGFydCwgaW50IGVu
ZCkgY29uc3Q7CisgICAgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5Vmlldz4gc3ViYXJyYXkoaW50
IHN0YXJ0KSBjb25zdDsKKyAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBzdWJhcnJh
eShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwgVHlwZWRBcnJh
eVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5l
cy5oCmluZGV4IGUzMjNhYjI2YmU5YzUzOWRkMzg4ZDkzYTY4MTVmNmJmNjhmMGM5NGQuLjI1Mzcy
Njk2NWE2NjI3NDFmY2NmMGZhNjJmMGUxYjI0MDBlZGQ4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmgKQEAgLTQwLDI1ICs0MCwyNSBAQCBHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OkdlbmVyaWNUeXBlZEFycmF5VmlldygKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4K
LVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5lcmljVHlwZWRB
cnJheVZpZXc8QWRhcHRvcj46OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCitSZWZQdHI8R2VuZXJp
Y1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZm
ZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKHR5cGVuYW1lIEFkYXB0b3I6
OlR5cGUpKTsKICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIHJldHVybiBjcmVhdGUoYnVmZmVyLnJlbGVhc2UoKSwgMCwgbGVu
Z3RoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KLVBhc3NSZWZQdHI8R2VuZXJp
Y1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OmNyZWF0ZSgKK1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+IEdlbmVyaWNU
eXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXRlKAogICAgIGNvbnN0IHR5cGVuYW1lIEFkYXB0
b3I6OlR5cGUqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVmUHRyPEdlbmVyaWNU
eXBlZEFycmF5Vmlldz4gcmVzdWx0ID0gY3JlYXRlKGxlbmd0aCk7CiAgICAgbWVtY3B5KHJlc3Vs
dC0+ZGF0YSgpLCBhcnJheSwgbGVuZ3RoICogc2l6ZW9mKHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUp
KTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgotUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj4+IEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXRlKAor
UmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4gR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZlcj4gcGFzc2Vk
QnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVm
UHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBwYXNzZWRCdWZmZXI7CkBAIC03MSwyNSArNzEsMjUg
QEAgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+IEdlbmVyaWNUeXBl
ZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXQKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRv
cj4KLVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PgorUmVmUHRyPEdl
bmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4KIEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFw
dG9yPjo6Y3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVmUHRy
PEFycmF5QnVmZmVyPiBidWZmZXIgPQogICAgICAgICBBcnJheUJ1ZmZlcjo6Y3JlYXRlVW5pbml0
aWFsaXplZChsZW5ndGgsIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKSk7CiAgICAgaWYg
KCFidWZmZXIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICByZXR1cm4gY3JlYXRlKGJ1ZmZlci5yZWxlYXNlKCksIDAsIGxlbmd0aCk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEFkYXB0b3I+Ci1QYXNzUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxB
ZGFwdG9yPj4KK1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+CiBHZW5lcmlj
VHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnN1YmFycmF5KGludCBzdGFydCkgY29uc3QKIHsKICAg
ICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgQWRhcHRvcj4KLVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Pgor
UmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4KIEdlbmVyaWNUeXBlZEFycmF5
VmlldzxBZGFwdG9yPjo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25zdAogewogICAg
IHVuc2lnbmVkIG9mZnNldCwgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3YThiYTk2Mjk1ZDljNGQ4
OGY5MzM5MjZjMGFiOWM3MmU0ZGMxNzQ1Li5hNDAyNDc1YTQzOWM1MzhlNGU3OGQyODVmN2JiZGI2
ZjAyNzY1ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTDJS
ZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjExNyw3ICsyMTE3LDcgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBwbmFtZSwgRXhj
ZXB0aW9uQ29kZSYKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9XUklURU1BU0s6
CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5hbWUpOwogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTOgotICAgICAg
ICByZXR1cm4gV2ViR0xHZXRJbmZvKFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVzc2VkVGV4
dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXplKCkpKTsK
KyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhVaW50MzJBcnJheTo6Y3JlYXRlKG1fY29tcHJl
c3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuc2l6
ZSgpKS5yZWxlYXNlKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRToK
ICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMzEyNzExMGY1NjEx
MzVhMDM5YjlhNjk0ZTRkNmFmOTA1MGU3ZTllZC4uNDRjNmY1ZDQ1ZjdiZWIwMTgwNGQyZThhMTM5
MDJhNDYxMWNmODRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC05NTMsNyArOTUzLDcgQEAgV2ViR0xHZXRJbmZv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lLCBFeGNl
cHRpb25Db2RlJgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dSSVRFTUFTSzoK
ICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6Ci0gICAgICAg
IHJldHVybiBXZWJHTEdldEluZm8oVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXByZXNzZWRUZXh0
dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNpemUoKSkpOwor
ICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21wcmVz
c2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5zaXpl
KCkpLnJlbGVhc2UoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFOgog
ICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFX01PREU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGVlMDc4
ZjQxZjY3ZTQ3NTM1NzIxODc2YjMzMzZkM2U5YTU1ZjJhMTMuLmMxMTU4NzIwYjEyOWMzN2IxOWFm
OTVmNjFhMDgyOGNhYjgzY2EwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNDk4LDcgKzI0OTgs
NyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0VW5pZm9ybShX
ZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldFVu
aWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7CiAgICAgICAg
IGlmIChsZW5ndGggPT0gMSkKICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8odmFsdWVb
MF0pOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEZsb2F0MzJBcnJheTo6Y3JlYXRlKHZh
bHVlLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9hdDMyQXJyYXk6
OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKS5yZWxlYXNlKCkpOwogICAgIH0KICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpJTlQ6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9IHswfTsKQEAg
LTI1MDgsNyArMjUwOCw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAgICAgICAgIG1f
Y29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9jYXRpb24sIHZh
bHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQogICAgICAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oSW50MzJBcnJh
eTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhJ
bnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkucmVsZWFzZSgpKTsKICAgICB9CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTDogewogICAgICAgICBHQzNEaW50IHZhbHVlWzRd
ID0gezB9OwpAQCAtMjYwNyw3ICsyNjA3LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0MzRGVudW0KICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1RZUEU6CiAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUudHlwZSk7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRUUklCOgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5kZXhdLnZhbHVl
LCA0KSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oRmxvYXQzMkFycmF5OjpjcmVhdGUo
bV92ZXJ0ZXhBdHRyaWJWYWx1ZVtpbmRleF0udmFsdWUsIDQpLnJlbGVhc2UoKSk7CiAgICAgZGVm
YXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFM
SURfRU5VTSwgImdldFZlcnRleEF0dHJpYiIsICJpbnZhbGlkIHBhcmFtZXRlciBuYW1lIik7CiAg
ICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKQEAgLTM5ODYsNyArMzk4Niw3IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0QXJyYXlQYXJh
bWV0ZXIoR0MzRGVudW0gcG5hCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQo
KTsKICAgICB9Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9hdDMyQXJyYXk6OmNyZWF0ZSh2
YWx1ZSwgbGVuZ3RoKSk7CisgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9hdDMyQXJyYXk6OmNy
ZWF0ZSh2YWx1ZSwgbGVuZ3RoKS5yZWxlYXNlKCkpOwogfQogCiBXZWJHTEdldEluZm8gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSkKQEAgLTQwMDUsNyArNDAwNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBuYW1lCiAgICAg
ZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdl
YkdMR2V0SW5mbyhJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpOworICAgIHJldHVy
biBXZWJHTEdldEluZm8oSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpLnJlbGVhc2Uo
KSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tUZXh0dXJlQ29t
cGxldGVuZXNzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcmVwYXJlVG9EcmF3KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254709</attachid>
            <date>2015-06-10 23:03:27 -0700</date>
            <delta_ts>2015-06-12 20:52:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145834-20150611150258.patch</filename>
            <type>text/plain</type>
            <size>26855</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBk
ZGI3YjA2MmYwMGQwNTg5MzVhMjcwYTE4MDE2ZGRiZjFlMDk4NTNlLi5mY2E5ZGVhODA5ZmYyNGEx
ZDZlMDg5Nzg2OTczNmM3NmVmODI2NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAxNS0wNi0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFzc1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZSAtIDIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTgzNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFzIGEgc3Rl
cCB0byByZW1vdmUgUGFzc1JlZlB0ciwgdGhpcyBwYXRjaCBjbGVhbnMgdXAgUGFzc1JlZlB0ciBh
cyBtdWNoIGFzIHBvc3NpYmxlCisgICAgICAgIGluIEphdmFTY3JpcHRDb3JlLgorCisgICAgICAg
ICogQVBJL0pTQ2xhc3NSZWYuY3BwOgorICAgICAgICAoT3BhcXVlSlNDbGFzczo6Y3JlYXRlKToK
KyAgICAgICAgKiBBUEkvSlNDbGFzc1JlZi5oOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2Vy
Q2FsbEZyYW1lLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OmNhbGxlckZy
YW1lKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5oOgorICAgICAgICAq
IGRmZy9ERkdKSVRDb21waWxlci5oOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpq
aXRDb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHA6
CisgICAgICAgIChJbnNwZWN0b3I6OmNyZWF0ZVNjcmlwdENhbGxTdGFjayk6CisgICAgICAgIChJ
bnNwZWN0b3I6OmNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUpOgorICAgICAgICAoSW5z
cGVjdG9yOjpjcmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKToKKyAgICAgICAgKElu
c3BlY3Rvcjo6Y3JlYXRlU2NyaXB0QXJndW1lbnRzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvU2Ny
aXB0Q2FsbFN0YWNrRmFjdG9yeS5oOgorICAgICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9y
LmNwcDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUpOgorICAg
ICAgICAqIGppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmg6CisgICAgICAgICogaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHA6CisgICAgICAgIChKU0M6OkV4ZWN1dGFibGVBbGxv
Y2F0b3I6OmFsbG9jYXRlKToKKyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6
CisgICAgICAgIChKU0M6OkxlZ2FjeVByb2ZpbGVyOjpzdG9wUHJvZmlsaW5nKToKKyAgICAgICAg
KiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5oOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZUluc3Rh
bmNlQ2FjaGUuaDoKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgorICAgICAgICAo
SlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpuZXdDb2RlQmxvY2tGb3IpOgorICAgICAgICAqIHJ1bnRp
bWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAqIHJ1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3
Lmg6CisgICAgICAgICogcnVudGltZS9HZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXRlKToKKyAg
ICAgICAgKEpTQzo6R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpjcmVhdGVVbmluaXRp
YWxpemVkKToKKwogMjAxNS0wNi0xMCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBzLmxlbmd0aCgpID4gMSBvbiBMYXlv
dXRUZXN0cy9qcy9yZWdleHAtZmxhZ3MuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBiZDk1YzdjZDMxZTU4
NDJlYTdkMmY2NzAwYWQ3YTI4Njg0Y2Q5YzcuLmZlYTgxY2E3ZTQ4MThmZDUwNzZhZDFlZTUyZWVj
YTY1MmNiODc0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wNi0xMCAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHVyZ2UgUGFz
c1JlZlB0ciBpbiBKYXZhU2NyaXB0Q29yZSAtIDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTgzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCBjYWxsIHNpdGVzIGRlcGVuZHMgb24gY2hhbmdpbmcg
b2YgSlNDLgorCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTDJSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0
ZXIpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlmb3JtKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJp
Yik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJH
TEZsb2F0QXJyYXlQYXJhbWV0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcik6CisKIDIwMTUtMDYtMTAgIENv
bW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxODU0NDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL0pTQ2xhc3NSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NsYXNz
UmVmLmNwcAppbmRleCBhOGU3Y2I3ZDQ1NWQyZDAxYjk0OTI2ZjIzOGExY2UwYjNhMTEyOGM5Li5l
MGRiZTYwNDM3ZGEwZDdlYTYxYzI3ODNhMGM2ZGMwOTQ3ODFiOWU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBSZWY8T3BhcXVl
SlNDbGFzcz4gT3BhcXVlSlNDbGFzczo6Y3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3Qg
SlNDbGFzc0RlZmluaQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE9wYXF1ZUpTQ2xhc3MoZGVm
aW5pdGlvbiwgMCkpOwogfQogCi1QYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpTQ2xh
c3M6OmNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogY2xpZW50RGVmaW5pdGlvbikKK1Jl
ZjxPcGFxdWVKU0NsYXNzPiBPcGFxdWVKU0NsYXNzOjpjcmVhdGUoY29uc3QgSlNDbGFzc0RlZmlu
aXRpb24qIGNsaWVudERlZmluaXRpb24pCiB7CiAgICAgSlNDbGFzc0RlZmluaXRpb24gZGVmaW5p
dGlvbiA9ICpjbGllbnREZWZpbml0aW9uOyAvLyBBdm9pZCBtb2RpZnlpbmcgY2xpZW50IGNvcHku
CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCBQYXNzUmVmUHRyPE9wYXF1ZUpTQ2xhc3M+IE9wYXF1ZUpT
Q2xhc3M6OmNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiogY2xpZW50RAogICAgIC8vIFdl
IGFyZSBzdXBwb3NlZCB0byB1c2UgSlNDbGFzc1JldGFpbi9SZWxlYXNlIGJ1dCBzaW5jZSB3ZSBr
bm93IHRoYXQgd2UgY3VycmVudGx5IGhhdmUKICAgICAvLyB0aGUgb25seSByZWZlcmVuY2UgdG8g
dGhpcyBjbGFzcyBvYmplY3Qgd2UgY2hlYXQgYW5kIHVzZSBhIFJlZlB0ciBpbnN0ZWFkLgogICAg
IFJlZlB0cjxPcGFxdWVKU0NsYXNzPiBwcm90b0NsYXNzID0gYWRvcHRSZWYobmV3IE9wYXF1ZUpT
Q2xhc3MoJnByb3RvRGVmaW5pdGlvbiwgMCkpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3Bh
cXVlSlNDbGFzcygmZGVmaW5pdGlvbiwgcHJvdG9DbGFzcy5nZXQoKSkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE9wYXF1ZUpTQ2xhc3MoJmRlZmluaXRpb24sIHByb3RvQ2xhc3MuZ2V0KCkp
KTsKIH0KIAogT3BhcXVlSlNDbGFzc0NvbnRleHREYXRhOjpPcGFxdWVKU0NsYXNzQ29udGV4dERh
dGEoSlNDOjpWTSYsIE9wYXF1ZUpTQ2xhc3MqIGpzQ2xhc3MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2xhc3NSZWYuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDbGFzc1JlZi5oCmluZGV4IDY4N2Q4YjliOTRkOTE4M2I4YTY5OTMwOTMwMmU3YmRmZDc1
NDc2ZWIuLmZhMDI0ZDM0NGY0NmM1MWJhZDIwZTE1NDBmYWZlOTJhYTVhY2MxOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDbGFzc1JlZi5oCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoK
IH07CiAKIHN0cnVjdCBPcGFxdWVKU0NsYXNzIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PE9wYXF1ZUpTQ2xhc3M+IHsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGFxdWVKU0NsYXNzPiBj
cmVhdGUoY29uc3QgSlNDbGFzc0RlZmluaXRpb24qKTsKKyAgICBzdGF0aWMgUmVmPE9wYXF1ZUpT
Q2xhc3M+IGNyZWF0ZShjb25zdCBKU0NsYXNzRGVmaW5pdGlvbiopOwogICAgIHN0YXRpYyBSZWY8
T3BhcXVlSlNDbGFzcz4gY3JlYXRlTm9BdXRvbWF0aWNQcm90b3R5cGUoY29uc3QgSlNDbGFzc0Rl
ZmluaXRpb24qKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB+T3BhcXVlSlNDbGFzcygpOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2Fs
bEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckNhbGxG
cmFtZS5jcHAKaW5kZXggYzZhYzQ3NWIzZjNjNDI0NDQ3YzAzZWM4MTJhNjg1MmE1MTVlN2Q2Mi4u
NjNiNGU2MjM3YTYwNTMyYmI4M2JiMGM3ZDkyNTBkNWY5ZjY1YTRmYiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJhbWUuY3BwCkBAIC04
OCw3ICs4OCw3IEBAIERlYnVnZ2VyQ2FsbEZyYW1lOjpEZWJ1Z2dlckNhbGxGcmFtZShDYWxsRnJh
bWUqIGNhbGxGcmFtZSkKICAgICBtX3Bvc2l0aW9uID0gcG9zaXRpb25Gb3JDYWxsRnJhbWUobV9j
YWxsRnJhbWUpOwogfQogCi1QYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBEZWJ1Z2dlckNh
bGxGcmFtZTo6Y2FsbGVyRnJhbWUoKQorUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBEZWJ1Z2dl
ckNhbGxGcmFtZTo6Y2FsbGVyRnJhbWUoKQogewogICAgIEFTU0VSVChpc1ZhbGlkKCkpOwogICAg
IGlmICghaXNWYWxpZCgpKQpAQCAtMTAyLDcgKzEwMiw3IEBAIFBhc3NSZWZQdHI8RGVidWdnZXJD
YWxsRnJhbWU+IERlYnVnZ2VyQ2FsbEZyYW1lOjpjYWxsZXJGcmFtZSgpCiAKICAgICBDYWxsRnJh
bWUqIGNhbGxlckZyYW1lID0gZnVuY3Rvci5nZXRDYWxsZXJGcmFtZSgpOwogICAgIGlmICghY2Fs
bGVyRnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAog
ICAgIG1fY2FsbGVyID0gRGVidWdnZXJDYWxsRnJhbWU6OmNyZWF0ZShjYWxsZXJGcmFtZSk7CiAg
ICAgcmV0dXJuIG1fY2FsbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rl
YnVnZ2VyL0RlYnVnZ2VyQ2FsbEZyYW1lLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdn
ZXIvRGVidWdnZXJDYWxsRnJhbWUuaAppbmRleCBkZjYxYzZhYTM5MzU1NDdhYzc4NTE3M2RlZTEw
N2I1MGMzYTQwZjZiLi4xYmUxNTZkOTM4MDlkMGM5ZGZhYTFiYWU2OWEyNmU1ZDRmYjU2ZmYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJh
bWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJDYWxsRnJh
bWUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSBl
eHBsaWNpdCBEZWJ1Z2dlckNhbGxGcmFtZShDYWxsRnJhbWUqKTsKIAotICAgIEpTX0VYUE9SVF9Q
UklWQVRFIFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNhbGxlckZyYW1lKCk7CisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBjYWxsZXJGcmFtZSgp
OwogICAgIEV4ZWNTdGF0ZSogZXhlYygpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbEZyYW1lOyB9CiAg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgU291cmNlSUQgc291cmNlSUQoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCmluZGV4IGIxMGJlOGNmM2UwY2Mw
YjNkNTQ0OTExN2U2OGI3ODYzMjE1OTZhZTAuLjZiYTQyNDdjYjZiYTIxNzYzNTk4NWJjMzNjOWEz
Yjc0NzEyNzA1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklU
Q29tcGlsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVy
LmgKQEAgLTMxMyw3ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGVudHJ5LT5tX3Jlc2h1ZmZs
aW5ncy5zaHJpbmtUb0ZpdCgpOwogICAgIH0KICAgICAKLSAgICBQYXNzUmVmUHRyPEpJVENvZGU+
IGppdENvZGUoKSB7IHJldHVybiBtX2ppdENvZGU7IH0KKyAgICBSZWZQdHI8SklUQ29kZT4gaml0
Q29kZSgpIHsgcmV0dXJuIG1faml0Q29kZTsgfQogICAgIAogICAgIFZlY3RvcjxMYWJlbD4mIGJs
b2NrSGVhZHMoKSB7IHJldHVybiBtX2Jsb2NrSGVhZHM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAK
aW5kZXggYjM3ZmFhZGIwYTA2ZGU1NWJiNTg2Njc1NjI1ZmEyZTc0NzMyNDA0MC4uZjMzZDQwNWNi
YWNkNjYzMWNiMjk0NmYwNWVkOWJmMzMxYTIzZmE0OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBA
IC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fcmVtYWluaW5nQ2FwYWNpdHlG
b3JGcmFtZUNhcHR1cmU7CiB9OwogCi1QYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRl
U2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXpl
KQorUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tTaXplKQogewogICAgIGlmICghZXhlYykKICAgICAg
ICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRlKCk7CkBAIC05OCw3ICs5OCw3IEBAIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIHNpemVfdCBtCiAgICAgcmV0dXJuIFNjcmlwdENhbGxTdGFjazo6Y3JlYXRl
KGZyYW1lcyk7CiB9CiAKLVBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRD
YWxsU3RhY2tGb3JDb25zb2xlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBzaXplX3QgbWF4U3RhY2tT
aXplKQorUmVmPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRm9yQ29uc29s
ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgc2l6ZV90IG1heFN0YWNrU2l6ZSkKIHsKICAgICBpZiAo
IWV4ZWMpCiAgICAgICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNyZWF0ZSgpOwpAQCAtMTI5
LDcgKzEyOSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RTb3VyY2VJbmZvcm1hdGlvbkZyb21FeGNl
cHRpb24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0CiAgICAgZXhlYy0+Y2xlYXJFeGNl
cHRpb24oKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNjcmlwdENh
bGxTdGFja0Zyb21FeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6RXhjZXB0aW9u
KiBleGNlcHRpb24sIHNpemVfdCBtYXhTdGFja1NpemUpCitSZWY8U2NyaXB0Q2FsbFN0YWNrPiBj
cmVhdGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBK
U0M6OkV4Y2VwdGlvbiogZXhjZXB0aW9uLCBzaXplX3QgbWF4U3RhY2tTaXplKQogewogICAgIFZl
Y3RvcjxTY3JpcHRDYWxsRnJhbWU+IGZyYW1lczsKICAgICBSZWZDb3VudGVkQXJyYXk8U3RhY2tG
cmFtZT4gc3RhY2tUcmFjZSA9IGV4Y2VwdGlvbi0+c3RhY2soKTsKQEAgLTE2Miw3ICsxNjIsNyBA
QCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4
Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSogZQogICAgIHJldHVybiBTY3JpcHRDYWxsU3RhY2s6OmNy
ZWF0ZShmcmFtZXMpOwogfQogCi1QYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4gY3JlYXRlU2Ny
aXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBza2lwQXJndW1lbnRD
b3VudCkKK1JlZjxTY3JpcHRBcmd1bWVudHM+IGNyZWF0ZVNjcmlwdEFyZ3VtZW50cyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgc2tpcEFyZ3VtZW50Q291bnQpCiB7CiAgICAgVmVjdG9y
PERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlPiBhcmd1bWVudHM7CiAgICAgc2l6ZV90IGFyZ3VtZW50
Q291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCmluZGV4IGRjNmYz
YTc0N2NlMTU4NTcyMDM5YmVmY2M5NDU0OTIzOTRlZTliZDUuLmIwYzBkYzAxYjEzMTg2YjI5NmE3
MDNjY2Y3MWViYjNlOTg1OWEyNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oCkBAIC00NiwxMCArNDYsMTAg
QEAgY2xhc3MgU2NyaXB0QXJndW1lbnRzOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogCiAvLyBG
SVhNRTogVGhlIHN1YnRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZXNlIHNob3VsZCBiZSBlbGlt
aW5hdGVkLgotSlNfRVhQT1JUX1BSSVZBVEUgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNy
ZWF0ZVNjcmlwdENhbGxTdGFjayhKU0M6OkV4ZWNTdGF0ZSosIHNpemVfdCBtYXhTdGFja1NpemUp
OwotSlNfRVhQT1JUX1BSSVZBVEUgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNyZWF0ZVNj
cmlwdENhbGxTdGFja0ZvckNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBzaXplX3QgbWF4U3RhY2tT
aXplKTsKLUpTX0VYUE9SVF9QUklWQVRFIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBjcmVh
dGVTY3JpcHRDYWxsU3RhY2tGcm9tRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFeGNl
cHRpb24qLCBzaXplX3QgbWF4U3RhY2tTaXplKTsKLUpTX0VYUE9SVF9QUklWQVRFIFBhc3NSZWZQ
dHI8U2NyaXB0QXJndW1lbnRzPiBjcmVhdGVTY3JpcHRBcmd1bWVudHMoSlNDOjpFeGVjU3RhdGUq
LCB1bnNpZ25lZCBza2lwQXJndW1lbnRDb3VudCk7CitKU19FWFBPUlRfUFJJVkFURSBSZWY8U2Ny
aXB0Q2FsbFN0YWNrPiBjcmVhdGVTY3JpcHRDYWxsU3RhY2soSlNDOjpFeGVjU3RhdGUqLCBzaXpl
X3QgbWF4U3RhY2tTaXplKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxTY3JpcHRDYWxsU3RhY2s+
IGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoSlNDOjpFeGVjU3RhdGUqLCBzaXplX3Qg
bWF4U3RhY2tTaXplKTsKK0pTX0VYUE9SVF9QUklWQVRFIFJlZjxTY3JpcHRDYWxsU3RhY2s+IGNy
ZWF0ZVNjcmlwdENhbGxTdGFja0Zyb21FeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkV4
Y2VwdGlvbiosIHNpemVfdCBtYXhTdGFja1NpemUpOworSlNfRVhQT1JUX1BSSVZBVEUgUmVmPFNj
cmlwdEFyZ3VtZW50cz4gY3JlYXRlU2NyaXB0QXJndW1lbnRzKEpTQzo6RXhlY1N0YXRlKiwgdW5z
aWduZWQgc2tpcEFyZ3VtZW50Q291bnQpOwogCiB9IC8vIG5hbWVzcGFjZSBJbnNwZWN0b3IKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9y
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAK
aW5kZXggODU5YjRhZDY0NTExNWVmN2RiNzM5OWU4ZDEyZDQ5NDQ0ZDk3M2FhYS4uYmI0OWU3MzZi
Y2Q1NTRjYmU2NzgyMTlkY2FlMDc3ODU5ZjY2MDEwOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCkBAIC0yMTMsMTEgKzIxMywxMSBA
QCBkb3VibGUgRXhlY3V0YWJsZUFsbG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNp
emVfdCBhZGRlZE1lbW9yeVVzYWdlKQogCiB9CiAKLVBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9y
eUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUlu
Qnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCitSZWZQ
dHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUo
Vk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVm
Zm9ydCBlZmZvcnQpCiB7CiAgICAgUmVmUHRyPEV4ZWN1dGFibGVNZW1vcnlIYW5kbGU+IHJlc3Vs
dCA9IGFsbG9jYXRvcigpLT5hbGxvY2F0ZShzaXplSW5CeXRlcywgb3duZXJVSUQpOwogICAgIFJF
TEVBU0VfQVNTRVJUKHJlc3VsdCB8fCBlZmZvcnQgIT0gSklUQ29tcGlsYXRpb25NdXN0U3VjY2Vl
ZCk7Ci0gICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAogc2l6ZV90IEV4ZWN1dGFibGVBbGxvY2F0b3I6OmNvbW1pdHRlZEJ5dGVDb3VudCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCmluZGV4IDY0
MzVjNjliOTM4NWVlZmM0MzdmNmQyOTVhZWYxZGE3NmFlYTkxMjUuLmQyOTY0ZDEyYWVhMTVjY2Qz
MjI5ODg2YjgzZDBiYjQ5ODEwNTNhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvRXhlY3V0YWJsZUFsbG9jYXRvci5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSA8d3Rm
L01ldGFBbGxvY2F0b3JIYW5kbGUuaD4KICNpbmNsdWRlIDx3dGYvTWV0YUFsbG9jYXRvci5oPgog
I2luY2x1ZGUgPHd0Zi9QYWdlQWxsb2NhdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTExMyw3ICsxMTIsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZHVtcFByb2Zp
bGUoKSB7IH0KICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxFeGVjdXRhYmxlTWVtb3J5SGFuZGxl
PiBhbGxvY2F0ZShWTSYsIHNpemVfdCBzaXplSW5CeXRlcywgdm9pZCogb3duZXJVSUQsIEpJVENv
bXBpbGF0aW9uRWZmb3J0KTsKKyAgICBSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gYWxs
b2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxh
dGlvbkVmZm9ydCk7CiAKICNpZiBFTkFCTEUoQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKICAgICBz
dGF0aWMgdm9pZCBtYWtlV3JpdGFibGUodm9pZCogc3RhcnQsIHNpemVfdCBzaXplKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yRml4ZWRW
TVBvb2wuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9y
Rml4ZWRWTVBvb2wuY3BwCmluZGV4IDNiZmEzNjg1ODUzZjU4YzkyYjM4YzgwNjE5NTIyNzRjZGIz
MWZhYWIuLjI4MjNhZTIwNDcxNzhiMGJlM2Q3MTcyOTlkMjM3YmYxYjBiYmU2MWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvckZpeGVkVk1Q
b29sLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3JGaXhlZFZNUG9vbC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCBkb3VibGUgRXhlY3V0YWJsZUFs
bG9jYXRvcjo6bWVtb3J5UHJlc3N1cmVNdWx0aXBsaWVyKHNpemVfdCBhZGRlZE1lbW9yeVVzYWdl
KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLVBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhh
bmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6ZUluQnl0
ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9ydCBlZmZvcnQpCitSZWZQdHI8
RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJsZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0m
LCBzaXplX3Qgc2l6ZUluQnl0ZXMsIHZvaWQqIG93bmVyVUlELCBKSVRDb21waWxhdGlvbkVmZm9y
dCBlZmZvcnQpCiB7CiAgICAgaWYgKGVmZm9ydCAhPSBKSVRDb21waWxhdGlvbkNhbkZhaWwgJiYg
T3B0aW9uczo6cmVwb3J0TXVzdFN1Y2NlZWRFeGVjdXRhYmxlQWxsb2NhdGlvbnMoKSkgewogICAg
ICAgICBkYXRhTG9nKCJBbGxvY2F0aW5nICIsIHNpemVJbkJ5dGVzLCAiIGJ5dGVzIG9mIGV4ZWN1
dGFibGUgbWVtb3J5IHdpdGggSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZC5cbiIpOwpAQCAtMTc4
LDcgKzE3OCw3IEBAIFBhc3NSZWZQdHI8RXhlY3V0YWJsZU1lbW9yeUhhbmRsZT4gRXhlY3V0YWJs
ZUFsbG9jYXRvcjo6YWxsb2NhdGUoVk0mLCBzaXplX3Qgc2l6CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQotICAgIHJldHVybiByZXN1bHQucmVsZWFzZSgpOworICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKIHNpemVfdCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjb21taXR0
ZWRCeXRlQ291bnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L0xlZ2FjeVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdh
Y3lQcm9maWxlci5jcHAKaW5kZXggYWFlMTU2OGYzNjFiZDZlYmZjODQxYmY3YzI2MGJiNzMzMjNl
MTliNy4uNzg3ZDM2MmRjZTRjN2E2Y2NjZDdmYWI1MDE3OWI3MzZhNTc4OGNmZCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCkBAIC03
OCw3ICs3OCw3IEBAIHZvaWQgTGVnYWN5UHJvZmlsZXI6OnN0YXJ0UHJvZmlsaW5nKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSwgUGFzc1JlCiAgICAgbV9jdXJyZW50UHJvZmls
ZXMuYXBwZW5kKHByb2ZpbGVHZW5lcmF0b3IpOwogfQogCi1QYXNzUmVmUHRyPFByb2ZpbGU+IExl
Z2FjeVByb2ZpbGVyOjpzdG9wUHJvZmlsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5n
JiB0aXRsZSkKK1JlZlB0cjxQcm9maWxlPiBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKCFleGVjKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL0xlZ2FjeVByb2ZpbGVyLmgKaW5kZXggOGY2YWY0MGVlOTllYTRhOTA1MDFlN2VlZWE3Yjkw
Mjc1Y2VlM2VhMy4uYWYwYWI0MWUyNjcyMGM1NGFlNTNjZGNmNTk1M2UzMzEyZmJhNDhmYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKQEAg
LTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBDYWxsSWRlbnRpZmllciBjcmVhdGVD
YWxsSWRlbnRpZmllcihFeGVjU3RhdGUqLCBKU1ZhbHVlLCBjb25zdCBXVEY6OlN0cmluZyYgc291
cmNlVVJMLCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVt
bk51bWJlcik7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0UHJvZmlsaW5nKEV4
ZWNTdGF0ZSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgUGFzc1JlZlB0cjxTdG9wd2F0Y2g+
KTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBQYXNzUmVmUHRyPFByb2ZpbGU+IHN0b3BQcm9maWxp
bmcoRXhlY1N0YXRlKiwgY29uc3QgV1RGOjpTdHJpbmcmIHRpdGxlKTsKKyAgICBKU19FWFBPUlRf
UFJJVkFURSBSZWZQdHI8UHJvZmlsZT4gc3RvcFByb2ZpbGluZyhFeGVjU3RhdGUqLCBjb25zdCBX
VEY6OlN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgc3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVj
dCopOwogCiAgICAgLy8gVXNlZCB0byBpZ25vcmUgcHJvZmlsZSBub2RlIHN1YnRyZWVzIHJvb3Rl
ZCBhdCBJbmplY3RlZFNjcmlwdCBjYWxscy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5jZUNhY2hlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlSW5zdGFuY2VDYWNoZS5oCmluZGV4IDZlYmJiMGQ5OGJiM2I1MGZkNzlkN2U2
NzMxNjJhNTg4NzZmYTdkZTkuLjg2NWVlOGZmMjBiOWU4NWVmM2I3ZmYwNDQ2NzkxZTk0ODhlZTE5
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVJbnN0YW5j
ZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUluc3RhbmNl
Q2FjaGUuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkpTRGF0ZU1hdGguaCIKICNpbmNs
dWRlIDxhcnJheT4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmlu
ZGV4IDRjMjI1ZTUwNmExODY3OWE0ODFkYzhiNGNkY2RlYjU3NjAwZGNiMWIuLjZjYjA5YjAxYjM4
MjViODQ1NmU5NWMxYWJjOWRmZjJiODA2ZTQxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBTY3JpcHRF
eGVjdXRhYmxlOjppbnN0YWxsQ29kZShDb2RlQmxvY2sqIGdlbmVyaWNDb2RlQmxvY2spCiAgICAg
SGVhcDo6aGVhcCh0aGlzKS0+d3JpdGVCYXJyaWVyKHRoaXMpOwogfQogCi1QYXNzUmVmUHRyPENv
ZGVCbG9jaz4gU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAorUmVmUHRyPENvZGVC
bG9jaz4gU2NyaXB0RXhlY3V0YWJsZTo6bmV3Q29kZUJsb2NrRm9yKAogICAgIENvZGVTcGVjaWFs
aXphdGlvbktpbmQga2luZCwgSlNGdW5jdGlvbiogZnVuY3Rpb24sIEpTU2NvcGUqIHNjb3BlLCBK
U09iamVjdComIGV4Y2VwdGlvbikKIHsKICAgICBWTSogdm0gPSBzY29wZS0+dm0oKTsKQEAgLTI0
NCw3ICsyNDQsNyBAQCBQYXNzUmVmUHRyPENvZGVCbG9jaz4gU2NyaXB0RXhlY3V0YWJsZTo6bmV3
Q29kZUJsb2NrRm9yKAogICAgICAgICBleGNlcHRpb24gPSB2bS0+dGhyb3dFeGNlcHRpb24oCiAg
ICAgICAgICAgICBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwKICAgICAgICAgICAgIGVycm9y
LnRvRXJyb3JPYmplY3QoZ2xvYmFsT2JqZWN0LCBleGVjdXRhYmxlLT5tX3NvdXJjZSkpOwotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogCiAgICAgLy8g
UGFyc2luZyByZXZlYWxzIHdoZXRoZXIgb3VyIGZ1bmN0aW9uIHVzZXMgZmVhdHVyZXMgdGhhdCBy
ZXF1aXJlIGEgc2VwYXJhdGUgZnVuY3Rpb24gbmFtZSBvYmplY3QgaW4gdGhlIHNjb3BlIGNoYWlu
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCmluZGV4IGJkODNh
Y2Q0MTkzMmQzNDU0NGUzMmNjNmIyNmQyYzJmOGFhYzNkNjUuLjFjN2M4MDAwM2QyYTMyYmQ2YTMx
MWRhYzBkZTUzOTAxYThhZDc4MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0V4ZWN1dGFibGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmgKQEAgLTM5OCw3ICszOTgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9p
ZCBpbnN0YWxsQ29kZShDb2RlQmxvY2sqKTsKLSAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gbmV3
Q29kZUJsb2NrRm9yKENvZGVTcGVjaWFsaXphdGlvbktpbmQsIEpTRnVuY3Rpb24qLCBKU1Njb3Bl
KiwgSlNPYmplY3QqJiBleGNlcHRpb24pOworICAgIFJlZlB0cjxDb2RlQmxvY2s+IG5ld0NvZGVC
bG9ja0ZvcihDb2RlU3BlY2lhbGl6YXRpb25LaW5kLCBKU0Z1bmN0aW9uKiwgSlNTY29wZSosIEpT
T2JqZWN0KiYgZXhjZXB0aW9uKTsKICAgICBQYXNzUmVmUHRyPENvZGVCbG9jaz4gbmV3UmVwbGFj
ZW1lbnRDb2RlQmxvY2tGb3IoQ29kZVNwZWNpYWxpemF0aW9uS2luZCk7CiAgICAgCiAgICAgSlNP
YmplY3QqIHByZXBhcmVGb3JFeGVjdXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0Z1bmN0aW9uKiBm
dW5jdGlvbiwgSlNTY29wZSogc2NvcGUsIENvZGVTcGVjaWFsaXphdGlvbktpbmQga2luZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5
Vmlldy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlW
aWV3LmgKaW5kZXggMDA2OWIzODZkNzUwY2QyMmZjMDE2Mjk0MjAyYzYwZjY0M2I4ZDMxYS4uMzZl
MzdjYTMyYjFlNDJjNzU5YTA0Y2Y3NDgyNDFlZmFkMjg1YWEwZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTM3
LDExICszNywxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgR2VuZXJpY1R5cGVkQXJyYXlWaWV3KFBhc3NS
ZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgp
OwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3
PiBjcmVhdGUodW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmlj
VHlwZWRBcnJheVZpZXc+IGNyZWF0ZShjb25zdCB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBhcnJh
eSwgdW5zaWduZWQgbGVuZ3RoKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRB
cnJheVZpZXc+IGNyZWF0ZShQYXNzUmVmUHRyPEFycmF5QnVmZmVyPiwgdW5zaWduZWQgYnl0ZU9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdlbmVyaWNUeXBlZEFy
cmF5Vmlldz4gY3JlYXRlKHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3RhdGljIFJlZlB0cjxHZW5l
cmljVHlwZWRBcnJheVZpZXc+IGNyZWF0ZShjb25zdCB0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKiBh
cnJheSwgdW5zaWduZWQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdlbmVyaWNUeXBlZEFy
cmF5Vmlldz4gY3JlYXRlKFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+LCB1bnNpZ25lZCBieXRlT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEdlbmVy
aWNUeXBlZEFycmF5Vmlldz4gY3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpOwor
ICAgIHN0YXRpYyBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PiBjcmVhdGVVbmluaXRpYWxp
emVkKHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgCiAgICAgdHlwZW5hbWUgQWRhcHRvcjo6VHlwZSog
ZGF0YSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIEFkYXB0b3I6OlR5cGUq
PihiYXNlQWRkcmVzcygpKTsgfQogICAgIApAQCAtOTgsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAmJiBvZmZzZXQgKyBwb3MgPj0gb2Zmc2V0KTsKICAgICB9CiAgICAgCi0gICAgUGFz
c1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGludCBzdGFydCkgY29uc3Q7
Ci0gICAgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc+IHN1YmFycmF5KGludCBzdGFy
dCwgaW50IGVuZCkgY29uc3Q7CisgICAgUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5Vmlldz4gc3Vi
YXJyYXkoaW50IHN0YXJ0KSBjb25zdDsKKyAgICBSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3
PiBzdWJhcnJheShpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0OwogICAgIAogICAgIHZpcnR1YWwg
VHlwZWRBcnJheVR5cGUgZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5s
aW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlW
aWV3SW5saW5lcy5oCmluZGV4IGUzMjNhYjI2YmU5YzUzOWRkMzg4ZDkzYTY4MTVmNmJmNjhmMGM5
NGQuLjI1MzcyNjk2NWE2NjI3NDFmY2NmMGZhNjJmMGUxYjI0MDBlZGQ4ZTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZW5lcmljVHlwZWRBcnJh
eVZpZXdJbmxpbmVzLmgKQEAgLTQwLDI1ICs0MCwyNSBAQCBHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OkdlbmVyaWNUeXBlZEFycmF5VmlldygKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
QWRhcHRvcj4KLVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5l
cmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCitSZWZQ
dHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmNyZWF0ZSh1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVmUHRyPEFycmF5QnVm
ZmVyPiBidWZmZXIgPSBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGxlbmd0aCwgc2l6ZW9mKHR5cGVuYW1l
IEFkYXB0b3I6OlR5cGUpKTsKICAgICBpZiAoIWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjcmVhdGUoYnVmZmVyLnJlbGVhc2Uo
KSwgMCwgbGVuZ3RoKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KLVBhc3NSZWZQ
dHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+PiBHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmNyZWF0ZSgKK1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+
IEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXRlKAogICAgIGNvbnN0IHR5cGVu
YW1lIEFkYXB0b3I6OlR5cGUqIGFycmF5LCB1bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgUmVmUHRy
PEdlbmVyaWNUeXBlZEFycmF5Vmlldz4gcmVzdWx0ID0gY3JlYXRlKGxlbmd0aCk7CiAgICAgbWVt
Y3B5KHJlc3VsdC0+ZGF0YSgpLCBhcnJheSwgbGVuZ3RoICogc2l6ZW9mKHR5cGVuYW1lIEFkYXB0
b3I6OlR5cGUpKTsKLSAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVz
dWx0OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgotUGFzc1JlZlB0cjxHZW5lcmlj
VHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+IEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
Y3JlYXRlKAorUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4gR2VuZXJpY1R5
cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpjcmVhdGUoCiAgICAgUGFzc1JlZlB0cjxBcnJheUJ1ZmZl
cj4gcGFzc2VkQnVmZmVyLCB1bnNpZ25lZCBieXRlT2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7
CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPSBwYXNzZWRCdWZmZXI7CkBAIC03MSwy
NSArNzEsMjUgQEAgUGFzc1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+IEdl
bmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Y3JlYXQKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgQWRhcHRvcj4KLVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Pgor
UmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4KIEdlbmVyaWNUeXBlZEFycmF5
VmlldzxBZGFwdG9yPjo6Y3JlYXRlVW5pbml0aWFsaXplZCh1bnNpZ25lZCBsZW5ndGgpCiB7CiAg
ICAgUmVmUHRyPEFycmF5QnVmZmVyPiBidWZmZXIgPQogICAgICAgICBBcnJheUJ1ZmZlcjo6Y3Jl
YXRlVW5pbml0aWFsaXplZChsZW5ndGgsIHNpemVvZih0eXBlbmFtZSBBZGFwdG9yOjpUeXBlKSk7
CiAgICAgaWYgKCFidWZmZXIpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gY3JlYXRlKGJ1ZmZlci5yZWxlYXNlKCksIDAsIGxlbmd0aCk7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+Ci1QYXNzUmVmUHRyPEdlbmVyaWNUeXBlZEFy
cmF5VmlldzxBZGFwdG9yPj4KK1JlZlB0cjxHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj4+
CiBHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnN1YmFycmF5KGludCBzdGFydCkgY29u
c3QKIHsKICAgICByZXR1cm4gc3ViYXJyYXkoc3RhcnQsIGxlbmd0aCgpKTsKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgQWRhcHRvcj4KLVBhc3NSZWZQdHI8R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFk
YXB0b3I+PgorUmVmUHRyPEdlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPj4KIEdlbmVyaWNU
eXBlZEFycmF5VmlldzxBZGFwdG9yPjo6c3ViYXJyYXkoaW50IHN0YXJ0LCBpbnQgZW5kKSBjb25z
dAogewogICAgIHVuc2lnbmVkIG9mZnNldCwgbGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA3YThiYTk2
Mjk1ZDljNGQ4OGY5MzM5MjZjMGFiOWM3MmU0ZGMxNzQ1Li5hNDAyNDc1YTQzOWM1MzhlNGU3OGQy
ODVmN2JiZGI2ZjAyNzY1ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTDJSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjExNyw3ICsyMTE3LDcgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcihHQzNEZW51bSBw
bmFtZSwgRXhjZXB0aW9uQ29kZSYKICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xPUl9X
UklURU1BU0s6CiAgICAgICAgIHJldHVybiBnZXRCb29sZWFuQXJyYXlQYXJhbWV0ZXIocG5hbWUp
OwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRT
OgotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFVpbnQzMkFycmF5OjpjcmVhdGUobV9jb21w
cmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9ybWF0cy5z
aXplKCkpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhVaW50MzJBcnJheTo6Y3JlYXRl
KG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLmRhdGEoKSwgbV9jb21wcmVzc2VkVGV4dHVyZUZv
cm1hdHMuc2l6ZSgpKS5yZWxlYXNlKCkpOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNV
TExfRkFDRToKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5QYXJhbWV0ZXIocG5hbWUpOwogICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNVTExfRkFDRV9NT0RFOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMzEy
NzExMGY1NjExMzVhMDM5YjlhNjk0ZTRkNmFmOTA1MGU3ZTllZC4uNDRjNmY1ZDQ1ZjdiZWIwMTgw
NGQyZThhMTM5MDJhNDYxMWNmODRkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC05NTMsNyArOTUzLDcgQEAgV2Vi
R0xHZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lLCBFeGNlcHRpb25Db2RlJgogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTE9SX1dS
SVRFTUFTSzoKICAgICAgICAgcmV0dXJuIGdldEJvb2xlYW5BcnJheVBhcmFtZXRlcihwbmFtZSk7
CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFM6
Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oVWludDMyQXJyYXk6OmNyZWF0ZShtX2NvbXBy
ZXNzZWRUZXh0dXJlRm9ybWF0cy5kYXRhKCksIG1fY29tcHJlc3NlZFRleHR1cmVGb3JtYXRzLnNp
emUoKSkpOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKFVpbnQzMkFycmF5OjpjcmVhdGUo
bV9jb21wcmVzc2VkVGV4dHVyZUZvcm1hdHMuZGF0YSgpLCBtX2NvbXByZXNzZWRUZXh0dXJlRm9y
bWF0cy5zaXplKCkpLnJlbGVhc2UoKSk7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VM
TF9GQUNFOgogICAgICAgICByZXR1cm4gZ2V0Qm9vbGVhblBhcmFtZXRlcihwbmFtZSk7CiAgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q1VMTF9GQUNFX01PREU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmlu
ZGV4IGVlMDc4ZjQxZjY3ZTQ3NTM1NzIxODc2YjMzMzZkM2U5YTU1ZjJhMTMuLmMxMTU4NzIwYjEy
OWMzN2IxOWFmOTVmNjFhMDgyOGNhYjgzY2EwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0yNDk4
LDcgKzI0OTgsNyBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0
VW5pZm9ybShXZWJHTFByb2dyYW0qIHByb2dyYW0sIGNvbnN0CiAgICAgICAgICAgICBtX2NvbnRl
eHQtPmdldFVuaWZvcm1mdihvYmplY3RPclplcm8ocHJvZ3JhbSksIGxvY2F0aW9uLCB2YWx1ZSk7
CiAgICAgICAgIGlmIChsZW5ndGggPT0gMSkKICAgICAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8odmFsdWVbMF0pOwotICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKEZsb2F0MzJBcnJheTo6
Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9h
dDMyQXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKS5yZWxlYXNlKCkpOwogICAgIH0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpJTlQ6IHsKICAgICAgICAgR0MzRGludCB2YWx1ZVs0XSA9
IHswfTsKQEAgLTI1MDgsNyArMjUwOCw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpnZXRVbmlmb3JtKFdlYkdMUHJvZ3JhbSogcHJvZ3JhbSwgY29uc3QKICAgICAg
ICAgICAgIG1fY29udGV4dC0+Z2V0VW5pZm9ybWl2KG9iamVjdE9yWmVybyhwcm9ncmFtKSwgbG9j
YXRpb24sIHZhbHVlKTsKICAgICAgICAgaWYgKGxlbmd0aCA9PSAxKQogICAgICAgICAgICAgcmV0
dXJuIFdlYkdMR2V0SW5mbyh2YWx1ZVswXSk7Ci0gICAgICAgIHJldHVybiBXZWJHTEdldEluZm8o
SW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgpKTsKKyAgICAgICAgcmV0dXJuIFdlYkdM
R2V0SW5mbyhJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkucmVsZWFzZSgpKTsKICAg
ICB9CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Qk9PTDogewogICAgICAgICBHQzNEaW50
IHZhbHVlWzRdID0gezB9OwpAQCAtMjYwNyw3ICsyNjA3LDcgQEAgV2ViR0xHZXRJbmZvIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldFZlcnRleEF0dHJpYihHQzNEdWludCBpbmRleCwgR0Mz
RGVudW0KICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfQVRUUklCX0FSUkFZX1RZ
UEU6CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oc3RhdGUudHlwZSk7CiAgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6Q1VSUkVOVF9WRVJURVhfQVRUUklCOgotICAgICAgICByZXR1cm4g
V2ViR0xHZXRJbmZvKEZsb2F0MzJBcnJheTo6Y3JlYXRlKG1fdmVydGV4QXR0cmliVmFsdWVbaW5k
ZXhdLnZhbHVlLCA0KSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oRmxvYXQzMkFycmF5
OjpjcmVhdGUobV92ZXJ0ZXhBdHRyaWJWYWx1ZVtpbmRleF0udmFsdWUsIDQpLnJlbGVhc2UoKSk7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0
M0Q6OklOVkFMSURfRU5VTSwgImdldFZlcnRleEF0dHJpYiIsICJpbnZhbGlkIHBhcmFtZXRlciBu
YW1lIik7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKQEAgLTM5ODYsNyArMzk4Niw3
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEZsb2F0
QXJyYXlQYXJhbWV0ZXIoR0MzRGVudW0gcG5hCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICB9Ci0gICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9hdDMyQXJyYXk6
OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKSk7CisgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhGbG9hdDMy
QXJyYXk6OmNyZWF0ZSh2YWx1ZSwgbGVuZ3RoKS5yZWxlYXNlKCkpOwogfQogCiBXZWJHTEdldElu
Zm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0V2ViR0xJbnRBcnJheVBhcmFtZXRlcihH
QzNEZW51bSBwbmFtZSkKQEAgLTQwMDUsNyArNDAwNSw3IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpnZXRXZWJHTEludEFycmF5UGFyYW1ldGVyKEdDM0RlbnVtIHBu
YW1lCiAgICAgZGVmYXVsdDoKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKICAgICB9Ci0gICAg
cmV0dXJuIFdlYkdMR2V0SW5mbyhJbnQzMkFycmF5OjpjcmVhdGUodmFsdWUsIGxlbmd0aCkpOwor
ICAgIHJldHVybiBXZWJHTEdldEluZm8oSW50MzJBcnJheTo6Y3JlYXRlKHZhbHVlLCBsZW5ndGgp
LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2hlY2tU
ZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgYm9vbCBwcmVwYXJl
VG9EcmF3KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>