<?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>138486</bug_id>
          
          <creation_ts>2014-11-06 17:05:40 -0800</creation_ts>
          <short_desc>Make the Selector&apos;s specificity part of Selector matching</short_desc>
          <delta_ts>2014-11-07 18:05:30 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>buildbot</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1046972</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-06 17:05:40 -0800</bug_when>
    <thetext>Make the Selector&apos;s specificity part of Selector matching</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1046976</commentid>
    <comment_count>1</comment_count>
      <attachid>241150</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-06 17:24:18 -0800</bug_when>
    <thetext>Created attachment 241150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047009</commentid>
    <comment_count>2</comment_count>
      <attachid>241157</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-06 20:12:07 -0800</bug_when>
    <thetext>Created attachment 241157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047199</commentid>
    <comment_count>3</comment_count>
      <attachid>241157</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-11-07 15:08:23 -0800</bug_when>
    <thetext>Comment on attachment 241157
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047257</commentid>
    <comment_count>4</comment_count>
      <attachid>241157</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-07 18:05:27 -0800</bug_when>
    <thetext>Comment on attachment 241157
Patch

Clearing flags on attachment: 241157

Committed r175772: &lt;http://trac.webkit.org/changeset/175772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047258</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-11-07 18:05:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241150</attachid>
            <date>2014-11-06 17:24:18 -0800</date>
            <delta_ts>2014-11-06 20:12:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138486-20141106172429.patch</filename>
            <type>text/plain</type>
            <size>36061</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGVlOGQ4NDU1YjM5OWYw
NGYzMjhkMjQ4NmQ3ZDUxZGIwYjBkMmVkNC4uZTlkNjViZmI3MDQxNzZjZjc1Mjg1MGNiYzJiMmJi
MmM3MTM5MDAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE0LTExLTA2ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRoZSBT
ZWxlY3RvcidzIHNwZWNpZmljaXR5IHBhcnQgb2YgU2VsZWN0b3IgbWF0Y2hpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQ4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENTUyBTZWxlY3RvcnMg
TGV2ZWwgNCwgdGhlIHNwZWNpZmljaXR5IG9mIHNlbGVjdG9ycyBpcyBjb21wdXRlZCBkeW5hbWlj
YWxseQorICAgICAgICBiYXNlZCBvbiB3aGljaCBlbGVtZW50IGlzIGJlaW5nIG1hdGNoZWQuCisK
KyAgICAgICAgRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3I6CisgICAgICAgICAgICA6bWF0Y2hlcygj
Zm9vLCAuYmFyLCBiYXopCisgICAgICAgIGhhcyBhIHNwZWNpZmljaXR5IG9mCisgICAgICAgICAg
ICAoMSwgMCwgMCkgb24gPGJheiBpZD1mb28gY2xhc3M9YmFyPgorICAgICAgICAgICAgKDAsIDEs
IDApIG9uIDxiYXogY2xhc3M9YmFyPgorICAgICAgICAgICAgKDAsIDAsIDEpIG9uIDxiYXo+CisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNwZWNpZmljaXR5IG9mIGVhY2ggc2VsZWN0b3Igd2Fz
IGNvbXB1dGVkIHN0YXRpY2FsbHkgd2hlbiBwb3B1bGF0aW5nCisgICAgICAgIFJ1bGVTZXQuIFdp
dGggbW9yZSByZWNlbnQgQ1NTLCB0aGlzIGdpdmVzIHVzIHRoZSB3cm9uZyBzcGVjaWZpY2l0eSBi
ZWNhdXNlIHdlIGRvIG5vdCBrbm93CisgICAgICAgIGhvdyB0aGUgc2VsZWN0b3JzIGFwcGxpZXMg
dG8gdGhlIHRhcmdldC4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG9uZSB0aW55IHN0ZXAg
aW4gdGhlIGRpcmVjdGlvbiBvZiBkeW5hbWljIHNwZWNpZmljaXR5LiBUaGUgc3BlY2lmaWNpdHkK
KyAgICAgICAgaXMgcmVtb3ZlZCBmcm9tIFJ1bGVTZXQgYW5kIGlzIG1vdmVkIGluc2lkZSBTZWxl
Y3RvciBNYXRjaGluZy4KKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c3BlY2lmaWNpdHlGb3JPbmVTZWxlY3Rvcik6CisgICAg
ICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRj
aGVkUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6c29ydEFu
ZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29s
bGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bXBhcmVSdWxlcyk6CisgICAgICAgICogY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmg6CisgICAg
ICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZU1hdGNoQmFz
ZWRPblJ1bGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRhOjpSdWxlRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjppc1NlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKTog
RGVsZXRlZC4KKyAgICAgICAgKiBjc3MvUnVsZVNldC5oOgorICAgICAgICAoV2ViQ29yZTo6UnVs
ZURhdGE6Om1hdGNoQmFzZWRPblJ1bGVIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVEYXRh
OjpoYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6c3BlY2lmaWNpdHkpOiBEZWxldGVkLgor
ICAgICAgICAqIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDaGVja2VyOjptYXRjaCk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgor
ICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpjaGVja1Jl
Z2lvblNlbGVjdG9yKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6
OlNlbGVjdG9yQ29kZUdlbmVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBp
bGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKToKKyAg
ICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1w
bGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNv
bXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0
b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6c2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6c2VsZWN0b3JD
aGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKiBk
b20vU2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0
OjpzZWxlY3Rvck1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6
c2VsZWN0b3JDbG9zZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4
ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVD
b21waWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yRGF0YUxpc3Q6OmV4ZWN1dGUpOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6CisK
IDIwMTQtMTEtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBN
b3ZlICdzaXplJyBDU1MgcHJvcGVydHkgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGI0MGFjMTA2YzA1NzgxNzIxN2MzMTc4ZjZkNzE3NjNk
MzgxMTI5Y2YuLjhiNTM0OThmZGE4ZjliYjE0ZmM4ODIxYjkyYzAwYWQxZGE3NjE1ZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtOTYsNyArOTYsNyBAQCBpbmxpbmUgdW5zaWdu
ZWQgQ1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5Rm9yT25lU2VsZWN0b3IoKSBjb25zdAogICAgIC8v
IGlzbid0IHF1aXRlIGNvcnJlY3QuCiAgICAgc3dpdGNoIChtYXRjaCgpKSB7CiAgICAgY2FzZSBJ
ZDoKLSAgICAgICAgcmV0dXJuIDB4MTAwMDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oU2VsZWN0b3JTcGVjaWZpY2l0eUluY3JlbWVudDo6Q2xhc3NBKTsKIAogICAgIGNh
c2UgUGFnZVBzZXVkb0NsYXNzOgogICAgICAgICBicmVhazsKQEAgLTEyOCw5ICsxMjgsOSBAQCBp
bmxpbmUgdW5zaWduZWQgQ1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5Rm9yT25lU2VsZWN0b3IoKSBj
b25zdAogICAgIGNhc2UgQ29udGFpbjoKICAgICBjYXNlIEJlZ2luOgogICAgIGNhc2UgRW5kOgot
ICAgICAgICByZXR1cm4gMHgxMDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oU2VsZWN0b3JTcGVjaWZpY2l0eUluY3JlbWVudDo6Q2xhc3NCKTsKICAgICBjYXNlIFRhZzoK
LSAgICAgICAgcmV0dXJuICh0YWdRTmFtZSgpLmxvY2FsTmFtZSgpICE9IHN0YXJBdG9tKSA/IDEg
OiAwOworICAgICAgICByZXR1cm4gKHRhZ1FOYW1lKCkubG9jYWxOYW1lKCkgIT0gc3RhckF0b20p
ID8gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFNlbGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQ6OkNs
YXNzQykgOiAwOwogICAgIGNhc2UgVW5rbm93bjoKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCBiMjEyNGUxNTM0MTIyNDBiM2MzNzZiY2IwZmVm
ZmM1M2RiMzcyNjM3Li42MTMwYzczODhjOTNlZjE4ZWExZGZjMjA1MGEzOTlmOGUzN2Q5ZWYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtMjksNiArMjksMTIgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBDU1NTZWxlY3Rvckxpc3Q7CiAKKyAgICBlbnVtIGNsYXNzIFNl
bGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQgeworICAgICAgICBDbGFzc0EgPSAweDEwMDAwLAor
ICAgICAgICBDbGFzc0IgPSAweDEwMCwKKyAgICAgICAgQ2xhc3NDID0gMQorICAgIH07CisKICAg
ICAvLyB0aGlzIGNsYXNzIHJlcHJlc2VudHMgYSBzZWxlY3RvciBmb3IgYSBTdHlsZVJ1bGUKICAg
ICBjbGFzcyBDU1NTZWxlY3RvciB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXggZGU3Mzc3
N2M5Nzg0YjA4NjlmNzRlZjYxOTNiMGQ0OThkNzdhNjg5NC4uODZiMDdiMjU1MDk1NGE1Yzk2OGJm
Yzg5ZmI3YjY5YzFmZGNkZTgzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1l
bnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVD
b2xsZWN0b3IuY3BwCkBAIC04NiwxMSArODYsMTEgQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHls
ZVJ1bGU+PiYgRWxlbWVudFJ1bGVDb2xsZWN0b3I6Om1hdGNoZWRSdWxlTGlzdCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fbWF0Y2hlZFJ1bGVMaXN0OwogfQogCi1pbmxpbmUgdm9pZCBFbGVtZW50UnVs
ZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFJ1bGUoY29uc3QgUnVsZURhdGEqIHJ1bGUpCitpbmxpbmUg
dm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6YWRkTWF0Y2hlZFJ1bGUoY29uc3QgTWF0Y2hlZFJ1
bGUmIG1hdGNoZWRSdWxlKQogewogICAgIGlmICghbV9tYXRjaGVkUnVsZXMpCi0gICAgICAgIG1f
bWF0Y2hlZFJ1bGVzID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8Y29uc3QgUnVsZURhdGEqLCAz
Mj4+KCk7Ci0gICAgbV9tYXRjaGVkUnVsZXMtPmFwcGVuZChydWxlKTsKKyAgICAgICAgbV9tYXRj
aGVkUnVsZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxNYXRjaGVkUnVsZSwgMzI+PigpOwor
ICAgIG1fbWF0Y2hlZFJ1bGVzLT5hcHBlbmQobWF0Y2hlZFJ1bGUpOwogfQogCiB2b2lkIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjpjbGVhck1hdGNoZWRSdWxlcygpCkBAIC0yMDIsMTggKzIwMiwxOCBA
QCB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMo
KQogCiAgICAgc29ydE1hdGNoZWRSdWxlcygpOwogCi0gICAgVmVjdG9yPGNvbnN0IFJ1bGVEYXRh
KiwgMzI+JiBtYXRjaGVkUnVsZXMgPSAqbV9tYXRjaGVkUnVsZXM7CisgICAgVmVjdG9yPE1hdGNo
ZWRSdWxlLCAzMj4mIG1hdGNoZWRSdWxlcyA9ICptX21hdGNoZWRSdWxlczsKICAgICBpZiAobV9t
b2RlID09IFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6Q29sbGVjdGluZ1J1bGVzKSB7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtYXRjaGVkUnVsZXMuc2l6ZSgpOyArK2kpCi0gICAg
ICAgICAgICBtX21hdGNoZWRSdWxlTGlzdC5hcHBlbmQobWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCkp
OworICAgICAgICAgICAgbV9tYXRjaGVkUnVsZUxpc3QuYXBwZW5kKG1hdGNoZWRSdWxlc1tpXS5y
dWxlRGF0YS0+cnVsZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIE5vdyB0
cmFuc2ZlciB0aGUgc2V0IG9mIG1hdGNoZWQgcnVsZXMgb3ZlciB0byBvdXIgbGlzdCBvZiBkZWNs
YXJhdGlvbnMuCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1hdGNoZWRSdWxlcy5zaXpl
KCk7IGkrKykgewotICAgICAgICBpZiAobV9zdHlsZSAmJiBtYXRjaGVkUnVsZXNbaV0tPmNvbnRh
aW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQorICAgIGZvciAoY29uc3QgTWF0Y2hlZFJ1
bGUmIG1hdGNoZWRSdWxlIDogbWF0Y2hlZFJ1bGVzKSB7CisgICAgICAgIGlmIChtX3N0eWxlICYm
IG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3Io
KSkKICAgICAgICAgICAgIG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICBtX3Jlc3VsdC5h
ZGRNYXRjaGVkUHJvcGVydGllcyhtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+cHJvcGVydGllcygp
LCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBl
KCksIG1hdGNoZWRSdWxlc1tpXS0+cHJvcGVydHlXaGl0ZWxpc3RUeXBlKE1hdGNoaW5nVUFSdWxl
c1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpKSk7CisgICAgICAgIG1fcmVzdWx0LmFkZE1hdGNo
ZWRQcm9wZXJ0aWVzKG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5ydWxlKCktPnByb3BlcnRpZXMoKSwg
bWF0Y2hlZFJ1bGUucnVsZURhdGEtPnJ1bGUoKSwgbWF0Y2hlZFJ1bGUucnVsZURhdGEtPmxpbmtN
YXRjaFR5cGUoKSwgbWF0Y2hlZFJ1bGUucnVsZURhdGEtPnByb3BlcnR5V2hpdGVsaXN0VHlwZShN
YXRjaGluZ1VBUnVsZXNTY29wZTo6aXNNYXRjaGluZ1VBUnVsZXMoKSkpOwogICAgIH0KIH0KIApA
QCAtMjc0LDEyICsyNzQsMzEgQEAgdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6bWF0Y2hVQVJ1
bGVzKFJ1bGVTZXQqIHJ1bGVzKQogICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpOwog
fQogCi1pbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3Qg
UnVsZURhdGEmIHJ1bGVEYXRhKQoraW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1
bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQmIHNwZWNpZmljaXR5
KQogewogICAgIC8vIFdlIGtub3cgYSBzdWZmaWNpZW50bHkgc2ltcGxlIHNpbmdsZSBwYXJ0IHNl
bGVjdG9yIG1hdGNoZXMgc2ltcGx5IGJlY2F1c2Ugd2UgZm91bmQgaXQgZnJvbSB0aGUgcnVsZSBo
YXNoIHdoZW4gZmlsdGVyaW5nIHRoZSBSdWxlU2V0LgogICAgIC8vIFRoaXMgaXMgbGltaXRlZCB0
byBIVE1MIG9ubHkgc28gd2UgZG9uJ3QgbmVlZCB0byBjaGVjayB0aGUgbmFtZXNwYWNlIChiZWNh
dXNlIG9mIHRhZyBuYW1lIG1hdGNoKS4KLSAgICBpZiAocnVsZURhdGEuaGFzUmlnaHRtb3N0U2Vs
ZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goKSAmJiBtX2VsZW1lbnQuaXNIVE1MRWxl
bWVudCgpKSB7CisgICAgTWF0Y2hCYXNlZE9uUnVsZUhhc2ggbWF0Y2hCYXNlZE9uUnVsZUhhc2gg
PSBydWxlRGF0YS5tYXRjaEJhc2VkT25SdWxlSGFzaCgpOworICAgIGlmIChtYXRjaEJhc2VkT25S
dWxlSGFzaCAhPSBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Tm9uZSAmJiBtX2VsZW1lbnQuaXNIVE1M
RWxlbWVudCgpKSB7CiAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9wc2V1ZG9TdHlsZVJl
cXVlc3QucHNldWRvSWQgPT0gTk9QU0VVRE8sICJJZiB3ZSBtYXRjaCBiYXNlZCBvbiB0aGUgcnVs
ZSBoYXNoIHdoaWxlIGNvbGxlY3RpbmcgZm9yIGEgcGFydGljdWxhciBwc2V1ZG8gZWxlbWVudCBJ
RCwgd2Ugd291bGQgYWRkIGluY29ycmVjdCBydWxlcyBmb3IgdGhhdCBwc2V1ZG8gZWxlbWVudCBJ
RC4gV2Ugc2hvdWxkIG5ldmVyIGVuZCBpbiBydWxlTWF0Y2hlcygpIHdpdGggYSBwc2V1ZG8gZWxl
bWVudCBpZiB0aGUgcnVsZURhdGEgY2Fubm90IG1hdGNoIGFueSBwc2V1ZG8gZWxlbWVudC4iKTsK
KworICAgICAgICBzd2l0Y2ggKG1hdGNoQmFzZWRPblJ1bGVIYXNoKSB7CisgICAgICAgIGNhc2Ug
TWF0Y2hCYXNlZE9uUnVsZUhhc2g6Ok5vbmU6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1hdGNoQmFzZWRPblJ1bGVI
YXNoOjpVbml2ZXJzYWw6CisgICAgICAgICAgICBzcGVjaWZpY2l0eSA9IDA7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Q2xhc3NBOgorICAg
ICAgICAgICAgc3BlY2lmaWNpdHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2VsZWN0b3JTcGVj
aWZpY2l0eUluY3JlbWVudDo6Q2xhc3NBKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpDbGFzc0I6CisgICAgICAgICAgICBzcGVjaWZpY2l0
eSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihTZWxlY3RvclNwZWNpZmljaXR5SW5jcmVtZW50OjpD
bGFzc0IpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWF0Y2hCYXNlZE9uUnVs
ZUhhc2g6OkNsYXNzQzoKKyAgICAgICAgICAgIHNwZWNpZmljaXR5ID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFNlbGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQ6OkNsYXNzQyk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI5
NiwxMiArMzE1LDE1IEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0
Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiAgICAgfQogCiAgICAgaWYgKGNvbXBpbGVk
U2VsZWN0b3JDaGVja2VyICYmIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzKCkgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgIFNl
bGVjdG9yQ29tcGlsZXI6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIgPSBT
ZWxlY3RvckNvbXBpbGVyOjpzaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihjb21waWxlZFNl
bGVjdG9yQ2hlY2tlciwgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMoKSk7Ci0gICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UoIXNlbGVjdG9yQ2hlY2tlcigmbV9lbGVtZW50KSB8fCBtX3BzZXVk
b1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCA9PSBOT1BTRVVETywgIldoZW4gbWF0Y2hpbmcgcHNldWRv
IGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNoZWNrZXIgd2l0
aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7CisgICAgICAg
IFNlbGVjdG9yQ29tcGlsZXI6OlJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2Vs
ZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVj
dG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBydWxlRGF0YS5jb21w
aWxhdGlvblN0YXR1cygpKTsKKyNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAorICAgICAgICB1bnNp
Z25lZCBpZ25vcmVTcGVjaWZpY2l0eTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghc2Vs
ZWN0b3JDaGVja2VyKCZtX2VsZW1lbnQsICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1ZG9T
dHlsZVJlcXVlc3QucHNldWRvSWQgPT0gTk9QU0VVRE8sICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBl
bGVtZW50cywgd2Ugc2hvdWxkIG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhv
dXQgY29udGV4dCB1bmxlc3MgaXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOworI2VuZGlmCiAj
aWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKICAgICAgICAgcnVsZURhdGEuY29tcGlsZWRT
ZWxlY3RvclVzZWQoKTsKICNlbmRpZgotICAgICAgICByZXR1cm4gc2VsZWN0b3JDaGVja2VyKCZt
X2VsZW1lbnQpOworICAgICAgICByZXR1cm4gc2VsZWN0b3JDaGVja2VyKCZtX2VsZW1lbnQsICZz
cGVjaWZpY2l0eSk7CiAgICAgfQogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQog
CkBAIC0zMTUsMTggKzMzNywxOCBAQCBpbmxpbmUgYm9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogICAgIGlmIChjb21waWxlZFNl
bGVjdG9yQ2hlY2tlcikgewogICAgICAgICBBU1NFUlQocnVsZURhdGEuY29tcGlsYXRpb25TdGF0
dXMoKSA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hl
Y2tpbmdDb250ZXh0KTsKIAotICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yQ2hlY2tlciwgcnVsZURhdGEuY29tcGlsYXRpb25TdGF0dXMoKSk7CisgICAgICAgIFNlbGVj
dG9yQ29tcGlsZXI6OlJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250
ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoY29tcGlsZWRTZWxlY3RvckNo
ZWNrZXIsIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzKCkpOwogCiAjaWYgQ1NTX1NFTEVDVE9S
X0pJVF9QUk9GSUxJTkcKICAgICAgICAgcnVsZURhdGEuY29tcGlsZWRTZWxlY3RvclVzZWQoKTsK
ICNlbmRpZgotICAgICAgICByZXR1cm4gc2VsZWN0b3JDaGVja2VyKCZtX2VsZW1lbnQsICZjb250
ZXh0KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlcigmbV9lbGVtZW50LCAmY29udGV4
dCwgJnNwZWNpZmljaXR5KTsKICAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9K
SVQpCiAKICAgICAvLyBTbG93IHBhdGguCiAgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hl
Y2tlcihtX2VsZW1lbnQuZG9jdW1lbnQoKSk7Ci0gICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5t
YXRjaChydWxlRGF0YS5zZWxlY3RvcigpLCAmbV9lbGVtZW50LCBjb250ZXh0KTsKKyAgICByZXR1
cm4gc2VsZWN0b3JDaGVja2VyLm1hdGNoKHJ1bGVEYXRhLnNlbGVjdG9yKCksICZtX2VsZW1lbnQs
IGNvbnRleHQsIHNwZWNpZmljaXR5KTsKIH0KIAogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVz
LCBjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdCwgU3R5bGVSZXNvbHZlcjo6UnVsZVJh
bmdlJiBydWxlUmFuZ2UpCkBAIC0zNTQsMjMgKzM3NiwyNCBAQCB2b2lkIEVsZW1lbnRSdWxlQ29s
bGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRh
PiogcgogICAgICAgICBpZiAobV9zYW1lT3JpZ2luT25seSAmJiAhcnVsZURhdGEuaGFzRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYg
KHJ1bGVNYXRjaGVzKHJ1bGVEYXRhKSkgeworICAgICAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTsK
KyAgICAgICAgaWYgKHJ1bGVNYXRjaGVzKHJ1bGVEYXRhLCBzcGVjaWZpY2l0eSkpIHsKICAgICAg
ICAgICAgIC8vIFVwZGF0ZSBvdXIgZmlyc3QvbGFzdCBydWxlIGluZGljZXMgaW4gdGhlIG1hdGNo
ZWQgcnVsZXMgYXJyYXkuCiAgICAgICAgICAgICArK3J1bGVSYW5nZS5sYXN0UnVsZUluZGV4Owog
ICAgICAgICAgICAgaWYgKHJ1bGVSYW5nZS5maXJzdFJ1bGVJbmRleCA9PSAtMSkKICAgICAgICAg
ICAgICAgICBydWxlUmFuZ2UuZmlyc3RSdWxlSW5kZXggPSBydWxlUmFuZ2UubGFzdFJ1bGVJbmRl
eDsKIAogICAgICAgICAgICAgLy8gQWRkIHRoaXMgcnVsZSB0byBvdXIgbGlzdCBvZiBtYXRjaGVk
IHJ1bGVzLgotICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1bGUoJnJ1bGVEYXRhKTsKKyAgICAgICAg
ICAgIGFkZE1hdGNoZWRSdWxlKHsmcnVsZURhdGEsIHNwZWNpZmljaXR5fSk7CiAgICAgICAgIH0K
ICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoY29uc3QgUnVsZURh
dGEqIHIxLCBjb25zdCBSdWxlRGF0YSogcjIpCitzdGF0aWMgaW5saW5lIGJvb2wgY29tcGFyZVJ1
bGVzKE1hdGNoZWRSdWxlIHIxLCBNYXRjaGVkUnVsZSByMikKIHsKLSAgICB1bnNpZ25lZCBzcGVj
aWZpY2l0eTEgPSByMS0+c3BlY2lmaWNpdHkoKTsKLSAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIg
PSByMi0+c3BlY2lmaWNpdHkoKTsKLSAgICByZXR1cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZp
Y2l0eTIpID8gcjEtPnBvc2l0aW9uKCkgPCByMi0+cG9zaXRpb24oKSA6IHNwZWNpZmljaXR5MSA8
IHNwZWNpZmljaXR5MjsKKyAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTEgPSByMS5zcGVjaWZpY2l0
eTsKKyAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIgPSByMi5zcGVjaWZpY2l0eTsKKyAgICByZXR1
cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZpY2l0eTIpID8gcjEucnVsZURhdGEtPnBvc2l0aW9u
KCkgPCByMi5ydWxlRGF0YS0+cG9zaXRpb24oKSA6IHNwZWNpZmljaXR5MSA8IHNwZWNpZmljaXR5
MjsKIH0KIAogdm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6c29ydE1hdGNoZWRSdWxlcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCmluZGV4IGI2NTExZDVkYzFm
MDJmNWE5YmU2YmZmMmQyNGU3ZWRjM2I0Mzg4YTguLjE4YTUwY2I3YTI0ZTY2YzEyNjVmMjQ2MTM3
M2Y4NWE3M2Y4NDQ3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5oCkBAIC0zOCw2ICszOCwxMSBAQCBjbGFzcyBSdWxlRGF0YTsKIGNsYXNzIFJ1bGVTZXQ7CiBj
bGFzcyBTZWxlY3RvckZpbHRlcjsKIAorc3RydWN0IE1hdGNoZWRSdWxlIHsKKyAgICBjb25zdCBS
dWxlRGF0YSogcnVsZURhdGE7CisgICAgdW5zaWduZWQgc3BlY2lmaWNpdHk7Cit9OworCiBjbGFz
cyBFbGVtZW50UnVsZUNvbGxlY3RvciB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJ1bGVDb2xsZWN0
b3IoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUqIHN0eWxlLCBjb25zdCBEb2N1bWVudFJ1
bGVTZXRzJiBydWxlU2V0cywgY29uc3QgU2VsZWN0b3JGaWx0ZXImIHNlbGVjdG9yRmlsdGVyKQpA
QCAtODEsMTIgKzg2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxl
cyhjb25zdCBNYXRjaFJlcXVlc3QmLCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKICAgICB2
b2lkIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGNvbnN0IE1hdGNoUmVxdWVzdCYsIFN0
eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nUnVsZXNG
b3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qLCBjb25zdCBNYXRjaFJlcXVlc3QmLCBTdHls
ZVJlc29sdmVyOjpSdWxlUmFuZ2UmKTsKLSAgICBib29sIHJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVE
YXRhJik7CisgICAgYm9vbCBydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYsIHVuc2lnbmVkICZz
cGVjaWZpY2l0eSk7CiAKICAgICB2b2lkIHNvcnRNYXRjaGVkUnVsZXMoKTsKICAgICB2b2lkIHNv
cnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpOwogCi0gICAgdm9pZCBhZGRNYXRjaGVkUnVsZShj
b25zdCBSdWxlRGF0YSopOworICAgIHZvaWQgYWRkTWF0Y2hlZFJ1bGUoY29uc3QgTWF0Y2hlZFJ1
bGUmKTsKIAogICAgIEVsZW1lbnQmIG1fZWxlbWVudDsKICAgICBSZW5kZXJTdHlsZSogbV9zdHls
ZTsKQEAgLTEwMCw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgIFNlbGVjdG9yQ2hlY2tlcjo6TW9k
ZSBtX21vZGU7CiAgICAgYm9vbCBtX2NhblVzZUZhc3RSZWplY3Q7CiAKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8VmVjdG9yPGNvbnN0IFJ1bGVEYXRhKiwgMzI+PiBtX21hdGNoZWRSdWxlczsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPE1hdGNoZWRSdWxlLCAzMj4+IG1fbWF0Y2hlZFJ1bGVzOwog
CiAgICAgLy8gT3V0cHV0LgogICAgIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlPj4gbV9tYXRjaGVk
UnVsZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggNjk4ZTBjYTJmYjQ4YWNlODc3ZGIy
NDkxYzQ0YzAzMTAzNjJhY2E1Ni4uMTkwMGFhMWVmOTFkYzI0NGNiODEzYWI2Njc5Y2ZiMTRhNDdl
NGEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtNTMsMTggKzUzLDI4IEBAIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKGNvbnN0IENTU1NlbGVjdG9yJiBz
ZWxlY3RvcikKK3N0YXRpYyBpbmxpbmUgTWF0Y2hCYXNlZE9uUnVsZUhhc2ggY29tcHV0ZU1hdGNo
QmFzZWRPblJ1bGVIYXNoKGNvbnN0IENTU1NlbGVjdG9yJiBzZWxlY3RvcikKIHsKICAgICBpZiAo
c2VsZWN0b3IudGFnSGlzdG9yeSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Tm9uZTsKIAogICAgIGlmIChzZWxlY3Rvci5tYXRj
aCgpID09IENTU1NlbGVjdG9yOjpUYWcpIHsKLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBz
ZWxlY3Rvck5hbWVzcGFjZSA9IHNlbGVjdG9yLnRhZ1FOYW1lKCkubmFtZXNwYWNlVVJJKCk7Ci0g
ICAgICAgIHJldHVybiBzZWxlY3Rvck5hbWVzcGFjZSA9PSBzdGFyQXRvbSB8fCBzZWxlY3Rvck5h
bWVzcGFjZSA9PSB4aHRtbE5hbWVzcGFjZVVSSTsKKyAgICAgICAgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnUXVhbGlmaWVkTmFtZSA9IHNlbGVjdG9yLnRhZ1FOYW1lKCk7CisgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgc2VsZWN0b3JOYW1lc3BhY2UgPSB0YWdRdWFsaWZpZWROYW1lLm5hbWVz
cGFjZVVSSSgpOworICAgICAgICBpZiAoc2VsZWN0b3JOYW1lc3BhY2UgPT0gc3RhckF0b20gfHwg
c2VsZWN0b3JOYW1lc3BhY2UgPT0geGh0bWxOYW1lc3BhY2VVUkkpIHsKKyAgICAgICAgICAgIGlm
ICh0YWdRdWFsaWZpZWROYW1lID09IGFueVFOYW1lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpVbml2ZXJzYWw7CisgICAgICAgICAgICByZXR1cm4gTWF0
Y2hCYXNlZE9uUnVsZUhhc2g6OkNsYXNzQzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTWF0
Y2hCYXNlZE9uUnVsZUhhc2g6Ok5vbmU7CiAgICAgfQogICAgIGlmIChTZWxlY3RvckNoZWNrZXI6
OmlzQ29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvcigmc2VsZWN0b3IpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gc2VsZWN0b3IubWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6SWQgfHwg
c2VsZWN0b3IubWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3M7CisgICAgICAgIHJldHVybiBN
YXRjaEJhc2VkT25SdWxlSGFzaDo6Q2xhc3NCOworICAgIGlmIChzZWxlY3Rvci5tYXRjaCgpID09
IENTU1NlbGVjdG9yOjpJZCkKKyAgICAgICAgcmV0dXJuIE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpD
bGFzc0E7CisgICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKQor
ICAgICAgICByZXR1cm4gTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OkNsYXNzQjsKKyAgICByZXR1cm4g
TWF0Y2hCYXNlZE9uUnVsZUhhc2g6Ok5vbmU7CiB9CiAKIHN0YXRpYyBib29sIHNlbGVjdG9yQ2Fu
TWF0Y2hQc2V1ZG9FbGVtZW50KGNvbnN0IENTU1NlbGVjdG9yJiByb290U2VsZWN0b3IpCkBAIC0x
NDksOCArMTU5LDcgQEAgUnVsZURhdGE6OlJ1bGVEYXRhKFN0eWxlUnVsZSogcnVsZSwgdW5zaWdu
ZWQgc2VsZWN0b3JJbmRleCwgdW5zaWduZWQgcG9zaXRpb24sIEEKICAgICAsIG1fc2VsZWN0b3JJ
bmRleChzZWxlY3RvckluZGV4KQogICAgICwgbV9oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luKGFk
ZFJ1bGVGbGFncyAmIFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luKQogICAgICwgbV9wb3Np
dGlvbihwb3NpdGlvbikKLSAgICAsIG1fc3BlY2lmaWNpdHkoc2VsZWN0b3IoKS0+c3BlY2lmaWNp
dHkoKSkKLSAgICAsIG1faGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVs
ZUhhc2goaXNTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaCgqc2VsZWN0b3IoKSkp
CisgICAgLCBtX21hdGNoQmFzZWRPblJ1bGVIYXNoKHN0YXRpY19jYXN0PHVuc2lnbmVkPihjb21w
dXRlTWF0Y2hCYXNlZE9uUnVsZUhhc2goKnNlbGVjdG9yKCkpKSkKICAgICAsIG1fY2FuTWF0Y2hQ
c2V1ZG9FbGVtZW50KHNlbGVjdG9yQ2FuTWF0Y2hQc2V1ZG9FbGVtZW50KCpzZWxlY3RvcigpKSkK
ICAgICAsIG1fY29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKFdlYkNvcmU6OmNvbnRh
aW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcihzZWxlY3RvcigpKSkKICAgICAsIG1fbGlua01h
dGNoVHlwZShTZWxlY3RvckNoZWNrZXI6OmRldGVybWluZUxpbmtNYXRjaFR5cGUoc2VsZWN0b3Io
KSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBhM2RjNDBlMTJhNjc5MjE3YWFjM2E1ZTI4MDdkOGNm
ZTFmMTkyMjk5Li5lN2Q4YTBiMGNkMWQxM2JlODZiNzc4NjJjZjc4ZDg3N2UwM2JhYzU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9SdWxlU2V0LmgKQEAgLTU0LDYgKzU0LDE0IEBAIGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBj
bGFzcyBTdHlsZVJ1bGVSZWdpb247CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiAKK2VudW0g
Y2xhc3MgTWF0Y2hCYXNlZE9uUnVsZUhhc2ggOiB1bnNpZ25lZCB7CisgICAgTm9uZSwKKyAgICBV
bml2ZXJzYWwsCisgICAgQ2xhc3NBLAorICAgIENsYXNzQiwKKyAgICBDbGFzc0MKK307CisKIGNs
YXNzIFJ1bGVEYXRhIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11
bVNlbGVjdG9yQ29tcG9uZW50Q291bnQgPSA4MTkyOwpAQCAtNjYsOSArNzQsOCBAQCBwdWJsaWM6
CiAgICAgdW5zaWduZWQgc2VsZWN0b3JJbmRleCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3JJ
bmRleDsgfQogCiAgICAgYm9vbCBjYW5NYXRjaFBzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2Nhbk1hdGNoUHNldWRvRWxlbWVudDsgfQotICAgIGJvb2wgaGFzUmlnaHRtb3N0U2VsZWN0
b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2goKSBjb25zdCB7IHJldHVybiBtX2hhc1JpZ2h0
bW9zdFNlbGVjdG9yTWF0Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoOyB9CisgICAgTWF0Y2hCYXNl
ZE9uUnVsZUhhc2ggbWF0Y2hCYXNlZE9uUnVsZUhhc2goKSBjb25zdCB7IHJldHVybiBzdGF0aWNf
Y2FzdDxNYXRjaEJhc2VkT25SdWxlSGFzaD4obV9tYXRjaEJhc2VkT25SdWxlSGFzaCk7IH0KICAg
ICBib29sIGNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yOyB9Ci0gICAgdW5zaWduZWQgc3Bl
Y2lmaWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpZmljaXR5OyB9CiAgICAgdW5zaWduZWQg
bGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlua01hdGNoVHlwZTsgfQogICAgIGJv
b2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRG9jdW1l
bnRTZWN1cml0eU9yaWdpbjsgfQogICAgIFByb3BlcnR5V2hpdGVsaXN0VHlwZSBwcm9wZXJ0eVdo
aXRlbGlzdFR5cGUoYm9vbCBpc01hdGNoaW5nVUFSdWxlcyA9IGZhbHNlKSBjb25zdCB7IHJldHVy
biBpc01hdGNoaW5nVUFSdWxlcyA/IFByb3BlcnR5V2hpdGVsaXN0Tm9uZSA6IHN0YXRpY19jYXN0
PFByb3BlcnR5V2hpdGVsaXN0VHlwZT4obV9wcm9wZXJ0eVdoaXRlbGlzdFR5cGUpOyB9CkBAIC0x
MDEsOCArMTA4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGlzIG51bWJlciB3YXMgcGlja2VkIGZh
aXJseSBhcmJpdHJhcmlseS4gV2UgY2FuIHByb2JhYmx5IGxvd2VyIGl0IGlmIHdlIG5lZWQgdG8u
CiAgICAgLy8gU29tZSBzaW1wbGUgdGVzdGluZyBzaG93ZWQgPDEwMCwwMDAgUnVsZURhdGEncyBv
biBsYXJnZSBzaXRlcy4KICAgICB1bnNpZ25lZCBtX3Bvc2l0aW9uIDogMTg7Ci0gICAgdW5zaWdu
ZWQgbV9zcGVjaWZpY2l0eSA6IDI0OwotICAgIHVuc2lnbmVkIG1faGFzUmlnaHRtb3N0U2VsZWN0
b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2ggOiAxOworICAgIHVuc2lnbmVkIG1fbWF0Y2hC
YXNlZE9uUnVsZUhhc2ggOiAzOwogICAgIHVuc2lnbmVkIG1fY2FuTWF0Y2hQc2V1ZG9FbGVtZW50
IDogMTsKICAgICB1bnNpZ25lZCBtX2NvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvciA6
IDE7CiAgICAgdW5zaWduZWQgbV9saW5rTWF0Y2hUeXBlIDogMjsgLy8gIFNlbGVjdG9yQ2hlY2tl
cjo6TGlua01hdGNoTWFzawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRl
eCA0MWNmNzUwNjFjMDdjOTJmODU2NGNmN2RlZWFjZjk2N2Q4ZWY5NTFkLi44ZGQyZjMzOGIyM2Zj
OGViZmQ0N2U3ODY2NThlYTJkZDQ4ZTFlNTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcApAQCAtMTY4LDcgKzE2OCw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JD
aGVja2VyKERvY3VtZW50JiBkb2N1bWVudCkKIHsKIH0KIAotYm9vbCBTZWxlY3RvckNoZWNrZXI6
Om1hdGNoKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciwgRWxlbWVudCogZWxlbWVudCwgY29u
c3QgQ2hlY2tpbmdDb250ZXh0JiBwcm92aWRlZENvbnRleHQpIGNvbnN0Citib29sIFNlbGVjdG9y
Q2hlY2tlcjo6bWF0Y2goY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yLCBFbGVtZW50KiBlbGVt
ZW50LCBjb25zdCBDaGVja2luZ0NvbnRleHQmIHByb3ZpZGVkQ29udGV4dCwgdW5zaWduZWQmIHNw
ZWNpZmljaXR5KSBjb25zdAogewogICAgIENoZWNraW5nQ29udGV4dFdpdGhTdGF0dXMgY29udGV4
dChwcm92aWRlZENvbnRleHQsIHNlbGVjdG9yLCBlbGVtZW50KTsKICAgICBQc2V1ZG9JZCBwc2V1
ZG9JZCA9IE5PUFNFVURPOwpAQCAtMTc2LDYgKzE3Niw4IEBAIGJvb2wgU2VsZWN0b3JDaGVja2Vy
OjptYXRjaChjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IsIEVsZW1lbnQqIGVsZW1lbnQsIGNv
bnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoY29udGV4dC5wc2V1ZG9JZCAhPSBO
T1BTRVVETyAmJiBjb250ZXh0LnBzZXVkb0lkICE9IHBzZXVkb0lkKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzcGVjaWZpY2l0eSA9IHNlbGVjdG9yLT5zcGVjaWZpY2l0eSgpOwogICAg
IGlmIChjb250ZXh0LnBzZXVkb0lkID09IE5PUFNFVURPICYmIHBzZXVkb0lkICE9IE5PUFNFVURP
KSB7CiAgICAgICAgIGlmIChjb250ZXh0LnJlc29sdmluZ01vZGUgPT0gTW9kZTo6UmVzb2x2aW5n
U3R5bGUgJiYgcHNldWRvSWQgPCBGSVJTVF9JTlRFUk5BTF9QU0VVRE9JRCkKICAgICAgICAgICAg
IGNvbnRleHQuZWxlbWVudFN0eWxlLT5zZXRIYXNQc2V1ZG9TdHlsZShwc2V1ZG9JZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKaW5kZXggODA3NzcxNzQ0NWVhMzY4NTc0NjQ5YzE0
NTEzM2Q4NzdjMzY3YTI2Yy4uMjkwYmYxN2Y3OTE4ZTM4MDRjY2FkNTE0NWMyODQwODhkNGJlOTk4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAtNzIsNyArNzIsNyBAQCBw
dWJsaWM6CiAKICAgICBzdHJ1Y3QgQ2hlY2tpbmdDb250ZXh0V2l0aFN0YXR1czsKIAotICAgIGJv
b2wgbWF0Y2goY29uc3QgQ1NTU2VsZWN0b3IqLCBFbGVtZW50KiwgY29uc3QgQ2hlY2tpbmdDb250
ZXh0JikgY29uc3Q7CisgICAgYm9vbCBtYXRjaChjb25zdCBDU1NTZWxlY3RvciosIEVsZW1lbnQq
LCBjb25zdCBDaGVja2luZ0NvbnRleHQmLCB1bnNpZ25lZCYgc3BlY2lmaWNpdHkpIGNvbnN0Owog
CiAgICAgc3RhdGljIGJvb2wgdGFnTWF0Y2hlcyhjb25zdCBFbGVtZW50KiwgY29uc3QgUXVhbGlm
aWVkTmFtZSYpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvcihj
b25zdCBDU1NTZWxlY3RvciopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggMGVh
MTAyM2QyZTk1MjdjZTBkZjk0M2VhNjQxNDY1YTExMjVlNzI0Ny4uMzQ2Y2ZlZGU5ZWMyZGUwNGM5
ODRmOGM2OTAxN2NkMmYwMTRjY2MwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBA
IC01NzIsNyArNTcyLDggQEAgaW5saW5lIGJvb2wgY2hlY2tSZWdpb25TZWxlY3Rvcihjb25zdCBD
U1NTZWxlY3RvciogcmVnaW9uU2VsZWN0b3IsIEVsZW1lbnQqIHJlZ2kKICAgICBTZWxlY3RvckNo
ZWNrZXIgc2VsZWN0b3JDaGVja2VyKHJlZ2lvbkVsZW1lbnQtPmRvY3VtZW50KCkpOwogICAgIGZv
ciAoY29uc3QgQ1NTU2VsZWN0b3IqIHMgPSByZWdpb25TZWxlY3RvcjsgczsgcyA9IENTU1NlbGVj
dG9yTGlzdDo6bmV4dChzKSkgewogICAgICAgICBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29u
dGV4dCBzZWxlY3RvckNoZWNraW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OlF1ZXJ5
aW5nUnVsZXMpOwotICAgICAgICBpZiAoc2VsZWN0b3JDaGVja2VyLm1hdGNoKHMsIHJlZ2lvbkVs
ZW1lbnQsIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KSkKKyAgICAgICAgdW5zaWduZWQgaWdub3Jl
ZFNwZWNpZmljaXR5OworICAgICAgICBpZiAoc2VsZWN0b3JDaGVja2VyLm1hdGNoKHMsIHJlZ2lv
bkVsZW1lbnQsIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0LCBpZ25vcmVkU3BlY2lmaWNpdHkpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCAxZTMzYTk3OTJlYjk1
ZDEwZGM0NzY3YmZkMmY0YjdmZWExOWQxYWI0Li4wMTdhMTY3ZjgxZDFhMDUxMmI1Yzk1YzFhOTQ5
ZjYyNDRjNWI2NGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIu
Y3BwCkBAIC0zNTcsOSArMzU3LDcgQEAgcHJpdmF0ZToKICAgICBTdGFja0FsbG9jYXRvcjo6U3Rh
Y2tSZWZlcmVuY2UgbV9sYXN0VmlzaXRlZEVsZW1lbnQ7CiAgICAgU3RhY2tBbGxvY2F0b3I6OlN0
YWNrUmVmZXJlbmNlIG1fc3RhcnRFbGVtZW50OwogCi0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9ERUJV
R0dJTkcKICAgICBjb25zdCBDU1NTZWxlY3RvciogbV9vcmlnaW5hbFNlbGVjdG9yOwotI2VuZGlm
CiB9OwogCiBjb25zdCBBc3NlbWJsZXI6OlJlZ2lzdGVySUQgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpyZXR1cm5SZWdpc3RlciA9IEpTQzo6R1BSSW5mbzo6cmV0dXJuVmFsdWVHUFI7CkBAIC03OTgs
OSArNzk2LDcgQEAgaW5saW5lIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWMKICAgICAsIG1fZnVuY3Rpb25UeXBl
KEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKQogICAgICwgbV92aXNpdGVkTW9k
ZShWaXNpdGVkTW9kZTo6Tm9uZSkKICAgICAsIG1fZGVzY2VuZGFudEJhY2t0cmFja2luZ1N0YXJ0
SW5Vc2UoZmFsc2UpCi0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9ERUJVR0dJTkcKICAgICAsIG1fb3Jp
Z2luYWxTZWxlY3Rvcihyb290U2VsZWN0b3IpCi0jZW5kaWYKIHsKICNpZiBDU1NfU0VMRUNUT1Jf
SklUX0RFQlVHR0lORwogICAgIGRhdGFMb2dGKCJDb21waWxpbmcgXCIlc1wiXG4iLCBtX29yaWdp
bmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwpAQCAtMTYwOSw2ICsx
NjA1LDE0IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hl
Y2tlcigpCiAgICAgICAgIGdlbmVyYXRlUmVxdWVzdGVkUHNldWRvRWxlbWVudEVxdWFsc1RvU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50KGZhaWx1cmVPbkZ1bmN0aW9uRW50cnksIG1fc2VsZWN0b3JGcmFn
bWVudHMuZmlyc3QoKSwgY2hlY2tpbmdDb250ZXh0UmVnaXN0ZXIpOwogICAgIH0KIAorICAgIGlm
IChtX3NlbGVjdG9yQ29udGV4dCA9PSBTZWxlY3RvckNvbnRleHQ6OlJ1bGVDb2xsZWN0b3IpIHsK
KyAgICAgICAgdW5zaWduZWQgc3BlY2lmaWNpdHkgPSBtX29yaWdpbmFsU2VsZWN0b3ItPnNwZWNp
ZmljaXR5KCk7CisgICAgICAgIGlmIChtX2Z1bmN0aW9uVHlwZSA9PSBGdW5jdGlvblR5cGU6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpCisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5zdG9yZTMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNwZWNpZmljaXR5KSwgSlNDOjpHUFJJ
bmZvOjphcmd1bWVudEdQUjIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5zdG9yZTMyKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKHNwZWNpZmljaXR5KSwgSlNDOjpHUFJJ
bmZvOjphcmd1bWVudEdQUjEpOworICAgIH0KKwogICAgIGNvbXB1dGVCYWNrdHJhY2tpbmdNZW1v
cnlSZXF1aXJlbWVudHMobV9zZWxlY3RvckZyYWdtZW50cyk7CiAgICAgdW5zaWduZWQgYXZhaWxh
YmxlUmVnaXN0ZXJDb3VudCA9IG1fcmVnaXN0ZXJBbGxvY2F0b3IucmVzZXJ2ZUNhbGxlclNhdmVk
UmVnaXN0ZXJzKG1fc2VsZWN0b3JGcmFnbWVudHMucmVnaXN0ZXJSZXF1aXJlbWVudHMpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oIGIvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaAppbmRleCBiMTA3YzQzNDI3ZmQ0
OTdmMjA5OTE0YjYyYmRjMmQ4N2JkNDM4ZmU1Li4yY2I2NGE4ODMyM2ExMGY0ZjYyZjFiNDQ4NWNl
OGYwMjJmNjc1MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgK
QEAgLTc3LDIyICs3NywzNyBAQCBlbnVtIGNsYXNzIFNlbGVjdG9yQ29udGV4dCB7CiAgICAgUXVl
cnlTZWxlY3RvcgogfTsKIAotdHlwZWRlZiB1bnNpZ25lZCAoKlNpbXBsZVNlbGVjdG9yQ2hlY2tl
cikoRWxlbWVudCopOwotdHlwZWRlZiB1bnNpZ25lZCAoKlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQpKEVsZW1lbnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29u
dGV4dCopOwordHlwZWRlZiB1bnNpZ25lZCAoKlJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNo
ZWNrZXIpKEVsZW1lbnQqLCB1bnNpZ25lZCopOwordHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIpKEVsZW1lbnQqKTsKKwordHlwZWRlZiB1bnNpZ25l
ZCAoKlJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KShFbGVt
ZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0NvbnRleHQqLCB1bnNpZ25lZCop
OwordHlwZWRlZiB1bnNpZ25lZCAoKlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hl
Y2tpbmdDb250ZXh0KShFbGVtZW50KiwgY29uc3QgU2VsZWN0b3JDaGVja2VyOjpDaGVja2luZ0Nv
bnRleHQqKTsKKwogU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0b3IoY29u
c3QgQ1NTU2VsZWN0b3IqLCBKU0M6OlZNKiwgU2VsZWN0b3JDb250ZXh0LCBKU0M6Ok1hY3JvQXNz
ZW1ibGVyQ29kZVJlZiYgb3V0cHV0Q29kZVJlZik7CiAKLWlubGluZSBTaW1wbGVTZWxlY3RvckNo
ZWNrZXIgc2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCitpbmxpbmUg
UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29sbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChj
b21waWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlv
blN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxTaW1wbGVTZWxlY3RvckNoZWNrZXI+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyPihl
eGVjdXRhYmxlQWRkcmVzcyk7CiB9CiAKLWlubGluZSBTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlv
blN0YXR1cykKK2lubGluZSBRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRk
cmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cykKK3sKKyAg
ICBBU1NFUlRfVU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBjb21waWxhdGlvblN0YXR1cyA9PSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpOworICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXI+
KGV4ZWN1dGFibGVBZGRyZXNzKTsKK30KKworaW5saW5lIFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5j
dGlvbldpdGhDaGVja2luZ0NvbnRleHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCiB7CiAgICAgQVNTRVJUX1VOVVNF
RChjb21waWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dD4o
ZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJ1bGVDb2xs
ZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PihleGVjdXRhYmxlQWRkcmVz
cyk7CiB9CiAKK2lubGluZSBRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dCBxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdD
b250ZXh0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
IGNvbXBpbGF0aW9uU3RhdHVzKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0
dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVj
dG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOworICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PihleGVj
dXRhYmxlQWRkcmVzcyk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGlsZXIKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRl
eCA0ZTkyNTBmYzBjMWQ1NjVmMzEyMGY2YzBlMmM4YTcxMTZhOTlhNzM1Li5mYmJlNGU3MjdjNjQ2
ZmU5ZjZjMjFjMTc3YTYxMWVmNzNlNWY3NGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVl
cnkuY3BwCkBAIC0xMTcsNyArMTE3LDggQEAgaW5saW5lIGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6
c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhLAogICAgIFNl
bGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIoZWxlbWVudC5kb2N1bWVudCgpKTsKICAgICBT
ZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNraW5nQ29udGV4dChT
ZWxlY3RvckNoZWNrZXI6Ok1vZGU6OlF1ZXJ5aW5nUnVsZXMpOwogICAgIHNlbGVjdG9yQ2hlY2tp
bmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxwdHIgOiAm
cm9vdE5vZGU7Ci0gICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckRhdGEu
c2VsZWN0b3IsICZlbGVtZW50LCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCk7CisgICAgdW5zaWdu
ZWQgaWdub3JlZFNwZWNpZmljaXR5OworICAgIHJldHVybiBzZWxlY3RvckNoZWNrZXIubWF0Y2go
c2VsZWN0b3JEYXRhLnNlbGVjdG9yLCAmZWxlbWVudCwgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQs
IGlnbm9yZWRTcGVjaWZpY2l0eSk7CiB9CiAKIGlubGluZSBFbGVtZW50KiBTZWxlY3RvckRhdGFM
aXN0OjpzZWxlY3RvckNsb3Nlc3QoY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEsIEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKSBjb25zdApAQCAt
MTI2LDcgKzEyNyw4IEBAIGlubGluZSBFbGVtZW50KiBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3Rv
ckNsb3Nlc3QoY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhCiAgICAgU2VsZWN0b3JDaGVj
a2VyOjpDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQoU2VsZWN0b3JDaGVj
a2VyOjpNb2RlOjpRdWVyeWluZ1J1bGVzKTsKICAgICBzZWxlY3RvckNoZWNraW5nQ29udGV4dC5z
Y29wZSA9IHJvb3ROb2RlLmlzRG9jdW1lbnROb2RlKCkgPyBudWxscHRyIDogJnJvb3ROb2RlOwog
ICAgIEVsZW1lbnQqIGN1cnJlbnROb2RlID0gJmVsZW1lbnQ7Ci0gICAgaWYgKCFzZWxlY3RvckNo
ZWNrZXIubWF0Y2goc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBjdXJyZW50Tm9kZSwgc2VsZWN0b3JD
aGVja2luZ0NvbnRleHQpKQorICAgIHVuc2lnbmVkIGlnbm9yZWRTcGVjaWZpY2l0eTsKKyAgICBp
ZiAoIXNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckRhdGEuc2VsZWN0b3IsIGN1cnJlbnRO
b2RlLCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCwgaWdub3JlZFNwZWNpZmljaXR5KSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGN1cnJlbnROb2RlOwogfQpAQCAtMzgxLDcg
KzM4Myw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlU2lu
Z2xlTXVsdGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpCiAKICNpZiBFTkFCTEUoQ1NTX1NFTEVD
VE9SX0pJVCkKIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+Ci1BTFdBWVNf
SU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0
b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNv
bXBpbGVyOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBT
ZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JEYXRh
JiBzZWxlY3RvckRhdGEpIGNvbnN0CitBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlz
dDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5v
ZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxl
U2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRy
YWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRh
KSBjb25zdAogewogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50cyhj
b25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290Tm9kZSkpKSB7CiAjaWYgQ1NTX1NF
TEVDVE9SX0pJVF9QUk9GSUxJTkcKQEAgLTM5OCw3ICs0MDAsNyBAQCBBTFdBWVNfSU5MSU5FIHZv
aWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2Vy
KGNvbnN0CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+Ci1BTFdB
WVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JD
aGVja2VyV2l0aENoZWNraW5nQ29udGV4dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwg
Y29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyLCB0eXBlbmFt
ZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29uc3QgU2VsZWN0b3JE
YXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0CitBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dChj
b25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNo
Um9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVy
eVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhKSBjb25zdAogewogICAgIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNoZWNr
aW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OlF1ZXJ5aW5nUnVsZXMpOwogICAgIGNo
ZWNraW5nQ29udGV4dC5zY29wZSA9IHJvb3ROb2RlLmlzRG9jdW1lbnROb2RlKCkgPyBudWxscHRy
IDogJnJvb3ROb2RlOwpAQCAtNDMxLDExICs0MzMsMTEgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNl
bGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNv
bnMKICAgICAgICAgICAgIGJvb2wgbWF0Y2hlZCA9IGZhbHNlOwogICAgICAgICAgICAgdm9pZCog
Y29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBtX3NlbGVjdG9yc1tpXS5jb21waWxlZFNlbGVjdG9y
Q29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAgICAgICAgICAgIGlmIChtX3Nl
bGVjdG9yc1tpXS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgICAgICBTZWxlY3RvckNvbXBp
bGVyOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21w
aWxlcjo6c2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3RvckNoZWNr
ZXIsIG1fc2VsZWN0b3JzW2ldLmNvbXBpbGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgICAgICBT
ZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHNlbGVj
dG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3Rv
ckNoZWNrZXJGdW5jdGlvbihjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgbV9zZWxlY3RvcnNbaV0u
Y29tcGlsYXRpb25TdGF0dXMpOwogICAgICAgICAgICAgICAgIG1hdGNoZWQgPSBzZWxlY3RvckNo
ZWNrZXIoJmVsZW1lbnQpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBB
U1NFUlQobV9zZWxlY3RvcnNbaV0uY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxh
dGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgICAg
ICAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpzZWxlY3RvckNoZWNrZXJG
dW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIG1fc2Vs
ZWN0b3JzW2ldLmNvbXBpbGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgICAgICBTZWxlY3RvckNv
bXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBz
ZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JD
aGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
LCBtX3NlbGVjdG9yc1tpXS5jb21waWxhdGlvblN0YXR1cyk7CiAgICAgICAgICAgICAgICAgbWF0
Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5nQ29udGV4dCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBpZiAobWF0Y2hlZCkgewpAQCAtNTI0LDExICs1MjYsMTEg
QEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFMKICAgICAgICAgY29uc3QgU2VsZWN0b3JEYXRhJiBz
ZWxlY3RvckRhdGEgPSBtX3NlbGVjdG9ycy5maXJzdCgpOwogICAgICAgICB2b2lkKiBjb21waWxl
ZFNlbGVjdG9yQ2hlY2tlciA9IHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZi5j
b2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAgICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21w
aWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIpIHsKLSAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlNpbXBsZVNlbGVjdG9y
Q2hlY2tlciBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpzaW1wbGVTZWxlY3Rv
ckNoZWNrZXJGdW5jdGlvbihjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgc2VsZWN0b3JEYXRhLmNv
bXBpbGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21w
aWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVk
U2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOwogICAgICAg
ICAgICAgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlU
cmFpdD4oKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JE
YXRhKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEu
Y29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JD
aGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgICAgICAgICBTZWxlY3RvckNvbXBpbGVy
OjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNl
bGVjdG9yQ29tcGlsZXI6OnNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4
dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgc2VsZWN0b3JEYXRhLmNvbXBpbGF0aW9uU3RhdHVz
KTsKKyAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGls
ZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRl
eHQoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1
cyk7CiAgICAgICAgICAgICBleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tp
bmdDb250ZXh0PFNlbGVjdG9yUXVlcnlUcmFpdD4ocm9vdE5vZGUsICpzZWFyY2hSb290Tm9kZSwg
c2VsZWN0b3JDaGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CiAgICAgICAgIH0KICAgICAg
ICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAppbmRleCA2MWYwNzdhN2Q5ODVm
MTgyYjNlOWZmNDVhZDgxOWU5YzdmNTA0YTM5Li43OTJiMjM1ZTM1ZTg4MGQ1YTA0OWRlMTUxMWYz
YTgxZTQ0MjdmZGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVy
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAgLTg5LDggKzg5
LDggQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0
PiB2b2lkIGV4ZWN1dGVTaW5nbGVTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9v
dE5vZGUsIGNvbnN0IFNlbGVjdG9yRGF0YSYsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6
T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5
VHJhaXQ+IHZvaWQgZXhlY3V0ZVNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnN0IENvbnRhaW5l
ck5vZGUmIHJvb3ROb2RlLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUm
KSBjb25zdDsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNpbXBsZVNlbGVj
dG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0b3JD
b21waWxlcjo6U2ltcGxlU2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKLSAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNlbGVj
dG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5v
ZGUsIGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVy
OjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCB0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxl
ZFNpbXBsZVNlbGVjdG9yQ2hlY2tlcihjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9k
ZSwgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwg
dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29uc3QgU2VsZWN0b3JE
YXRhJikgY29uc3Q7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4g
dm9pZCBleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNv
bnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hS
b290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlw
ZSYsIGNvbnN0IFNlbGVjdG9yRGF0YSYpIGNvbnN0OwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBT
ZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2luZ2xlTXVsdGlTZWxlY3Rv
ckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNlbGVjdG9yUXVl
cnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGNvbXBpbGVTZWxl
Y3Rvcihjb25zdCBTZWxlY3RvckRhdGEmLCBjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSk7
CiAjZW5kaWYgLy8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241157</attachid>
            <date>2014-11-06 20:12:07 -0800</date>
            <delta_ts>2014-11-07 18:05:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138486-20141106201217.patch</filename>
            <type>text/plain</type>
            <size>36774</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhZmI4MDI0MmEyZTc4
YjFmNGQxNzViOTdjNzgxMzkxNGUxNTljNC4uNTI1NDAxMmViZWYyYjE5ZmQ1ODM5YWJlYjczNDkw
NTNkNDdhNWVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDE0LTExLTA2ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRoZSBT
ZWxlY3RvcidzIHNwZWNpZmljaXR5IHBhcnQgb2YgU2VsZWN0b3IgbWF0Y2hpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODQ4NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIENTUyBTZWxlY3RvcnMg
TGV2ZWwgNCwgdGhlIHNwZWNpZmljaXR5IG9mIHNlbGVjdG9ycyBpcyBjb21wdXRlZCBkeW5hbWlj
YWxseQorICAgICAgICBiYXNlZCBvbiB3aGljaCBlbGVtZW50IGlzIGJlaW5nIG1hdGNoZWQuCisK
KyAgICAgICAgRm9yIGV4YW1wbGUsIGEgc2VsZWN0b3I6CisgICAgICAgICAgICA6bWF0Y2hlcygj
Zm9vLCAuYmFyLCBiYXopCisgICAgICAgIGhhcyBhIHNwZWNpZmljaXR5IG9mCisgICAgICAgICAg
ICAoMSwgMCwgMCkgb24gPGJheiBpZD1mb28gY2xhc3M9YmFyPgorICAgICAgICAgICAgKDAsIDEs
IDApIG9uIDxiYXogY2xhc3M9YmFyPgorICAgICAgICAgICAgKDAsIDAsIDEpIG9uIDxiYXo+CisK
KyAgICAgICAgUHJldmlvdXNseSwgdGhlIHNwZWNpZmljaXR5IG9mIGVhY2ggc2VsZWN0b3Igd2Fz
IGNvbXB1dGVkIHN0YXRpY2FsbHkgd2hlbiBwb3B1bGF0aW5nCisgICAgICAgIFJ1bGVTZXQuIFdp
dGggbW9yZSByZWNlbnQgQ1NTLCB0aGlzIGdpdmVzIHVzIHRoZSB3cm9uZyBzcGVjaWZpY2l0eSBi
ZWNhdXNlIHdlIGRvIG5vdCBrbm93CisgICAgICAgIGhvdyB0aGUgc2VsZWN0b3JzIGFwcGxpZXMg
dG8gdGhlIHRhcmdldC4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIG9uZSB0aW55IHN0ZXAg
aW4gdGhlIGRpcmVjdGlvbiBvZiBkeW5hbWljIHNwZWNpZmljaXR5LiBUaGUgc3BlY2lmaWNpdHkK
KyAgICAgICAgaXMgcmVtb3ZlZCBmcm9tIFJ1bGVTZXQgYW5kIGlzIG1vdmVkIGluc2lkZSBTZWxl
Y3RvciBNYXRjaGluZy4KKworICAgICAgICBUaGVyZSBpcyBvbmUgYml0IHdvcnRoIGtlZXBpbmcg
c3RhdGljOiBtYXRjaGluZyBiYXNlZCBvbiBydWxlIGhhc2guIFRoaXMgcGF0aCBpcyBpbXBvcnRh
bnQKKyAgICAgICAgdG8gYXZvaWQgc3BlbmRpbmcgdGltZSBjb21waWxpbmcgdHJpdmlhbCBzZWxl
Y3RvcnMuCisgICAgICAgIEluIG9yZGVyIHRvIGtlZXAgcnVsZSBoYXNoIG1hdGNoaW5nIHdvcmtp
bmcsIHRoZSBSdWxlRGF0YSBzdG9yZSB3aGljaCBzcGVjaWZpY2l0eSBjbGFzcworICAgICAgICB0
aGUgcnVsZSBoYXMgaW4gYWRkaXRpb24gdG8gdGhlIGluZm9ybWF0aW9uIGFib3V0IG1hdGNoaW5n
L25vdC1tYXRjaGluZy4gV2hlbiBnb2luZyB0aHJvdWdoCisgICAgICAgIHRoZSBmYXN0IHBhdGgg
aW4gRWxlbWVudENvbGxlY3Rvciwgd2UgY29tcHV0ZSB0aGUgcmlnaHQgc3BlY2lmaWNpdHkgYmFz
ZWQgb24gdGhlIHR5cGUKKyAgICAgICAgb2YgcnVsZS1oYXNoIG1hdGNoaW5nLgorCisgICAgICAg
ICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpz
cGVjaWZpY2l0eUZvck9uZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoK
KyAgICAgICAgKiBjc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OmFkZE1hdGNoZWRSdWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxl
c0Zvckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZVJ1bGVzKToKKyAgICAgICAgKiBj
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvUnVsZVNldC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjb21wdXRlTWF0Y2hCYXNlZE9uUnVsZUhhc2gpOgorICAgICAgICAo
V2ViQ29yZTo6UnVsZURhdGE6OlJ1bGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2VsZWN0
b3JNYXRjaGluZ0hUTUxCYXNlZE9uUnVsZUhhc2gpOiBEZWxldGVkLgorICAgICAgICAqIGNzcy9S
dWxlU2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSdWxlRGF0YTo6bWF0Y2hCYXNlZE9uUnVsZUhh
c2gpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZURhdGE6Omhhc1JpZ2h0bW9zdFNlbGVjdG9yTWF0
Y2hpbmdIVE1MQmFzZWRPblJ1bGVIYXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1
bGVEYXRhOjpzcGVjaWZpY2l0eSk6IERlbGV0ZWQuCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hl
Y2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6Om1hdGNoKToKKyAg
ICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrUmVnaW9uU2VsZWN0b3IpOgorICAgICAgICAq
IGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Z2VuZXJhdGVTZWxlY3RvckNoZWNrZXIpOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNv
bXBpbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxl
Y3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9u
V2l0aENoZWNraW5nQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVy
OjpzaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3RvckNvbXBpbGVyOjpzZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2lu
Z0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yTWF0Y2hlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3RvckNsb3Nlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0
b3JDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVD
b21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2luZ2xlTXVsdGlTZWxlY3Rv
ckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZSk6Cisg
ICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuaDoKKwogMjAxNC0xMS0wNiAgRGFyaW4gQWRsZXIg
IDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjE3NTU0OSk6IGh0dHAv
dGVzdHMvbXVsdGlwYXJ0L3N0b3AtY3Jhc2guaHRtbCBmYWlsaW5nIChhc3NlcnRpb24gZmFpbHVy
ZSBpbiBDYWNoZWRSZXNvdXJjZTo6c2V0RW5jb2RlZFNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmNwcAppbmRleCA5MTE1MDJlZjVlNzMzYTgxZDhkM2ZkYmQ4OGEyMDUyM2Q2N2U0YzdhLi5h
MjU3YzdiNTQ4YWVjNDUyYTRhNDRjMzk1OTFmZWFlZjg1ZWQwMjlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgaW5saW5lIHVuc2lnbmVkIENTU1NlbGVj
dG9yOjpzcGVjaWZpY2l0eUZvck9uZVNlbGVjdG9yKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1h
dGNoKCkpIHsKICAgICBjYXNlIElkOgotICAgICAgICByZXR1cm4gMHgxMDAwMDsKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihTZWxlY3RvclNwZWNpZmljaXR5SW5jcmVtZW50
OjpDbGFzc0EpOwogCiAgICAgY2FzZSBQYWdlUHNldWRvQ2xhc3M6CiAgICAgICAgIGJyZWFrOwpA
QCAtMTI1LDExICsxMjUsMTEgQEAgaW5saW5lIHVuc2lnbmVkIENTU1NlbGVjdG9yOjpzcGVjaWZp
Y2l0eUZvck9uZVNlbGVjdG9yKCkgY29uc3QKICAgICBjYXNlIENvbnRhaW46CiAgICAgY2FzZSBC
ZWdpbjoKICAgICBjYXNlIEVuZDoKLSAgICAgICAgcmV0dXJuIDB4MTAwOworICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFNlbGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQ6OkNs
YXNzQik7CiAgICAgY2FzZSBUYWc6Ci0gICAgICAgIHJldHVybiAodGFnUU5hbWUoKS5sb2NhbE5h
bWUoKSAhPSBzdGFyQXRvbSkgPyAxIDogMDsKKyAgICAgICAgcmV0dXJuICh0YWdRTmFtZSgpLmxv
Y2FsTmFtZSgpICE9IHN0YXJBdG9tKSA/IHN0YXRpY19jYXN0PHVuc2lnbmVkPihTZWxlY3RvclNw
ZWNpZmljaXR5SW5jcmVtZW50OjpDbGFzc0MpIDogMDsKICAgICBjYXNlIFBzZXVkb0VsZW1lbnQ6
Ci0gICAgICAgIHJldHVybiAxOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KFNlbGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQ6OkNsYXNzQyk7CiAgICAgY2FzZSBVbmtub3du
OgogICAgICAgICByZXR1cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4
IGIyMTI0ZTE1MzQxMjI0MGIzYzM3NmJjYjBmZWZmYzUzZGIzNzI2MzcuLjYxMzBjNzM4OGM5M2Vm
MThlYTFkZmMyMDUwYTM5OWY4ZTM3ZDllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBA
IC0yOSw2ICsyOSwxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIENTU1NlbGVj
dG9yTGlzdDsKIAorICAgIGVudW0gY2xhc3MgU2VsZWN0b3JTcGVjaWZpY2l0eUluY3JlbWVudCB7
CisgICAgICAgIENsYXNzQSA9IDB4MTAwMDAsCisgICAgICAgIENsYXNzQiA9IDB4MTAwLAorICAg
ICAgICBDbGFzc0MgPSAxCisgICAgfTsKKwogICAgIC8vIHRoaXMgY2xhc3MgcmVwcmVzZW50cyBh
IHNlbGVjdG9yIGZvciBhIFN0eWxlUnVsZQogICAgIGNsYXNzIENTU1NlbGVjdG9yIHsKICAgICAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcAppbmRleCBkZTczNzc3Yzk3ODRiMDg2OWY3NGVmNjE5M2IwZDQ5OGQ3
N2E2ODk0Li4wMDgxYTI3YWE1MTY1ZGRlYzI5Y2M0NjU4ZDZhZWY5MWY5ZmU1MTlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTg2LDExICs4Niwx
MSBAQCBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZT4+JiBFbGVtZW50UnVsZUNvbGxlY3Rv
cjo6bWF0Y2hlZFJ1bGVMaXN0KCkgY29uc3QKICAgICByZXR1cm4gbV9tYXRjaGVkUnVsZUxpc3Q7
CiB9CiAKLWlubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjphZGRNYXRjaGVkUnVsZShj
b25zdCBSdWxlRGF0YSogcnVsZSkKK2lubGluZSB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjph
ZGRNYXRjaGVkUnVsZShjb25zdCBNYXRjaGVkUnVsZSYgbWF0Y2hlZFJ1bGUpCiB7CiAgICAgaWYg
KCFtX21hdGNoZWRSdWxlcykKLSAgICAgICAgbV9tYXRjaGVkUnVsZXMgPSBzdGQ6Om1ha2VfdW5p
cXVlPFZlY3Rvcjxjb25zdCBSdWxlRGF0YSosIDMyPj4oKTsKLSAgICBtX21hdGNoZWRSdWxlcy0+
YXBwZW5kKHJ1bGUpOworICAgICAgICBtX21hdGNoZWRSdWxlcyA9IHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPE1hdGNoZWRSdWxlLCAzMj4+KCk7CisgICAgbV9tYXRjaGVkUnVsZXMtPmFwcGVuZCht
YXRjaGVkUnVsZSk7CiB9CiAKIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNsZWFyTWF0Y2hl
ZFJ1bGVzKCkKQEAgLTIwMiwxOCArMjAyLDE4IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6
OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcygpCiAKICAgICBzb3J0TWF0Y2hlZFJ1bGVzKCk7
CiAKLSAgICBWZWN0b3I8Y29uc3QgUnVsZURhdGEqLCAzMj4mIG1hdGNoZWRSdWxlcyA9ICptX21h
dGNoZWRSdWxlczsKKyAgICBWZWN0b3I8TWF0Y2hlZFJ1bGUsIDMyPiYgbWF0Y2hlZFJ1bGVzID0g
Km1fbWF0Y2hlZFJ1bGVzOwogICAgIGlmIChtX21vZGUgPT0gU2VsZWN0b3JDaGVja2VyOjpNb2Rl
OjpDb2xsZWN0aW5nUnVsZXMpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1h
dGNoZWRSdWxlcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fbWF0Y2hlZFJ1bGVMaXN0LmFw
cGVuZChtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSk7CisgICAgICAgIGZvciAoY29uc3QgTWF0Y2hl
ZFJ1bGUmIG1hdGNoZWRSdWxlIDogbWF0Y2hlZFJ1bGVzKQorICAgICAgICAgICAgbV9tYXRjaGVk
UnVsZUxpc3QuYXBwZW5kKG1hdGNoZWRSdWxlLnJ1bGVEYXRhLT5ydWxlKCkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgLy8gTm93IHRyYW5zZmVyIHRoZSBzZXQgb2YgbWF0Y2hlZCBy
dWxlcyBvdmVyIHRvIG91ciBsaXN0IG9mIGRlY2xhcmF0aW9ucy4KLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGlmIChtX3N0
eWxlICYmIG1hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
KCkpCisgICAgZm9yIChjb25zdCBNYXRjaGVkUnVsZSYgbWF0Y2hlZFJ1bGUgOiBtYXRjaGVkUnVs
ZXMpIHsKKyAgICAgICAgaWYgKG1fc3R5bGUgJiYgbWF0Y2hlZFJ1bGUucnVsZURhdGEtPmNvbnRh
aW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0
VW5pcXVlKCk7Ci0gICAgICAgIG1fcmVzdWx0LmFkZE1hdGNoZWRQcm9wZXJ0aWVzKG1hdGNoZWRS
dWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBt
YXRjaGVkUnVsZXNbaV0tPmxpbmtNYXRjaFR5cGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5wcm9wZXJ0
eVdoaXRlbGlzdFR5cGUoTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVzKCkp
KTsKKyAgICAgICAgbV9yZXN1bHQuYWRkTWF0Y2hlZFByb3BlcnRpZXMobWF0Y2hlZFJ1bGUucnVs
ZURhdGEtPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtYXRjaGVkUnVsZS5ydWxlRGF0YS0+cnVsZSgp
LCBtYXRjaGVkUnVsZS5ydWxlRGF0YS0+bGlua01hdGNoVHlwZSgpLCBtYXRjaGVkUnVsZS5ydWxl
RGF0YS0+cHJvcGVydHlXaGl0ZWxpc3RUeXBlKE1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNo
aW5nVUFSdWxlcygpKSk7CiAgICAgfQogfQogCkBAIC0yNzQsMTIgKzI3NCwzMSBAQCB2b2lkIEVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjptYXRjaFVBUnVsZXMoUnVsZVNldCogcnVsZXMpCiAgICAgc29y
dEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKCk7CiB9CiAKLWlubGluZSBib29sIEVsZW1lbnRSdWxl
Q29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCitpbmxpbmUg
Ym9vbCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1
bGVEYXRhLCB1bnNpZ25lZCYgc3BlY2lmaWNpdHkpCiB7CiAgICAgLy8gV2Uga25vdyBhIHN1ZmZp
Y2llbnRseSBzaW1wbGUgc2luZ2xlIHBhcnQgc2VsZWN0b3IgbWF0Y2hlcyBzaW1wbHkgYmVjYXVz
ZSB3ZSBmb3VuZCBpdCBmcm9tIHRoZSBydWxlIGhhc2ggd2hlbiBmaWx0ZXJpbmcgdGhlIFJ1bGVT
ZXQuCiAgICAgLy8gVGhpcyBpcyBsaW1pdGVkIHRvIEhUTUwgb25seSBzbyB3ZSBkb24ndCBuZWVk
IHRvIGNoZWNrIHRoZSBuYW1lc3BhY2UgKGJlY2F1c2Ugb2YgdGFnIG5hbWUgbWF0Y2gpLgotICAg
IGlmIChydWxlRGF0YS5oYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxl
SGFzaCgpICYmIG1fZWxlbWVudC5pc0hUTUxFbGVtZW50KCkpIHsKKyAgICBNYXRjaEJhc2VkT25S
dWxlSGFzaCBtYXRjaEJhc2VkT25SdWxlSGFzaCA9IHJ1bGVEYXRhLm1hdGNoQmFzZWRPblJ1bGVI
YXNoKCk7CisgICAgaWYgKG1hdGNoQmFzZWRPblJ1bGVIYXNoICE9IE1hdGNoQmFzZWRPblJ1bGVI
YXNoOjpOb25lICYmIG1fZWxlbWVudC5pc0hUTUxFbGVtZW50KCkpIHsKICAgICAgICAgQVNTRVJU
X1dJVEhfTUVTU0FHRShtX3BzZXVkb1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCA9PSBOT1BTRVVETywg
IklmIHdlIG1hdGNoIGJhc2VkIG9uIHRoZSBydWxlIGhhc2ggd2hpbGUgY29sbGVjdGluZyBmb3Ig
YSBwYXJ0aWN1bGFyIHBzZXVkbyBlbGVtZW50IElELCB3ZSB3b3VsZCBhZGQgaW5jb3JyZWN0IHJ1
bGVzIGZvciB0aGF0IHBzZXVkbyBlbGVtZW50IElELiBXZSBzaG91bGQgbmV2ZXIgZW5kIGluIHJ1
bGVNYXRjaGVzKCkgd2l0aCBhIHBzZXVkbyBlbGVtZW50IGlmIHRoZSBydWxlRGF0YSBjYW5ub3Qg
bWF0Y2ggYW55IHBzZXVkbyBlbGVtZW50LiIpOworCisgICAgICAgIHN3aXRjaCAobWF0Y2hCYXNl
ZE9uUnVsZUhhc2gpIHsKKyAgICAgICAgY2FzZSBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Tm9uZToK
KyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OlVuaXZlcnNhbDoKKyAgICAgICAgICAg
IHNwZWNpZmljaXR5ID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1hdGNo
QmFzZWRPblJ1bGVIYXNoOjpDbGFzc0E6CisgICAgICAgICAgICBzcGVjaWZpY2l0eSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihTZWxlY3RvclNwZWNpZmljaXR5SW5jcmVtZW50OjpDbGFzc0EpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OkNs
YXNzQjoKKyAgICAgICAgICAgIHNwZWNpZmljaXR5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFNl
bGVjdG9yU3BlY2lmaWNpdHlJbmNyZW1lbnQ6OkNsYXNzQik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Q2xhc3NDOgorICAgICAgICAgICAg
c3BlY2lmaWNpdHkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oU2VsZWN0b3JTcGVjaWZpY2l0eUlu
Y3JlbWVudDo6Q2xhc3NDKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjk2LDEyICszMTUsMTUgQEAgaW5saW5lIGJvb2wg
RWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0
YSkKICAgICB9CiAKICAgICBpZiAoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgJiYgcnVsZURhdGEu
Y29tcGlsYXRpb25TdGF0dXMoKSA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVT
ZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6U2ltcGxlU2VsZWN0
b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnNpbXBsZVNlbGVj
dG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBydWxlRGF0YS5jb21w
aWxhdGlvblN0YXR1cygpKTsKLSAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghc2VsZWN0b3JD
aGVja2VyKCZtX2VsZW1lbnQpIHx8IG1fcHNldWRvU3R5bGVSZXF1ZXN0LnBzZXVkb0lkID09IE5P
UFNFVURPLCAiV2hlbiBtYXRjaGluZyBwc2V1ZG8gZWxlbWVudHMsIHdlIHNob3VsZCBuZXZlciBj
b21waWxlIGEgc2VsZWN0b3IgY2hlY2tlciB3aXRob3V0IGNvbnRleHQgdW5sZXNzIGl0IGNhbm5v
dCBtYXRjaCBhbnl0aGluZy4iKTsKKyAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6UnVsZUNvbGxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBp
bGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRT
ZWxlY3RvckNoZWNrZXIsIHJ1bGVEYXRhLmNvbXBpbGF0aW9uU3RhdHVzKCkpOworI2lmICFBU1NF
UlRfTVNHX0RJU0FCTEVECisgICAgICAgIHVuc2lnbmVkIGlnbm9yZVNwZWNpZmljaXR5OworICAg
ICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFzZWxlY3RvckNoZWNrZXIoJm1fZWxlbWVudCwgJmln
bm9yZVNwZWNpZmljaXR5KSB8fCBtX3BzZXVkb1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCA9PSBOT1BT
RVVETywgIldoZW4gbWF0Y2hpbmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29t
cGlsZSBhIHNlbGVjdG9yIGNoZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3Qg
bWF0Y2ggYW55dGhpbmcuIik7CisjZW5kaWYKICNpZiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElO
RwogICAgICAgICBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yVXNlZCgpOwogI2VuZGlmCi0gICAg
ICAgIHJldHVybiBzZWxlY3RvckNoZWNrZXIoJm1fZWxlbWVudCk7CisgICAgICAgIHJldHVybiBz
ZWxlY3RvckNoZWNrZXIoJm1fZWxlbWVudCwgJnNwZWNpZmljaXR5KTsKICAgICB9CiAjZW5kaWYg
Ly8gRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAKQEAgLTMxNSwxOCArMzM3LDE4IEBAIGlubGlu
ZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYg
cnVsZURhdGEpCiAgICAgaWYgKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyKSB7CiAgICAgICAgIEFT
U0VSVChydWxlRGF0YS5jb21waWxhdGlvblN0YXR1cygpID09IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwogCi0gICAgICAgIFNl
bGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0
b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6c2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRo
Q2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBydWxlRGF0YS5jb21waWxh
dGlvblN0YXR1cygpKTsKKyAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6UnVsZUNvbGxlY3RvclNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNr
aW5nQ29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgcnVsZURhdGEuY29tcGlsYXRpb25T
dGF0dXMoKSk7CiAKICNpZiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORwogICAgICAgICBydWxl
RGF0YS5jb21waWxlZFNlbGVjdG9yVXNlZCgpOwogI2VuZGlmCi0gICAgICAgIHJldHVybiBzZWxl
Y3RvckNoZWNrZXIoJm1fZWxlbWVudCwgJmNvbnRleHQpOworICAgICAgICByZXR1cm4gc2VsZWN0
b3JDaGVja2VyKCZtX2VsZW1lbnQsICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOwogICAgIH0KICNl
bmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogICAgIC8vIFNsb3cgcGF0aC4KICAg
ICBTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyKG1fZWxlbWVudC5kb2N1bWVudCgpKTsK
LSAgICByZXR1cm4gc2VsZWN0b3JDaGVja2VyLm1hdGNoKHJ1bGVEYXRhLnNlbGVjdG9yKCksICZt
X2VsZW1lbnQsIGNvbnRleHQpOworICAgIHJldHVybiBzZWxlY3RvckNoZWNrZXIubWF0Y2gocnVs
ZURhdGEuc2VsZWN0b3IoKSwgJm1fZWxlbWVudCwgY29udGV4dCwgc3BlY2lmaWNpdHkpOwogfQog
CiB2b2lkIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qo
Y29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hS
ZXF1ZXN0LCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2UmIHJ1bGVSYW5nZSkKQEAgLTM1NCwyMyAr
Mzc2LDI0IEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVz
Rm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiByCiAgICAgICAgIGlmIChtX3NhbWVPcmln
aW5Pbmx5ICYmICFydWxlRGF0YS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAocnVsZU1hdGNoZXMocnVsZURhdGEpKSB7Cisg
ICAgICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5OworICAgICAgICBpZiAocnVsZU1hdGNoZXMocnVs
ZURhdGEsIHNwZWNpZmljaXR5KSkgewogICAgICAgICAgICAgLy8gVXBkYXRlIG91ciBmaXJzdC9s
YXN0IHJ1bGUgaW5kaWNlcyBpbiB0aGUgbWF0Y2hlZCBydWxlcyBhcnJheS4KICAgICAgICAgICAg
ICsrcnVsZVJhbmdlLmxhc3RSdWxlSW5kZXg7CiAgICAgICAgICAgICBpZiAocnVsZVJhbmdlLmZp
cnN0UnVsZUluZGV4ID09IC0xKQogICAgICAgICAgICAgICAgIHJ1bGVSYW5nZS5maXJzdFJ1bGVJ
bmRleCA9IHJ1bGVSYW5nZS5sYXN0UnVsZUluZGV4OwogCiAgICAgICAgICAgICAvLyBBZGQgdGhp
cyBydWxlIHRvIG91ciBsaXN0IG9mIG1hdGNoZWQgcnVsZXMuCi0gICAgICAgICAgICBhZGRNYXRj
aGVkUnVsZSgmcnVsZURhdGEpOworICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1bGUoeyZydWxlRGF0
YSwgc3BlY2lmaWNpdHl9KTsKICAgICAgICAgfQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBi
b29sIGNvbXBhcmVSdWxlcyhjb25zdCBSdWxlRGF0YSogcjEsIGNvbnN0IFJ1bGVEYXRhKiByMikK
K3N0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoTWF0Y2hlZFJ1bGUgcjEsIE1hdGNoZWRS
dWxlIHIyKQogewotICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5MSA9IHIxLT5zcGVjaWZpY2l0eSgp
OwotICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5MiA9IHIyLT5zcGVjaWZpY2l0eSgpOwotICAgIHJl
dHVybiAoc3BlY2lmaWNpdHkxID09IHNwZWNpZmljaXR5MikgPyByMS0+cG9zaXRpb24oKSA8IHIy
LT5wb3NpdGlvbigpIDogc3BlY2lmaWNpdHkxIDwgc3BlY2lmaWNpdHkyOworICAgIHVuc2lnbmVk
IHNwZWNpZmljaXR5MSA9IHIxLnNwZWNpZmljaXR5OworICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5
MiA9IHIyLnNwZWNpZmljaXR5OworICAgIHJldHVybiAoc3BlY2lmaWNpdHkxID09IHNwZWNpZmlj
aXR5MikgPyByMS5ydWxlRGF0YS0+cG9zaXRpb24oKSA8IHIyLnJ1bGVEYXRhLT5wb3NpdGlvbigp
IDogc3BlY2lmaWNpdHkxIDwgc3BlY2lmaWNpdHkyOwogfQogCiB2b2lkIEVsZW1lbnRSdWxlQ29s
bGVjdG9yOjpzb3J0TWF0Y2hlZFJ1bGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxl
Q29sbGVjdG9yLmgKaW5kZXggYjY1MTFkNWRjMWYwMmY1YTliZTZiZmYyZDI0ZTdlZGMzYjQzODhh
OC4uMThhNTBjYjdhMjRlNjZjMTI2NWYyNDYxMzczZjg1YTczZjg0NDc5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKQEAgLTM4LDYgKzM4LDExIEBAIGNsYXNz
IFJ1bGVEYXRhOwogY2xhc3MgUnVsZVNldDsKIGNsYXNzIFNlbGVjdG9yRmlsdGVyOwogCitzdHJ1
Y3QgTWF0Y2hlZFJ1bGUgeworICAgIGNvbnN0IFJ1bGVEYXRhKiBydWxlRGF0YTsKKyAgICB1bnNp
Z25lZCBzcGVjaWZpY2l0eTsKK307CisKIGNsYXNzIEVsZW1lbnRSdWxlQ29sbGVjdG9yIHsKIHB1
YmxpYzoKICAgICBFbGVtZW50UnVsZUNvbGxlY3RvcihFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSogc3R5bGUsIGNvbnN0IERvY3VtZW50UnVsZVNldHMmIHJ1bGVTZXRzLCBjb25zdCBTZWxl
Y3RvckZpbHRlciYgc2VsZWN0b3JGaWx0ZXIpCkBAIC04MSwxMiArODYsMTIgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ1J1bGVzKGNvbnN0IE1hdGNoUmVxdWVzdCYsIFN0eWxl
UmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwogICAgIHZvaWQgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JS
ZWdpb24oY29uc3QgTWF0Y2hSZXF1ZXN0JiwgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CiAg
ICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRh
PiosIGNvbnN0IE1hdGNoUmVxdWVzdCYsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYpOwotICAg
IGJvb2wgcnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmKTsKKyAgICBib29sIHJ1bGVNYXRjaGVz
KGNvbnN0IFJ1bGVEYXRhJiwgdW5zaWduZWQgJnNwZWNpZmljaXR5KTsKIAogICAgIHZvaWQgc29y
dE1hdGNoZWRSdWxlcygpOwogICAgIHZvaWQgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKCk7
CiAKLSAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKGNvbnN0IFJ1bGVEYXRhKik7CisgICAgdm9pZCBh
ZGRNYXRjaGVkUnVsZShjb25zdCBNYXRjaGVkUnVsZSYpOwogCiAgICAgRWxlbWVudCYgbV9lbGVt
ZW50OwogICAgIFJlbmRlclN0eWxlKiBtX3N0eWxlOwpAQCAtMTAwLDcgKzEwNSw3IEBAIHByaXZh
dGU6CiAgICAgU2VsZWN0b3JDaGVja2VyOjpNb2RlIG1fbW9kZTsKICAgICBib29sIG1fY2FuVXNl
RmFzdFJlamVjdDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8Y29uc3QgUnVsZURhdGEq
LCAzMj4+IG1fbWF0Y2hlZFJ1bGVzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8TWF0Y2hl
ZFJ1bGUsIDMyPj4gbV9tYXRjaGVkUnVsZXM7CiAKICAgICAvLyBPdXRwdXQuCiAgICAgVmVjdG9y
PFJlZlB0cjxTdHlsZVJ1bGU+PiBtX21hdGNoZWRSdWxlTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cAppbmRleCA2OThlMGNhMmZiNDhhY2U4NzdkYjI0OTFjNDRjMDMxMDM2MmFjYTU2Li4xOTAwYWEx
ZWY5MWRjMjQ0Y2I4MTNhYjY2NzljZmIxNGE0N2U0YTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3Bw
CkBAIC01MywxOCArNTMsMjggQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotc3RhdGljIGlubGluZSBib29sIGlzU2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNlZE9u
UnVsZUhhc2goY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yKQorc3RhdGljIGlubGluZSBNYXRj
aEJhc2VkT25SdWxlSGFzaCBjb21wdXRlTWF0Y2hCYXNlZE9uUnVsZUhhc2goY29uc3QgQ1NTU2Vs
ZWN0b3ImIHNlbGVjdG9yKQogewogICAgIGlmIChzZWxlY3Rvci50YWdIaXN0b3J5KCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpO
b25lOwogCiAgICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykgewot
ICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdG9yTmFtZXNwYWNlID0gc2VsZWN0b3Iu
dGFnUU5hbWUoKS5uYW1lc3BhY2VVUkkoKTsKLSAgICAgICAgcmV0dXJuIHNlbGVjdG9yTmFtZXNw
YWNlID09IHN0YXJBdG9tIHx8IHNlbGVjdG9yTmFtZXNwYWNlID09IHhodG1sTmFtZXNwYWNlVVJJ
OworICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdRdWFsaWZpZWROYW1lID0gc2VsZWN0
b3IudGFnUU5hbWUoKTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3Rvck5hbWVz
cGFjZSA9IHRhZ1F1YWxpZmllZE5hbWUubmFtZXNwYWNlVVJJKCk7CisgICAgICAgIGlmIChzZWxl
Y3Rvck5hbWVzcGFjZSA9PSBzdGFyQXRvbSB8fCBzZWxlY3Rvck5hbWVzcGFjZSA9PSB4aHRtbE5h
bWVzcGFjZVVSSSkgeworICAgICAgICAgICAgaWYgKHRhZ1F1YWxpZmllZE5hbWUgPT0gYW55UU5h
bWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OlVuaXZl
cnNhbDsKKyAgICAgICAgICAgIHJldHVybiBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Q2xhc3NDOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Tm9uZTsKICAg
ICB9CiAgICAgaWYgKFNlbGVjdG9yQ2hlY2tlcjo6aXNDb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9y
KCZzZWxlY3RvcikpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBzZWxlY3Rvci5t
YXRjaCgpID09IENTU1NlbGVjdG9yOjpJZCB8fCBzZWxlY3Rvci5tYXRjaCgpID09IENTU1NlbGVj
dG9yOjpDbGFzczsKKyAgICAgICAgcmV0dXJuIE1hdGNoQmFzZWRPblJ1bGVIYXNoOjpDbGFzc0I7
CisgICAgaWYgKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OklkKQorICAgICAgICBy
ZXR1cm4gTWF0Y2hCYXNlZE9uUnVsZUhhc2g6OkNsYXNzQTsKKyAgICBpZiAoc2VsZWN0b3IubWF0
Y2goKSA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3MpCisgICAgICAgIHJldHVybiBNYXRjaEJhc2VkT25S
dWxlSGFzaDo6Q2xhc3NCOworICAgIHJldHVybiBNYXRjaEJhc2VkT25SdWxlSGFzaDo6Tm9uZTsK
IH0KIAogc3RhdGljIGJvb2wgc2VsZWN0b3JDYW5NYXRjaFBzZXVkb0VsZW1lbnQoY29uc3QgQ1NT
U2VsZWN0b3ImIHJvb3RTZWxlY3RvcikKQEAgLTE0OSw4ICsxNTksNyBAQCBSdWxlRGF0YTo6UnVs
ZURhdGEoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCB1bnNpZ25lZCBw
b3NpdGlvbiwgQQogICAgICwgbV9zZWxlY3RvckluZGV4KHNlbGVjdG9ySW5kZXgpCiAgICAgLCBt
X2hhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4oYWRkUnVsZUZsYWdzICYgUnVsZUhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4pCiAgICAgLCBtX3Bvc2l0aW9uKHBvc2l0aW9uKQotICAgICwgbV9zcGVj
aWZpY2l0eShzZWxlY3RvcigpLT5zcGVjaWZpY2l0eSgpKQotICAgICwgbV9oYXNSaWdodG1vc3RT
ZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFzaChpc1NlbGVjdG9yTWF0Y2hpbmdIVE1M
QmFzZWRPblJ1bGVIYXNoKCpzZWxlY3RvcigpKSkKKyAgICAsIG1fbWF0Y2hCYXNlZE9uUnVsZUhh
c2goc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNvbXB1dGVNYXRjaEJhc2VkT25SdWxlSGFzaCgqc2Vs
ZWN0b3IoKSkpKQogICAgICwgbV9jYW5NYXRjaFBzZXVkb0VsZW1lbnQoc2VsZWN0b3JDYW5NYXRj
aFBzZXVkb0VsZW1lbnQoKnNlbGVjdG9yKCkpKQogICAgICwgbV9jb250YWluc1VuY29tbW9uQXR0
cmlidXRlU2VsZWN0b3IoV2ViQ29yZTo6Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
KHNlbGVjdG9yKCkpKQogICAgICwgbV9saW5rTWF0Y2hUeXBlKFNlbGVjdG9yQ2hlY2tlcjo6ZGV0
ZXJtaW5lTGlua01hdGNoVHlwZShzZWxlY3RvcigpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IGEz
ZGM0MGUxMmE2NzkyMTdhYWMzYTVlMjgwN2Q4Y2ZlMWYxOTIyOTkuLmU3ZDhhMGIwY2QxZDEzYmU4
NmI3Nzg2MmNmNzhkODc3ZTAzYmFjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9S
dWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtNTQsNiArNTQs
MTQgQEAgY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlUnVsZVJlZ2lvbjsKIGNsYXNz
IFN0eWxlU2hlZXRDb250ZW50czsKIAorZW51bSBjbGFzcyBNYXRjaEJhc2VkT25SdWxlSGFzaCA6
IHVuc2lnbmVkIHsKKyAgICBOb25lLAorICAgIFVuaXZlcnNhbCwKKyAgICBDbGFzc0EsCisgICAg
Q2xhc3NCLAorICAgIENsYXNzQworfTsKKwogY2xhc3MgUnVsZURhdGEgewogcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtU2VsZWN0b3JDb21wb25lbnRDb3VudCA9IDgx
OTI7CkBAIC02Niw5ICs3NCw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzZWxlY3RvckluZGV4
KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3RvckluZGV4OyB9CiAKICAgICBib29sIGNhbk1hdGNo
UHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuTWF0Y2hQc2V1ZG9FbGVtZW50OyB9
Ci0gICAgYm9vbCBoYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFz
aCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmlnaHRtb3N0U2VsZWN0b3JNYXRjaGluZ0hUTUxCYXNl
ZE9uUnVsZUhhc2g7IH0KKyAgICBNYXRjaEJhc2VkT25SdWxlSGFzaCBtYXRjaEJhc2VkT25SdWxl
SGFzaCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE1hdGNoQmFzZWRPblJ1bGVIYXNoPiht
X21hdGNoQmFzZWRPblJ1bGVIYXNoKTsgfQogICAgIGJvb2wgY29udGFpbnNVbmNvbW1vbkF0dHJp
YnV0ZVNlbGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluc1VuY29tbW9uQXR0cmlidXRl
U2VsZWN0b3I7IH0KLSAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c3BlY2lmaWNpdHk7IH0KICAgICB1bnNpZ25lZCBsaW5rTWF0Y2hUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9saW5rTWF0Y2hUeXBlOyB9CiAgICAgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luOyB9CiAgICAgUHJv
cGVydHlXaGl0ZWxpc3RUeXBlIHByb3BlcnR5V2hpdGVsaXN0VHlwZShib29sIGlzTWF0Y2hpbmdV
QVJ1bGVzID0gZmFsc2UpIGNvbnN0IHsgcmV0dXJuIGlzTWF0Y2hpbmdVQVJ1bGVzID8gUHJvcGVy
dHlXaGl0ZWxpc3ROb25lIDogc3RhdGljX2Nhc3Q8UHJvcGVydHlXaGl0ZWxpc3RUeXBlPihtX3By
b3BlcnR5V2hpdGVsaXN0VHlwZSk7IH0KQEAgLTEwMSw4ICsxMDgsNyBAQCBwcml2YXRlOgogICAg
IC8vIFRoaXMgbnVtYmVyIHdhcyBwaWNrZWQgZmFpcmx5IGFyYml0cmFyaWx5LiBXZSBjYW4gcHJv
YmFibHkgbG93ZXIgaXQgaWYgd2UgbmVlZCB0by4KICAgICAvLyBTb21lIHNpbXBsZSB0ZXN0aW5n
IHNob3dlZCA8MTAwLDAwMCBSdWxlRGF0YSdzIG9uIGxhcmdlIHNpdGVzLgogICAgIHVuc2lnbmVk
IG1fcG9zaXRpb24gOiAxODsKLSAgICB1bnNpZ25lZCBtX3NwZWNpZmljaXR5IDogMjQ7Ci0gICAg
dW5zaWduZWQgbV9oYXNSaWdodG1vc3RTZWxlY3Rvck1hdGNoaW5nSFRNTEJhc2VkT25SdWxlSGFz
aCA6IDE7CisgICAgdW5zaWduZWQgbV9tYXRjaEJhc2VkT25SdWxlSGFzaCA6IDM7CiAgICAgdW5z
aWduZWQgbV9jYW5NYXRjaFBzZXVkb0VsZW1lbnQgOiAxOwogICAgIHVuc2lnbmVkIG1fY29udGFp
bnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yIDogMTsKICAgICB1bnNpZ25lZCBtX2xpbmtNYXRj
aFR5cGUgOiAyOyAvLyAgU2VsZWN0b3JDaGVja2VyOjpMaW5rTWF0Y2hNYXNrCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IDQxY2Y3NTA2MWMwN2M5MmY4NTY0Y2Y3ZGVl
YWNmOTY3ZDhlZjk1MWQuLjhkZDJmMzM4YjIzZmM4ZWJmZDQ3ZTc4NjY1OGVhMmRkNDhlMWU1M2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC0xNjgsNyArMTY4LDcg
QEAgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNrZXIoRG9jdW1lbnQmIGRvY3VtZW50KQog
ewogfQogCi1ib29sIFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2goY29uc3QgQ1NTU2VsZWN0b3IqIHNl
bGVjdG9yLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBDaGVja2luZ0NvbnRleHQmIHByb3ZpZGVk
Q29udGV4dCkgY29uc3QKK2Jvb2wgU2VsZWN0b3JDaGVja2VyOjptYXRjaChjb25zdCBDU1NTZWxl
Y3Rvciogc2VsZWN0b3IsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IENoZWNraW5nQ29udGV4dCYg
cHJvdmlkZWRDb250ZXh0LCB1bnNpZ25lZCYgc3BlY2lmaWNpdHkpIGNvbnN0CiB7CiAgICAgQ2hl
Y2tpbmdDb250ZXh0V2l0aFN0YXR1cyBjb250ZXh0KHByb3ZpZGVkQ29udGV4dCwgc2VsZWN0b3Is
IGVsZW1lbnQpOwogICAgIFBzZXVkb0lkIHBzZXVkb0lkID0gTk9QU0VVRE87CkBAIC0xNzYsNiAr
MTc2LDggQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoKGNvbnN0IENTU1NlbGVjdG9yKiBz
ZWxlY3RvciwgRWxlbWVudCogZWxlbWVudCwgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmIChjb250ZXh0LnBzZXVkb0lkICE9IE5PUFNFVURPICYmIGNvbnRleHQucHNldWRvSWQg
IT0gcHNldWRvSWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNwZWNpZmljaXR5ID0g
c2VsZWN0b3ItPnNwZWNpZmljaXR5KCk7CiAgICAgaWYgKGNvbnRleHQucHNldWRvSWQgPT0gTk9Q
U0VVRE8gJiYgcHNldWRvSWQgIT0gTk9QU0VVRE8pIHsKICAgICAgICAgaWYgKGNvbnRleHQucmVz
b2x2aW5nTW9kZSA9PSBNb2RlOjpSZXNvbHZpbmdTdHlsZSAmJiBwc2V1ZG9JZCA8IEZJUlNUX0lO
VEVSTkFMX1BTRVVET0lEKQogICAgICAgICAgICAgY29udGV4dC5lbGVtZW50U3R5bGUtPnNldEhh
c1BzZXVkb1N0eWxlKHBzZXVkb0lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApp
bmRleCA4MDc3NzE3NDQ1ZWEzNjg1NzQ2NDljMTQ1MTMzZDg3N2MzNjdhMjZjLi4yOTBiZjE3Zjc5
MThlMzgwNGNjYWQ1MTQ1YzI4NDA4OGQ0YmU5OTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0cnVjdCBDaGVja2lu
Z0NvbnRleHRXaXRoU3RhdHVzOwogCi0gICAgYm9vbCBtYXRjaChjb25zdCBDU1NTZWxlY3Rvcios
IEVsZW1lbnQqLCBjb25zdCBDaGVja2luZ0NvbnRleHQmKSBjb25zdDsKKyAgICBib29sIG1hdGNo
KGNvbnN0IENTU1NlbGVjdG9yKiwgRWxlbWVudCosIGNvbnN0IENoZWNraW5nQ29udGV4dCYsIHVu
c2lnbmVkJiBzcGVjaWZpY2l0eSkgY29uc3Q7CiAKICAgICBzdGF0aWMgYm9vbCB0YWdNYXRjaGVz
KGNvbnN0IEVsZW1lbnQqLCBjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgc3RhdGljIGJvb2wg
aXNDb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBlM2JmMzYzMDM3OTBlMTY2NDM4MzE1ZjdiYzBjZmMz
ZTZjNzlhMzg5Li5iMmNhOTZiMzQ0MzA5ZmUxMDk4OWU4YjcxYWFiMDIzZWRhM2ExN2YyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTU3Miw3ICs1NzIsOCBAQCBpbmxpbmUgYm9v
bCBjaGVja1JlZ2lvblNlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yKiByZWdpb25TZWxlY3Rvciwg
RWxlbWVudCogcmVnaQogICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIocmVnaW9u
RWxlbWVudC0+ZG9jdW1lbnQoKSk7CiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3RvciogcyA9IHJl
Z2lvblNlbGVjdG9yOyBzOyBzID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHMpKSB7CiAgICAgICAg
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0
KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UXVlcnlpbmdSdWxlcyk7Ci0gICAgICAgIGlmIChzZWxl
Y3RvckNoZWNrZXIubWF0Y2gocywgcmVnaW9uRWxlbWVudCwgc2VsZWN0b3JDaGVja2luZ0NvbnRl
eHQpKQorICAgICAgICB1bnNpZ25lZCBpZ25vcmVkU3BlY2lmaWNpdHk7CisgICAgICAgIGlmIChz
ZWxlY3RvckNoZWNrZXIubWF0Y2gocywgcmVnaW9uRWxlbWVudCwgc2VsZWN0b3JDaGVja2luZ0Nv
bnRleHQsIGlnbm9yZWRTcGVjaWZpY2l0eSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwCmluZGV4IDFlMzNhOTc5MmViOTVkMTBkYzQ3NjdiZmQyZjRiN2ZlYTE5ZDFhYjQu
LjAxN2ExNjdmODFkMWEwNTEyYjVjOTVjMWE5NDlmNjI0NGM1YjY0YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTM1Nyw5ICszNTcsNyBAQCBwcml2
YXRlOgogICAgIFN0YWNrQWxsb2NhdG9yOjpTdGFja1JlZmVyZW5jZSBtX2xhc3RWaXNpdGVkRWxl
bWVudDsKICAgICBTdGFja0FsbG9jYXRvcjo6U3RhY2tSZWZlcmVuY2UgbV9zdGFydEVsZW1lbnQ7
CiAKLSNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVHR0lORwogICAgIGNvbnN0IENTU1NlbGVjdG9y
KiBtX29yaWdpbmFsU2VsZWN0b3I7Ci0jZW5kaWYKIH07CiAKIGNvbnN0IEFzc2VtYmxlcjo6UmVn
aXN0ZXJJRCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OnJldHVyblJlZ2lzdGVyID0gSlNDOjpHUFJJ
bmZvOjpyZXR1cm5WYWx1ZUdQUjsKQEAgLTc5OCw5ICs3OTYsNyBAQCBpbmxpbmUgU2VsZWN0b3JD
b2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHJv
b3RTZWxlYwogICAgICwgbV9mdW5jdGlvblR5cGUoRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIpCiAgICAgLCBtX3Zpc2l0ZWRNb2RlKFZpc2l0ZWRNb2RlOjpOb25lKQogICAgICwg
bV9kZXNjZW5kYW50QmFja3RyYWNraW5nU3RhcnRJblVzZShmYWxzZSkKLSNpZiBDU1NfU0VMRUNU
T1JfSklUX0RFQlVHR0lORwogICAgICwgbV9vcmlnaW5hbFNlbGVjdG9yKHJvb3RTZWxlY3RvcikK
LSNlbmRpZgogewogI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCiAgICAgZGF0YUxvZ0Yo
IkNvbXBpbGluZyBcIiVzXCJcbiIsIG1fb3JpZ2luYWxTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCku
dXRmOCgpLmRhdGEoKSk7CkBAIC0xNjA5LDYgKzE2MDUsMTQgQEAgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JDaGVja2VyKCkKICAgICAgICAgZ2VuZXJhdGVSZXF1
ZXN0ZWRQc2V1ZG9FbGVtZW50RXF1YWxzVG9TZWxlY3RvclBzZXVkb0VsZW1lbnQoZmFpbHVyZU9u
RnVuY3Rpb25FbnRyeSwgbV9zZWxlY3RvckZyYWdtZW50cy5maXJzdCgpLCBjaGVja2luZ0NvbnRl
eHRSZWdpc3Rlcik7CiAgICAgfQogCisgICAgaWYgKG1fc2VsZWN0b3JDb250ZXh0ID09IFNlbGVj
dG9yQ29udGV4dDo6UnVsZUNvbGxlY3RvcikgeworICAgICAgICB1bnNpZ25lZCBzcGVjaWZpY2l0
eSA9IG1fb3JpZ2luYWxTZWxlY3Rvci0+c3BlY2lmaWNpdHkoKTsKKyAgICAgICAgaWYgKG1fZnVu
Y3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCkKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0b3JlMzIoQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN0b3JlMzIoQXNzZW1ibGVyOjpUcnVzdGVk
SW1tMzIoc3BlY2lmaWNpdHkpLCBKU0M6OkdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgfQor
CiAgICAgY29tcHV0ZUJhY2t0cmFja2luZ01lbW9yeVJlcXVpcmVtZW50cyhtX3NlbGVjdG9yRnJh
Z21lbnRzKTsKICAgICB1bnNpZ25lZCBhdmFpbGFibGVSZWdpc3RlckNvdW50ID0gbV9yZWdpc3Rl
ckFsbG9jYXRvci5yZXNlcnZlQ2FsbGVyU2F2ZWRSZWdpc3RlcnMobV9zZWxlY3RvckZyYWdtZW50
cy5yZWdpc3RlclJlcXVpcmVtZW50cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
c2ppdC9TZWxlY3RvckNvbXBpbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JD
b21waWxlci5oCmluZGV4IGIxMDdjNDM0MjdmZDQ5N2YyMDk5MTRiNjJiZGMyZDg3YmQ0MzhmZTUu
LjJjYjY0YTg4MzIzYTEwZjRmNjJmMWI0NDg1Y2U4ZjAyMmY2NzUyNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaApAQCAtNzcsMjIgKzc3LDM3IEBAIGVudW0gY2xh
c3MgU2VsZWN0b3JDb250ZXh0IHsKICAgICBRdWVyeVNlbGVjdG9yCiB9OwogCi10eXBlZGVmIHVu
c2lnbmVkICgqU2ltcGxlU2VsZWN0b3JDaGVja2VyKShFbGVtZW50Kik7Ci10eXBlZGVmIHVuc2ln
bmVkICgqU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCkoRWxlbWVudCosIGNvbnN0
IFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0Kik7Cit0eXBlZGVmIHVuc2lnbmVkICgq
UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcikoRWxlbWVudCosIHVuc2lnbmVkKik7
Cit0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciko
RWxlbWVudCopOworCit0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpKEVsZW1lbnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6
OkNoZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7Cit0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlT
ZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKEVsZW1lbnQqLCBjb25z
dCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCopOworCiBTZWxlY3RvckNvbXBpbGF0
aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciosIEpTQzo6Vk0qLCBT
ZWxlY3RvckNvbnRleHQsIEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmJiBvdXRwdXRDb2RlUmVm
KTsKIAotaW5saW5lIFNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzaW1wbGVTZWxlY3RvckNoZWNrZXJG
dW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1
cyBjb21waWxhdGlvblN0YXR1cykKK2lubGluZSBSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbih2b2lkKiBl
eGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0
YXR1cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBjb21waWxhdGlv
blN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNr
ZXIpOwotICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFNpbXBsZVNlbGVjdG9yQ2hlY2tlcj4o
ZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFJ1bGVDb2xs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXI+KGV4ZWN1dGFibGVBZGRyZXNzKTsKIH0KIAotaW5s
aW5lIFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyRnVu
Y3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQoraW5saW5lIFF1ZXJ5U2VsZWN0
b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ckZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIGNvbXBpbGF0aW9uU3RhdHVzKQoreworICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25T
dGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNp
bXBsZVNlbGVjdG9yQ2hlY2tlcik7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVlcnlT
ZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlcj4oZXhlY3V0YWJsZUFkZHJlc3MpOworfQorCitp
bmxpbmUgUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgcnVs
ZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2b2lk
KiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlv
blN0YXR1cykKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBjb21waWxh
dGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PihleGVjdXRhYmxlQWRkcmVzcyk7CisgICAgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQ+KGV4ZWN1dGFibGVBZGRyZXNzKTsKIH0KIAoraW5saW5lIFF1ZXJ5U2VsZWN0
b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHF1ZXJ5U2VsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQodm9pZCogZXhlY3V0YWJsZUFkZHJl
c3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCit7CisgICAg
QVNTRVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dCk7CisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQ+KGV4ZWN1dGFibGVBZGRyZXNzKTsKK30KIAogfSAvLyBu
YW1lc3BhY2UgU2VsZWN0b3JDb21waWxlcgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDRlOTI1MGZjMGMxZDU2NWYzMTIwZjZjMGUy
YzhhNzExNmE5OWE3MzUuLmZiYmU0ZTcyN2M2NDZmZTlmNmMyMWMxNzdhNjExZWY3M2U1Zjc0ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTExNyw3ICsxMTcsOCBAQCBp
bmxpbmUgYm9vbCBTZWxlY3RvckRhdGFMaXN0OjpzZWxlY3Rvck1hdGNoZXMoY29uc3QgU2VsZWN0
b3JEYXRhJiBzZWxlY3RvckRhdGEsCiAgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tl
cihlbGVtZW50LmRvY3VtZW50KCkpOwogICAgIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250
ZXh0IHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6TW9kZTo6UXVlcnlp
bmdSdWxlcyk7CiAgICAgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQuc2NvcGUgPSByb290Tm9kZS5p
c0RvY3VtZW50Tm9kZSgpID8gbnVsbHB0ciA6ICZyb290Tm9kZTsKLSAgICByZXR1cm4gc2VsZWN0
b3JDaGVja2VyLm1hdGNoKHNlbGVjdG9yRGF0YS5zZWxlY3RvciwgJmVsZW1lbnQsIHNlbGVjdG9y
Q2hlY2tpbmdDb250ZXh0KTsKKyAgICB1bnNpZ25lZCBpZ25vcmVkU3BlY2lmaWNpdHk7CisgICAg
cmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckRhdGEuc2VsZWN0b3IsICZlbGVt
ZW50LCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCwgaWdub3JlZFNwZWNpZmljaXR5KTsKIH0KIAog
aW5saW5lIEVsZW1lbnQqIFNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yQ2xvc2VzdChjb25zdCBT
ZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSwgRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQ29udGFp
bmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0CkBAIC0xMjYsNyArMTI3LDggQEAgaW5saW5lIEVsZW1l
bnQqIFNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yQ2xvc2VzdChjb25zdCBTZWxlY3RvckRhdGEm
IHNlbGVjdG9yRGEKICAgICBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCBzZWxlY3Rv
ckNoZWNraW5nQ29udGV4dChTZWxlY3RvckNoZWNrZXI6Ok1vZGU6OlF1ZXJ5aW5nUnVsZXMpOwog
ICAgIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5v
ZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CiAgICAgRWxlbWVudCogY3VycmVudE5vZGUgPSAm
ZWxlbWVudDsKLSAgICBpZiAoIXNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckRhdGEuc2Vs
ZWN0b3IsIGN1cnJlbnROb2RlLCBzZWxlY3RvckNoZWNraW5nQ29udGV4dCkpCisgICAgdW5zaWdu
ZWQgaWdub3JlZFNwZWNpZmljaXR5OworICAgIGlmICghc2VsZWN0b3JDaGVja2VyLm1hdGNoKHNl
bGVjdG9yRGF0YS5zZWxlY3RvciwgY3VycmVudE5vZGUsIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0
LCBpZ25vcmVkU3BlY2lmaWNpdHkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1
cm4gY3VycmVudE5vZGU7CiB9CkBAIC0zODEsNyArMzgzLDcgQEAgQUxXQVlTX0lOTElORSB2b2lk
IFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YShjb25zdCBD
b250YWkKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogdGVtcGxhdGUgPHR5cGVuYW1l
IFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0
OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9k
ZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlNpbXBsZVNlbGVjdG9yQ2hlY2tl
ciBzZWxlY3RvckNoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlw
ZSYgb3V0cHV0LCBjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK0FMV0FZ
U19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW1wbGVTZWxl
Y3RvckNoZWNrZXIoY29uc3QgQ29udGFpbmVyTm9kZSYgc2VhcmNoUm9vdE5vZGUsIFNlbGVjdG9y
Q29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVj
a2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwgY29u
c3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBl
bGVtZW50IDogZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHNl
YXJjaFJvb3ROb2RlKSkpIHsKICNpZiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORwpAQCAtMzk4
LDcgKzQwMCw3IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRl
Q29tcGlsZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIoY29uc3QKIH0KIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KLUFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFM
aXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNv
bnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hS
b290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCBzZWxlY3RvckNoZWNrZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0
VHlwZSYgb3V0cHV0LCBjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSkgY29uc3QKK0FM
V0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2Rl
LCBjb25zdCBDb250YWluZXJOb2RlJiBzZWFyY2hSb290Tm9kZSwgU2VsZWN0b3JDb21waWxlcjo6
UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JD
aGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6Ok91dHB1dFR5cGUmIG91dHB1dCwg
Y29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEpIGNvbnN0CiB7CiAgICAgU2VsZWN0b3JD
aGVja2VyOjpDaGVja2luZ0NvbnRleHQgY2hlY2tpbmdDb250ZXh0KFNlbGVjdG9yQ2hlY2tlcjo6
TW9kZTo6UXVlcnlpbmdSdWxlcyk7CiAgICAgY2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5v
ZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CkBAIC00MzEsMTEgKzQz
MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBp
bGVkU2luZ2xlTXVsdGlTZWxlY3RvckRhdGEoY29ucwogICAgICAgICAgICAgYm9vbCBtYXRjaGVk
ID0gZmFsc2U7CiAgICAgICAgICAgICB2b2lkKiBjb21waWxlZFNlbGVjdG9yQ2hlY2tlciA9IG1f
c2VsZWN0b3JzW2ldLmNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRk
cmVzcygpOwogICAgICAgICAgICAgaWYgKG1fc2VsZWN0b3JzW2ldLmNvbXBpbGF0aW9uU3RhdHVz
ID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewot
ICAgICAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlciBz
ZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpzaW1wbGVTZWxlY3RvckNoZWNrZXJG
dW5jdGlvbihjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgbV9zZWxlY3RvcnNbaV0uY29tcGlsYXRp
b25TdGF0dXMpOworICAgICAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0
b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxl
cjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2Vs
ZWN0b3JDaGVja2VyLCBtX3NlbGVjdG9yc1tpXS5jb21waWxhdGlvblN0YXR1cyk7CiAgICAgICAg
ICAgICAgICAgbWF0Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCk7CiAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVChtX3NlbGVjdG9yc1tpXS5jb21waWxh
dGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJX
aXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAgICAgICAgICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpT
ZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVj
dG9yQ29tcGlsZXI6OnNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChj
b21waWxlZFNlbGVjdG9yQ2hlY2tlciwgbV9zZWxlY3RvcnNbaV0uY29tcGlsYXRpb25TdGF0dXMp
OworICAgICAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29t
cGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0Nv
bnRleHQoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIG1fc2VsZWN0b3JzW2ldLmNvbXBpbGF0aW9u
U3RhdHVzKTsKICAgICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVt
ZW50LCAmY2hlY2tpbmdDb250ZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICht
YXRjaGVkKSB7CkBAIC01MjQsMTEgKzUyNiwxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0
b3JEYXRhTGlzdDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwog
ICAgICAgICBjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSA9IG1fc2VsZWN0b3JzLmZp
cnN0KCk7CiAgICAgICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gc2VsZWN0b3JE
YXRhLmNvbXBpbGVkU2VsZWN0b3JDb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwog
ICAgICAgICBpZiAoc2VsZWN0b3JEYXRhLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29t
cGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgU2Vs
ZWN0b3JDb21waWxlcjo6U2ltcGxlU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciA9IFNl
bGVjdG9yQ29tcGlsZXI6OnNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2Vs
ZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICAg
ICAgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBz
ZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yRGF0
YS5jb21waWxhdGlvblN0YXR1cyk7CiAgICAgICAgICAgICBleGVjdXRlQ29tcGlsZWRTaW1wbGVT
ZWxlY3RvckNoZWNrZXI8U2VsZWN0b3JRdWVyeVRyYWl0Pigqc2VhcmNoUm9vdE5vZGUsIHNlbGVj
dG9yQ2hlY2tlciwgb3V0cHV0LCBzZWxlY3RvckRhdGEpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgQVNTRVJUKHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3Rv
ckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsK
LSAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6c2VsZWN0b3JDaGVj
a2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBz
ZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICAgICAgU2VsZWN0b3JDb21w
aWxlcjo6UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgc2Vs
ZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwg
c2VsZWN0b3JEYXRhLmNvbXBpbGF0aW9uU3RhdHVzKTsKICAgICAgICAgICAgIGV4ZWN1dGVDb21w
aWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ8U2VsZWN0b3JRdWVyeVRyYWl0
Pihyb290Tm9kZSwgKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2Vs
ZWN0b3JEYXRhKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oCmluZGV4IDYxZjA3N2E3ZDk4NWYxODJiM2U5ZmY0NWFkODE5ZTljN2Y1MDRhMzku
Ljc5MmIyMzVlMzVlODgwZDVhMDQ5ZGUxNTExZjNhODFlNDQyN2ZkZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdG9yUXVlcnkuaApAQCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZVNpbmdsZVNlbGVjdG9y
RGF0YShjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgU2VsZWN0b3JEYXRhJiwg
dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7CiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVjdXRlU2luZ2xlTXVs
dGlTZWxlY3RvckRhdGEoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIHR5cGVuYW1lIFNl
bGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYpIGNvbnN0OwogI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JfSklUKQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+IHZv
aWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5v
ZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpTaW1wbGVTZWxlY3RvckNoZWNr
ZXIsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0IFNlbGVj
dG9yRGF0YSYpIGNvbnN0OwotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4
dChjb25zdCBDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQ29udGFpbmVyTm9kZSYgc2Vh
cmNoUm9vdE5vZGUsIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0NvbnRleHQsIHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdDo6T3V0cHV0VHlwZSYsIGNvbnN0
IFNlbGVjdG9yRGF0YSYpIGNvbnN0OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1
ZXJ5VHJhaXQ+IHZvaWQgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0
IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNl
bGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCB0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ6
Ok91dHB1dFR5cGUmLCBjb25zdCBTZWxlY3RvckRhdGEmKSBjb25zdDsKKyAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0PiB2b2lkIGV4ZWN1dGVDb21waWxlZFNlbGVjdG9y
Q2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUs
IGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpR
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgdHlwZW5hbWUg
U2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiwgY29uc3QgU2VsZWN0b3JEYXRhJikgY29u
c3Q7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4gdm9pZCBleGVj
dXRlQ29tcGlsZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YShjb25zdCBDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJikgY29uc3Q7
CiAgICAgc3RhdGljIGJvb2wgY29tcGlsZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yRGF0YSYsIGNv
bnN0IENvbnRhaW5lck5vZGUmIHJvb3ROb2RlKTsKICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVD
VE9SX0pJVCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>