<?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>176867</bug_id>
          
          <creation_ts>2017-09-13 11:29:57 -0700</creation_ts>
          <short_desc>[JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray</short_desc>
          <delta_ts>2017-09-27 16:36:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1348396</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 11:29:57 -0700</bug_when>
    <thetext>[JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348397</commentid>
    <comment_count>1</comment_count>
      <attachid>320663</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 11:32:30 -0700</bug_when>
    <thetext>Created attachment 320663
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348399</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-13 11:33:37 -0700</bug_when>
    <thetext>Attachment 320663 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348401</commentid>
    <comment_count>3</comment_count>
      <attachid>320664</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 11:34:13 -0700</bug_when>
    <thetext>Created attachment 320664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348404</commentid>
    <comment_count>4</comment_count>
      <attachid>320666</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 11:38:20 -0700</bug_when>
    <thetext>Created attachment 320666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348503</commentid>
    <comment_count>5</comment_count>
      <attachid>320666</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-13 14:37:49 -0700</bug_when>
    <thetext>Comment on attachment 320666
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348713</commentid>
    <comment_count>6</comment_count>
      <attachid>320754</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-09-14 03:35:26 -0700</bug_when>
    <thetext>Created attachment 320754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1348720</commentid>
    <comment_count>7</comment_count>
      <attachid>320754</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-14 04:17:49 -0700</bug_when>
    <thetext>Comment on attachment 320754
Patch

Clearing flags on attachment: 320754

Committed r222017: &lt;http://trac.webkit.org/changeset/222017&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353928</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 16:36:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/34701454&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320663</attachid>
            <date>2017-09-13 11:32:30 -0700</date>
            <delta_ts>2017-09-13 11:34:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176867-20170914033229.patch</filename>
            <type>text/plain</type>
            <size>35714</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDdiM2U3MTM0NzRmNjQzODQ3NDY1YjdjNWMwMGU4MzczMmU2NDYyLi4yODc5MzdiYmQ1ODM2NDYz
YzdkYzlmNDBjM2U3NmM1NTgzMDVhOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NiBAQAogMjAxNy0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXSBBZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4
Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2UgcmFyZWx5IHJlcXVpcmUgcHJpdmF0ZSBzeW1ib2xzIHdo
ZW4gZW51bWVyYXRpbmcgcHJvcGVydHkgbmFtZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBQ
cml2YXRlU3ltYm9sTW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0uIElmIFByaXZhdGVTeW1ib2xNb2Rl
OjpFeGNsdWRlCisgICAgICAgIGlzIHNwZWNpZmllZCwgUHJvcGVydHlOYW1lQXJyYXkgZG9lcyBu
b3QgaW5jbHVkZSBwcml2YXRlIHN5bWJvbHMuCisgICAgICAgIFRoaXMgcmVtb3ZlcyBtYW55IGFk
LWhvYyBgSWRlbnRpZmllcjo6aXNQcml2YXRlTmFtZSgpYCBpbiBlbnVtZXJhdGlvbiBvcGVyYXRp
b25zLgorCisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0
Q29weVByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNUb0luc3BlY3RvclZhbHVlKToKKyAgICAgICAgKiBieXRl
Y29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RBbGxv
Y2F0aW9uUHJvZmlsZTo6cG9zc2libGVEZWZhdWx0UHJvcGVydHlDb3VudCk6CisgICAgICAgICog
cnVudGltZS9FbnVtZXJhdGlvbk1vZGUuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpzdXBwb3J0ZWRMb2NhbGVzKToKKyAgICAgICAgKiBydW50aW1l
L0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIp
OgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkp
OgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmg6CisgICAgICAgIChKU0M6OnByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpOgorICAgICAgICAoSlNDOjpvYmplY3RD
b25zdHJ1Y3RvckFzc2lnbik6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yVmFsdWVz
KToKKyAgICAgICAgKEpTQzo6ZGVmaW5lUHJvcGVydGllcyk6CisgICAgICAgIChKU0M6OnNldElu
dGVncml0eUxldmVsKToKKyAgICAgICAgKEpTQzo6dGVzdEludGVncml0eUxldmVsKToKKyAgICAg
ICAgKEpTQzo6b3duUHJvcGVydHlLZXlzKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TmFt
ZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjpQcm9wZXJ0eU5hbWVB
cnJheSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5Ojpwcm9wZXJ0eU5hbWVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OnByaXZhdGVTeW1ib2xN
b2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tl
ZEludGVybmFsKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tl
ZCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjphZGQpOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eU5hbWVBcnJheTo6aXNVaWRNYXRjaGVkVG9UeXBlTW9kZSk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjppbmNsdWRlU3ltYm9sUHJvcGVydGllcyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjppbmNsdWRlU3RyaW5nUHJvcGVydGllcyBj
b25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5Ojptb2RlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKToKKworMjAxNy0wOS0xMyAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBbSlNDXSBG
aXggQXJyYXkgYWxsb2NhdGlvbiBpbiBPYmplY3Qua2V5cwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODI2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMDFhZTNl
ZTY4MmUxODQ4MjI5MWZhZjdjNThkOGIyOWU0ODM3MTlmLi5kOTYxYzY2ZTAwYzdiMjhlNjVjODli
YTFmZmZmNDBlZGYyNmFiNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDkt
MTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pT
Q10gQWRkIFByaXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlO
YW1lQXJyYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Njg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0UmVjb3JkLmg6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKToKKyAg
ICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9FbnVtZXJhdGUp
OgorCiAyMDE3LTA5LTEzICBNczJnZXIgIDxNczJnZXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBN
YWtlIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OlR5cGVkTGlzdDo6ZGF0YSgpIGNvbnN0LWNv
cnJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDUyM2Q1NjQ3OTBhYTZlMjQ3M2U0ZWUyOGExNTMzZGNlM2QzNWFm
ZWIuLjY4OTI4Mzk1NWY1NTMyNTY5OTgxNWMxZmMwYTBmZjlhNDdjZTZlYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIFByaXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVk
ZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlOYW1lQXJyYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05Q
SlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpOUEpTT2JqZWN0OjplbnVtZXJhdGUpOgor
CiAyMDE3LTA5LTEzICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXZWJWUl0gQWRkIElETHMgYW5kIHN0dWJzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggMGFiYWQ5YmNmNzk4YWQ1OThhZTBjMzFkNjFiZjVjZmIzNjVmNGE5MC4uMzQ0
MzgzOTQyMWY0OWFlMjFiYTg5NDRlNmJiMTgwOWQxNzgwZGMyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTEzICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBQcml2YXRlU3ltYm9s
TW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0gZm9yIFByb3BlcnR5TmFtZUFycmF5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4NjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQ
bHVnaW5JbnN0YW5jZVByb3h5OjplbnVtZXJhdGUpOgorCiAyMDE3LTA5LTEzICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlZmFjdG9yIFdlYkNvbnRlbnRSZWFk
ZXIgb3V0IG9mIEVkaXRvck1hYyBhbmQgRWRpdG9ySU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDcwMmM4MjM1ODYzZmJlNWMzZjcyNDRmZTY3MTJiYjc0
ZjY3YWNlM2UuLjI0OWI1NTRkM2IwYmY0OWZkMWNiMzljMjlmZGQ1MTIyNzljZmFmYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCkBAIC02NDcsNyArNjQ3LDcg
QEAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBKU09iamVjdENvcHlQcm9wZXJ0eU5hbWVzKEpTQ29u
dGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG8KIAogICAgIEpTT2JqZWN0KiBqc09iamVjdCA9IHRv
SlMob2JqZWN0KTsKICAgICBKU1Byb3BlcnR5TmFtZUFycmF5UmVmIHByb3BlcnR5TmFtZXMgPSBu
ZXcgT3BhcXVlSlNQcm9wZXJ0eU5hbWVBcnJheSh2bSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkg
YXJyYXkodm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFtZUFy
cmF5IGFycmF5KHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9k
ZTo6RXhjbHVkZSk7CiAgICAganNPYmplY3QtPm1ldGhvZFRhYmxlKCp2bSktPmdldFByb3BlcnR5
TmFtZXMoanNPYmplY3QsIGV4ZWMsIGFycmF5LCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAKICAgICBz
aXplX3Qgc2l6ZSA9IGFycmF5LnNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmlu
ZGluZ3MvU2NyaXB0VmFsdWUuY3BwCmluZGV4IDBmMTVhZTdkNjI5ZGIwNjE5MzdkMWI4YWUyOTg0
NzQzZTI1MDU2NGYuLmQwMDcwZWM2ZjliYjQyYjA3YWVlZjgzMDk3MjQ3MTkyZDUwZDA2ZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcApAQCAt
NzksNyArNzksNyBAQCBzdGF0aWMgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBqc1RvSW5zcGVjdG9y
VmFsdWUoRXhlY1N0YXRlJiBzY3JpcHRTdGF0ZSwgSlNWYWx1ZQogICAgICAgICB9CiAgICAgICAg
IGF1dG8gaW5zcGVjdG9yT2JqZWN0ID0gSW5zcGVjdG9yT2JqZWN0OjpjcmVhdGUoKTsKICAgICAg
ICAgYXV0byYgb2JqZWN0ID0gKnZhbHVlLmdldE9iamVjdCgpOwotICAgICAgICBQcm9wZXJ0eU5h
bWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZzY3JpcHRTdGF0ZSwgUHJvcGVydHlOYW1lTW9kZTo6U3Ry
aW5ncyk7CisgICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnNjcmlwdFN0
YXRlLnZtKCksIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpF
eGNsdWRlKTsKICAgICAgICAgb2JqZWN0Lm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5TmFt
ZXMoJm9iamVjdCwgJnNjcmlwdFN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUo
KSk7CiAgICAgICAgIGZvciAoYXV0byYgbmFtZSA6IHByb3BlcnR5TmFtZXMpIHsKICAgICAgICAg
ICAgIGF1dG8gaW5zcGVjdG9yVmFsdWUgPSBqc1RvSW5zcGVjdG9yVmFsdWUoc2NyaXB0U3RhdGUs
IG9iamVjdC5nZXQoJnNjcmlwdFN0YXRlLCBuYW1lKSwgbWF4RGVwdGgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUu
aAppbmRleCAzMDFhMzU4MGM1MTk1ZmVlZWE1MWRmMDQ3MjU2MTFhNTFiYzhkOWU4Li5kOTg2NWY1
MWUyNGNlMDkxMThmNTQwOTJiMDkxYTFiM2FiOGFjNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaApAQCAt
MTMyLDcgKzEzMiw3IEBAIGNsYXNzIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlIHsKICAgICAgICAg
ICAgIHJldHVybiAwOwogCiAgICAgICAgIHNpemVfdCBjb3VudCA9IDA7Ci0gICAgICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3Ry
aW5nc0FuZFN5bWJvbHMpOworICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVB
cnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBQcml2YXRlU3lt
Ym9sTW9kZTo6SW5jbHVkZSk7CiAgICAgICAgIHByb3RvdHlwZS0+c3RydWN0dXJlKCktPmdldFBy
b3BlcnR5TmFtZXNGcm9tU3RydWN0dXJlKHZtLCBwcm9wZXJ0eU5hbWVBcnJheSwgRW51bWVyYXRp
b25Nb2RlKCkpOwogICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheURhdGE6OlByb3BlcnR5TmFtZVZl
Y3RvciYgcHJvcGVydHlOYW1lVmVjdG9yID0gcHJvcGVydHlOYW1lQXJyYXkuZGF0YSgpLT5wcm9w
ZXJ0eU5hbWVWZWN0b3IoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0
eU5hbWVWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9kZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRW51bWVyYXRpb25Nb2RlLmgKaW5kZXggN2FiYmVkMmVkOTAwMDhhOTNkMTU3YjMyNmU2
NzMwZmRiZjZlM2ZkNi4uMzE3OThmOTQ2ZmIzNDJjOWY0NjBmYjg0NWZiYjM5ZjNlYjNiYTAxMCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRW51bWVyYXRpb25Nb2Rl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRW51bWVyYXRpb25Nb2RlLmgK
QEAgLTMzLDYgKzMzLDExIEBAIGVudW0gY2xhc3MgUHJvcGVydHlOYW1lTW9kZSB7CiAgICAgU3Ry
aW5nc0FuZFN5bWJvbHMgPSBTeW1ib2xzIHwgU3RyaW5ncywKIH07CiAKK2VudW0gY2xhc3MgUHJp
dmF0ZVN5bWJvbE1vZGUgeworICAgIEluY2x1ZGUsCisgICAgRXhjbHVkZQorfTsKKwogZW51bSBj
bGFzcyBEb250RW51bVByb3BlcnRpZXNNb2RlIHsKICAgICBJbmNsdWRlLAogICAgIEV4Y2x1ZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggMjVk
MjFmMmVlNWNlM2M3NjcyMzE2YWFmNmY3YTAzNWQ2YTIxZjk4MS4uNzMwZWU4ODBiMTFlZGI2YmU1
NzA4MWUxNzMwYTA3YWY4MGZiYzRmMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bE9iamVjdC5jcHAKQEAgLTgzMCw3ICs4MzAsNyBAQCBKU1ZhbHVlIHN1cHBvcnRlZExv
Y2FsZXMoRXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFzaFNldDxTdHJpbmc+JiBhdmFpbGFibGVM
b2NhbAogICAgICAgICA6IGxvb2t1cFN1cHBvcnRlZExvY2FsZXMoc3RhdGUsIGF2YWlsYWJsZUxv
Y2FsZXMsIHJlcXVlc3RlZExvY2FsZXMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IEpTVmFsdWUoKSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBrZXlzKCZzdGF0ZSwgUHJvcGVy
dHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkga2V5cygmdm0sIFBy
b3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAg
ICBzdXBwb3J0ZWRMb2NhbGVzLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHN1cHBvcnRlZExvY2FsZXMs
ICZzdGF0ZSwga2V5cywgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAKaW5kZXggMGM3ZjNkMTkzYjc2ZTE5NWJlMDYwOTQwYTllZmFlNzIwMjMx
MGZlNC4uZWE2ODUwNzIwNmJkZjEwNjkxMzk5MzAwOTYyNGMyNzNmNDVlOWRkMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKQEAgLTIyNCw3ICsyMjQs
NyBAQCBTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMb2Nh
bDxVbmtub3duPiYgcmVwbGFjZXIsIGNvbnN0CiAgICAgOiBtX2V4ZWMoZXhlYykKICAgICAsIG1f
cmVwbGFjZXIocmVwbGFjZXIpCiAgICAgLCBtX3VzaW5nQXJyYXlSZXBsYWNlcihmYWxzZSkKLSAg
ICAsIG1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6
U3RyaW5ncykKKyAgICAsIG1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMoJmV4ZWMtPnZtKCks
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKQog
ICAgICwgbV9yZXBsYWNlckNhbGxUeXBlKENhbGxUeXBlOjpOb25lKQogewogICAgIFZNJiB2bSA9
IGV4ZWMtPnZtKCk7CkBAIC00ODQsNyArNDg0LDcgQEAgYm9vbCBTdHJpbmdpZmllcjo6SG9sZGVy
OjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXImIHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkK
ICAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3VzaW5nQXJyYXlSZXBsYWNlcikKICAgICAg
ICAgICAgICAgICBtX3Byb3BlcnR5TmFtZXMgPSBzdHJpbmdpZmllci5tX2FycmF5UmVwbGFjZXJQ
cm9wZXJ0eU5hbWVzLmRhdGEoKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IFByb3BlcnR5TmFtZUFycmF5IG9iamVjdFByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5ncyk7CisgICAgICAgICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgb2JqZWN0
UHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1i
b2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAgICBtX29iamVjdC0+bWV0aG9kVGFibGUo
dm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1fb2JqZWN0LmdldCgpLCBleGVjLCBvYmplY3RQcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1l
cyA9IG9iamVjdFByb3BlcnR5TmFtZXMucmVsZWFzZURhdGEoKTsKQEAgLTcwNSw3ICs3MDUsNyBA
QCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6OndhbGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQog
ICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChpblZhbHVlKTsKICAg
ICAgICAgICAgICAgICBvYmplY3RTdGFjay5wdXNoKG9iamVjdCk7CiAgICAgICAgICAgICAgICAg
aW5kZXhTdGFjay5hcHBlbmQoMCk7Ci0gICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBl
bmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7
CisgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXko
JnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVk
ZSkpOwogICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9w
ZXJ0eU5hbWVzKG9iamVjdCwgbV9leGVjLCBwcm9wZXJ0eVN0YWNrLmxhc3QoKSwgRW51bWVyYXRp
b25Nb2RlKCkpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAppbmRleCA1ZjhiMGIzZjcxZTJi
M2YxMjAwZTA0NGNjMzI4N2Y0NGI1YjM4Y2M1Li44MmJiMGRjMzNkOGE3NTEwMjYzNjQyMGJjYzkx
MjQwNWYzYTFiMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgY29u
c3QgQ2xhc3NJbmZvIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6c19pbmZvID0geyAiSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yIiwKIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtKQogewogICAgIGlmICghdm0uZW1wdHlQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpKSB7Ci0gICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHBy
b3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgUHJv
cGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgdm0uZW1wdHlQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yID0gU3Ryb25nPEpTQ2VsbD4odm0sIGNyZWF0ZSh2bSwgMCwgMCwgMCwg
V1RGTW92ZShwcm9wZXJ0eU5hbWVzKSkpOwogICAgIH0KICAgICByZXR1cm4ganNDYXN0PEpTUHJv
cGVydHlOYW1lRW51bWVyYXRvcio+KHZtLmVtcHR5UHJvcGVydHlOYW1lRW51bWVyYXRvci5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVy
dHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDE0NTU1N2E3YzE2MTZhYTU1OWY5Zjc0MDA1YWRjOTlm
Y2NjMjRiY2EuLmQ0MDMyMzg4NjhhMTk4M2UzZjE1NTVhYjAwMDgzODBiZjA2N2ViZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVy
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5oCkBAIC0xMTMsNyArMTEzLDcgQEAgaW5saW5lIEpTUHJvcGVydHlOYW1lRW51
bWVyYXRvciogcHJvcGVydHlOYW1lRW51bWVyYXRvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWMK
IAogICAgIHVpbnQzMl90IG51bWJlclN0cnVjdHVyZVByb3BlcnRpZXMgPSAwOwogCi0gICAgUHJv
cGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZ2bSwgUHJvcGVydHlO
YW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogCiAgICAgaWYg
KHN0cnVjdHVyZS0+Y2FuQWNjZXNzUHJvcGVydGllc1F1aWNrbHlGb3JFbnVtZXJhdGlvbigpICYm
IGluZGV4ZWRMZW5ndGggPT0gYmFzZS0+Z2V0QXJyYXlMZW5ndGgoKSkgewogICAgICAgICBiYXNl
LT5tZXRob2RUYWJsZSh2bSktPmdldFN0cnVjdHVyZVByb3BlcnR5TmFtZXMoYmFzZSwgZXhlYywg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDdiMGQ3MGQ0Mjkw
Y2YyOTBiODg4MDdkZDFjYTE1NjQ4MzQyYWIwYTMuLjRlYzY0ZDNiZTBlMTg5YTM3MjQ2MTFmNDJj
ZGQ4OTk3ZjQyNWJlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxNCw3ICsyMTQsNyBAQCBKU1ZhbHVlIG9iamVj
dENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiBvYgogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRp
ZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnRpZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5k
U3ltYm9scywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgIG9iamVjdC0+bWV0aG9k
VGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydGllcywg
RW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCkBAIC0zMTYsNyArMzE2LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgICAgIEpTT2JqZWN0KiBzb3VyY2UgPSBzb3VyY2VWYWx1ZS50b09iamVj
dChleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAotICAg
ICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3NBbmRTeW1ib2xzKTsKKyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGll
cygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9s
TW9kZTo6RXhjbHVkZSk7CiAgICAgICAgIHNvdXJjZS0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Q
cm9wZXJ0eU5hbWVzKHNvdXJjZSwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2RlKERv
bnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIApAQCAtMzU4LDcgKzM1OCw4IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24oRXhlY1N0YXRlKiBleGVjKQogICAg
ICAgICBpZiAoZm91bmRTeW1ib2wpIHsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7
IGogPCBudW1Qcm9wZXJ0aWVzOyBqKyspIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBw
cm9wZXJ0eU5hbWUgPSBwcm9wZXJ0aWVzW2pdOwotICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0
eU5hbWUuaXNTeW1ib2woKSAmJiAhcHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgeworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpOwogICAgICAgICAg
ICAgICAgICAgICBhc3NpZ24ocHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgICAgICAgICB9CkBAIC0zODIs
NyArMzgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3Rv
clZhbHVlcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNBcnJheSogdmFsdWVzID0gY29uc3RydWN0
RW1wdHlBcnJheShleGVjLCBudWxscHRyKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0
eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2
bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUp
OwogICAgIHRhcmdldC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdl
dCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGllc01v
ZGU6OkluY2x1ZGUpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCkBA
IC01NDMsNyArNTQ0LDcgQEAgc3RhdGljIEpTVmFsdWUgZGVmaW5lUHJvcGVydGllcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIEpTT2JqZWN0KiBwcm8KICAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAot
ICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9k
ZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFt
ZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5bWJv
bE1vZGU6OkV4Y2x1ZGUpOwogICAgIGFzT2JqZWN0KHByb3BlcnRpZXMpLT5tZXRob2RUYWJsZSh2
bSktPmdldE93blByb3BlcnR5TmFtZXMoYXNPYmplY3QocHJvcGVydGllcyksIGV4ZWMsIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRl
KSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBzaXplX3QgbnVt
UHJvcGVydGllcyA9IHByb3BlcnR5TmFtZXMuc2l6ZSgpOwpAQCAtNTY5LDkgKzU3MCw5IEBAIHN0
YXRpYyBKU1ZhbHVlIGRlZmluZVByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
b2JqZWN0LCBKU09iamVjdCogcHJvCiAgICAgICAgIH0KICAgICB9CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOwotICAgICAgICBpZiAocHJvcGVydHlOYW1lLmlz
UHJpdmF0ZU5hbWUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvJiBwcm9w
ZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOworICAgICAgICBBU1NFUlQoIXByb3BlcnR5TmFt
ZS5pc1ByaXZhdGVOYW1lKCkpOworCiAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5k
ZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcnNb
aV0sIHRydWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAg
IH0KQEAgLTYyOSwxNSArNjMwLDE0IEBAIGJvb2wgc2V0SW50ZWdyaXR5TGV2ZWwoRXhlY1N0YXRl
KiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgaWYgKFVOTElLRUxZKCFzdWNj
ZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJv
cGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAg
UHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5t
ZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0
aWVzLCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwog
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKIAogICAgIFByb3BlcnR5TmFt
ZUFycmF5Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBwcm9wZXJ0aWVzLmVuZCgpOwogICAgIGZvciAo
UHJvcGVydHlOYW1lQXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBwcm9wZXJ0aWVzLmJlZ2lu
KCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUgPSAqaXRlcjsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgcHJvcGVydHlOYW1lID0gKml0ZXI7
CisgICAgICAgIEFTU0VSVCghcHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSk7CiAKICAgICAg
ICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2M7CiAgICAgICAgIGlmIChsZXZlbCA9PSBJbnRlZ3Jp
dHlMZXZlbDo6U2VhbGVkKQpAQCAtNjc3LDE2ICs2NzcsMTUgQEAgYm9vbCB0ZXN0SW50ZWdyaXR5
TGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIC8vIDYuIExldCBrZXlzIGJlID8gTy5bW093blByb3BlcnR5
S2V5c11dKCkuCi0gICAgUHJvcGVydHlOYW1lQXJyYXkga2V5cyhleGVjLCBQcm9wZXJ0eU5hbWVN
b2RlOjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkga2V5cygmdm0s
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6
RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFt
ZXMob2JqZWN0LCBleGVjLCBrZXlzLCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVz
TW9kZTo6SW5jbHVkZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAK
ICAgICAvLyA3LiBGb3IgZWFjaCBlbGVtZW50IGsgb2Yga2V5cywgZG8KICAgICBQcm9wZXJ0eU5h
bWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgZW5kID0ga2V5cy5lbmQoKTsKICAgICBmb3IgKFByb3Bl
cnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBpdGVyID0ga2V5cy5iZWdpbigpOyBpdGVyICE9
IGVuZDsgKytpdGVyKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gKml0ZXI7
Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKQotICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIGF1dG8mIHByb3BlcnR5TmFtZSA9ICppdGVyOworICAgICAgICBB
U1NFUlQoIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpOwogCiAgICAgICAgIC8vIGEuIExl
dCBjdXJyZW50RGVzYyBiZSA/IE8uW1tHZXRPd25Qcm9wZXJ0eV1dKGspCiAgICAgICAgIFByb3Bl
cnR5RGVzY3JpcHRvciBkZXNjOwpAQCAtODM2LDcgKzgzNSw3IEBAIEpTQXJyYXkqIG93blByb3Bl
cnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZU1v
ZGUgcHJvCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhl
eGVjLCBwcm9wZXJ0eU5hbWVNb2RlKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVz
KCZ2bSwgcHJvcGVydHlOYW1lTW9kZSwgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAg
IG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhl
YywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2RlKGRvbnRFbnVtUHJvcGVydGllc01vZGUpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKIApAQCAtODU0LDE4ICs4
NTMsMjYgQEAgSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZSBwcm8KIAogICAgIC8vIElmICFtdXN0RmlsdGVy
UHJvcGVydHkgYW5kIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MgbW9kZSwgd2UgZG8gbm90IG5l
ZWQgdG8gZmlsdGVyIG91dCBhbnkgZW50cmllcyBpbiBQcm9wZXJ0eU5hbWVBcnJheS4KICAgICAv
LyBXZSBjYW4gdXNlIGZhc3QgYWxsb2NhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uCi0gICAgaWYg
KCFtdXN0RmlsdGVyUHJvcGVydHkgJiYgcHJvcGVydHlOYW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVN
b2RlOjpTdHJpbmdzICYmIHByb3BlcnRpZXMuc2l6ZSgpIDwgTUlOX1NQQVJTRV9BUlJBWV9JTkRF
WCkgewotICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCk7Ci0gICAgICAgIGlmIChMSUtFTFkoIWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGlt
ZSgpKSkgewotICAgICAgICAgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNp
emUoKTsKLSAgICAgICAgICAgIEpTQXJyYXkqIGtleXMgPSBKU0FycmF5OjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRleGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9u
KEFycmF5V2l0aENvbnRpZ3VvdXMpLCBudW1Qcm9wZXJ0aWVzKTsKLSAgICAgICAgICAgIFdyaXRl
QmFycmllcjxVbmtub3duPiogYnVmZmVyID0ga2V5cy0+YnV0dGVyZmx5KCktPmNvbnRpZ3VvdXMo
KS5kYXRhKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRp
ZXM7IGkrKykgewotICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9w
ZXJ0aWVzW2ldOwotICAgICAgICAgICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1N5bWJvbCgp
KTsKLSAgICAgICAgICAgICAgICBidWZmZXJbaV0uc2V0KHZtLCBrZXlzLCBqc093bmVkU3RyaW5n
KCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOworICAgIGlmIChwcm9wZXJ0eU5hbWVNb2RlICE9
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzKSB7CisgICAgICAgIEFTU0VSVChw
cm9wZXJ0eU5hbWVNb2RlID09IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MgfHwgcHJvcGVydHlO
YW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2RlOjpTeW1ib2xzKTsKKyAgICAgICAgaWYgKCFtdXN0
RmlsdGVyUHJvcGVydHkgJiYgcHJvcGVydGllcy5zaXplKCkgPCBNSU5fU1BBUlNFX0FSUkFZX0lO
REVYKSB7CisgICAgICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoTElLRUxZKCFnbG9iYWxPYmplY3QtPmlzSGF2
aW5nQUJhZFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9
IHByb3BlcnRpZXMuc2l6ZSgpOworICAgICAgICAgICAgICAgIEpTQXJyYXkqIGtleXMgPSBKU0Fy
cmF5OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+b3JpZ2luYWxBcnJheVN0cnVjdHVyZUZvcklu
ZGV4aW5nVHlwZShBcnJheVdpdGhDb250aWd1b3VzKSwgbnVtUHJvcGVydGllcyk7CisgICAgICAg
ICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBidWZmZXIgPSBrZXlzLT5idXR0ZXJmbHko
KS0+Y29udGlndW91cygpLmRhdGEoKTsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBjb25zdCBh
dXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGllc1tpXTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHByb3BlcnR5TmFtZU1vZGUgPT0gUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgQVNTRVJUKCFpZGVudGlmaWVyLmlzU3ltYm9sKCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldLnNldCh2bSwga2V5cywganNPd25lZFN0cmluZygm
dm0sIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzU3ltYm9sKCkpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldLnNldCh2bSwga2V5cywgU3ltYm9sOjpj
cmVhdGUodm0sIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGtleXM7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4ga2V5czsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtODk3LDEzICs5MDQsMTIgQEAgSlNBcnJheSogb3duUHJv
cGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVydHlOYW1l
TW9kZSBwcm8KICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ld
OwogICAgICAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIuaXNTeW1ib2woKSk7Ci0gICAgICAgICAg
ICBpZiAoIWlkZW50aWZpZXIuaXNQcml2YXRlTmFtZSgpKSB7Ci0gICAgICAgICAgICAgICAgYm9v
bCBoYXNQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5SWZOZWVkZWQoaWRlbnRpZmllcik7Ci0gICAg
ICAgICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWhhc1By
b3BlcnR5KTsKLSAgICAgICAgICAgICAgICBpZiAoaGFzUHJvcGVydHkpCi0gICAgICAgICAgICAg
ICAgICAgIHB1c2hEaXJlY3QoZXhlYywga2V5cywgU3ltYm9sOjpjcmVhdGUodm0sIHN0YXRpY19j
YXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7Ci0gICAgICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICBBU1NFUlQoIWlkZW50aWZpZXIuaXNQcml2YXRlTmFtZSgpKTsKKyAgICAgICAgICAg
IGJvb2wgaGFzUHJvcGVydHkgPSBmaWx0ZXJQcm9wZXJ0eUlmTmVlZGVkKGlkZW50aWZpZXIpOwor
ICAgICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWhhc1By
b3BlcnR5KTsKKyAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgICAgICBw
dXNoRGlyZWN0KGV4ZWMsIGtleXMsIFN5bWJvbDo6Y3JlYXRlKHZtLCBzdGF0aWNfY2FzdDxTeW1i
b2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSkpOworICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAg
fQpAQCAtOTEzLDE1ICs5MTksMTcgQEAgSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZSBwcm8KICAgICAgICAg
c2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNpemUoKTsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOwotICAgICAgICAgICAgaWYgKGlkZW50
aWZpZXIuaXNTeW1ib2woKSAmJiAhaWRlbnRpZmllci5pc1ByaXZhdGVOYW1lKCkpCisgICAgICAg
ICAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpKSB7CisgICAgICAgICAgICAgICAgQVNTRVJU
KCFpZGVudGlmaWVyLmlzUHJpdmF0ZU5hbWUoKSk7CiAgICAgICAgICAgICAgICAgcHJvcGVydHlT
eW1ib2xzLmFwcGVuZChpZGVudGlmaWVyKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBmaWx0ZXJQcm9wZXJ0eUlmTmVlZGVkKGlkZW50aWZp
ZXIpOwotICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigp
IHx8ICFoYXNQcm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KQotICAg
ICAgICAgICAgICAgICAgICBwdXNoRGlyZWN0KGV4ZWMsIGtleXMsIGpzT3duZWRTdHJpbmcoZXhl
YywgaWRlbnRpZmllci5zdHJpbmcoKSkpOwotICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gZmlsdGVyUHJvcGVydHlJ
Zk5lZWRlZChpZGVudGlmaWVyKTsKKyAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3Bl
LmV4Y2VwdGlvbigpIHx8ICFoYXNQcm9wZXJ0eSk7CisgICAgICAgICAgICBpZiAoaGFzUHJvcGVy
dHkpCisgICAgICAgICAgICAgICAgcHVzaERpcmVjdChleGVjLCBrZXlzLCBqc093bmVkU3RyaW5n
KGV4ZWMsIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVG8gZW5zdXJl
IHRoZSBvcmRlciBkZWZpbmVkIGluIHRoZSBzcGVjICg5LjEuMTIpLCB3ZSBhcHBlbmQgc3ltYm9s
cyBhdCB0aGUgbGFzdCBlbGVtZW50cyBvZiBrZXlzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKaW5kZXggYTdhZmU3OGY2ZGZjMTY1N2Y0
NzAzYWZlYjRiNzIwNDQxNDI2YjAzYi4uMzgyNTkyMTRhYzM2YmNlNjEyNDVlN2Y3NjUxZGEyOTQx
YzYwNDAwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlOYW1lQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0
eU5hbWVBcnJheS5oCkBAIC00NywxNSArNDcsMTEgQEAgY2xhc3MgUHJvcGVydHlOYW1lQXJyYXlE
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvcGVydHlOYW1lQXJyYXlEYXRhPiB7CiAvLyBGSVhN
RTogUmVuYW1lIHRvIFByb3BlcnR5TmFtZUFycmF5QnVpbGRlci4KIGNsYXNzIFByb3BlcnR5TmFt
ZUFycmF5IHsKIHB1YmxpYzoKLSAgICBQcm9wZXJ0eU5hbWVBcnJheShWTSogdm0sIFByb3BlcnR5
TmFtZU1vZGUgbW9kZSkKKyAgICBQcm9wZXJ0eU5hbWVBcnJheShWTSogdm0sIFByb3BlcnR5TmFt
ZU1vZGUgcHJvcGVydHlOYW1lTW9kZSwgUHJpdmF0ZVN5bWJvbE1vZGUgcHJpdmF0ZVN5bWJvbE1v
ZGUpCiAgICAgICAgIDogbV9kYXRhKFByb3BlcnR5TmFtZUFycmF5RGF0YTo6Y3JlYXRlKCkpCiAg
ICAgICAgICwgbV92bSh2bSkKLSAgICAgICAgLCBtX21vZGUobW9kZSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVNb2Rl
IG1vZGUpCi0gICAgICAgIDogUHJvcGVydHlOYW1lQXJyYXkoJmV4ZWMtPnZtKCksIG1vZGUpCisg
ICAgICAgICwgbV9wcm9wZXJ0eU5hbWVNb2RlKHByb3BlcnR5TmFtZU1vZGUpCisgICAgICAgICwg
bV9wcml2YXRlU3ltYm9sTW9kZShwcml2YXRlU3ltYm9sTW9kZSkKICAgICB7CiAgICAgfQogCkBA
IC04MywxNyArNzksMjEgQEAgY2xhc3MgUHJvcGVydHlOYW1lQXJyYXkgewogICAgIGNvbnN0X2l0
ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3Io
KS5iZWdpbigpOyB9CiAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9k
YXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5lbmQoKTsgfQogCi0gICAgUHJvcGVydHlOYW1lTW9k
ZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9CiAgICAgYm9vbCBpbmNsdWRlU3ltYm9s
UHJvcGVydGllcygpIGNvbnN0OwogICAgIGJvb2wgaW5jbHVkZVN0cmluZ1Byb3BlcnRpZXMoKSBj
b25zdDsKIAorICAgIFByb3BlcnR5TmFtZU1vZGUgcHJvcGVydHlOYW1lTW9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydHlOYW1lTW9kZTsgfQorICAgIFByaXZhdGVTeW1ib2xNb2RlIHByaXZh
dGVTeW1ib2xNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlU3ltYm9sTW9kZTsgfQorCiBw
cml2YXRlOgorICAgIHZvaWQgYWRkVW5jaGVja2VkSW50ZXJuYWwoVW5pcXVlZFN0cmluZ0ltcGwq
KTsKICAgICBib29sIGlzVWlkTWF0Y2hlZFRvVHlwZU1vZGUoVW5pcXVlZFN0cmluZ0ltcGwqIGlk
ZW50aWZpZXIpOwogCiAgICAgUmVmUHRyPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gbV9kYXRhOwog
ICAgIEhhc2hTZXQ8VW5pcXVlZFN0cmluZ0ltcGwqPiBtX3NldDsKICAgICBWTSogbV92bTsKLSAg
ICBQcm9wZXJ0eU5hbWVNb2RlIG1fbW9kZTsKKyAgICBQcm9wZXJ0eU5hbWVNb2RlIG1fcHJvcGVy
dHlOYW1lTW9kZTsKKyAgICBQcml2YXRlU3ltYm9sTW9kZSBtX3ByaXZhdGVTeW1ib2xNb2RlOwog
fTsKIAogQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllcikKQEAgLTEwMSwxMSArMTAxLDE2IEBAIEFMV0FZU19JTkxJTkUg
dm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIp
CiAgICAgYWRkKGlkZW50aWZpZXIuaW1wbCgpKTsKIH0KIAorQUxXQVlTX0lOTElORSB2b2lkIFBy
b3BlcnR5TmFtZUFycmF5OjphZGRVbmNoZWNrZWRJbnRlcm5hbChVbmlxdWVkU3RyaW5nSW1wbCog
aWRlbnRpZmllcikKK3sKKyAgICBtX2RhdGEtPnByb3BlcnR5TmFtZVZlY3RvcigpLmFwcGVuZChJ
ZGVudGlmaWVyOjpmcm9tVWlkKG1fdm0sIGlkZW50aWZpZXIpKTsKK30KKwogQUxXQVlTX0lOTElO
RSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGRVbmNoZWNrZWQoVW5pcXVlZFN0cmluZ0ltcGwq
IGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFpc1VpZE1hdGNoZWRUb1R5cGVNb2RlKGlkZW50aWZp
ZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5h
cHBlbmQoSWRlbnRpZmllcjo6ZnJvbVVpZChtX3ZtLCBpZGVudGlmaWVyKSk7CisgICAgYWRkVW5j
aGVja2VkSW50ZXJuYWwoaWRlbnRpZmllcik7CiB9CiAKIEFMV0FZU19JTkxJTkUgdm9pZCBQcm9w
ZXJ0eU5hbWVBcnJheTo6YWRkKFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudGlmaWVyKQpAQCAtMTI5
LDI0ICsxMzQsMjkgQEAgQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQo
VW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgYWRkVW5jaGVja2VkKGlkZW50aWZpZXIpOworICAgIGFkZFVuY2hlY2tlZEludGVy
bmFsKGlkZW50aWZpZXIpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlOYW1lQXJy
YXk6OmlzVWlkTWF0Y2hlZFRvVHlwZU1vZGUoVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIp
CiB7Ci0gICAgaWYgKGlkZW50aWZpZXItPmlzU3ltYm9sKCkpCi0gICAgICAgIHJldHVybiBpbmNs
dWRlU3ltYm9sUHJvcGVydGllcygpOworICAgIGlmIChpZGVudGlmaWVyLT5pc1N5bWJvbCgpKSB7
CisgICAgICAgIGlmICghaW5jbHVkZVN5bWJvbFByb3BlcnRpZXMoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgaWYgKExJS0VMWShtX3ByaXZhdGVTeW1ib2xNb2RlID09IFBy
aXZhdGVTeW1ib2xNb2RlOjpJbmNsdWRlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICByZXR1cm4gIXN0YXRpY19jYXN0PFN5bWJvbEltcGwqPihpZGVudGlmaWVyKS0+aXNQcml2
YXRlKCk7CisgICAgfQogICAgIHJldHVybiBpbmNsdWRlU3RyaW5nUHJvcGVydGllcygpOwogfQog
CiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlOYW1lQXJyYXk6OmluY2x1ZGVTeW1ib2xQcm9w
ZXJ0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5n
X3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KG1fbW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6
OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2RlPjo6dHlwZT4oUHJvcGVydHlOYW1lTW9k
ZTo6U3ltYm9scyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBl
PFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihtX3Byb3BlcnR5TmFtZU1vZGUpICYgc3RhdGljX2Nh
c3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KFByb3BlcnR5
TmFtZU1vZGU6OlN5bWJvbHMpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlOYW1l
QXJyYXk6OmluY2x1ZGVTdHJpbmdQcm9wZXJ0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KG1f
bW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2Rl
Pjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihtX3Byb3Bl
cnR5TmFtZU1vZGUpICYgc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlO
YW1lTW9kZT46OnR5cGU+KFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1By
b3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0
LmNwcAppbmRleCA5MjMxYjBlMTA0YjE3MWI4NGY2YjY0N2RkNzAzZDY4YjliZjNjYjAyLi4wN2Jl
YzA5YjFhYTA0YTgzMGQ3Y2FhODRjNDZiNmVkZGFiNjc2YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05MTEsNyArOTExLDcgQEAgdm9p
ZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWVBcnJheSYKICAgICBKU1ZhbHVlIGFycmF5TGlrZU9iamVjdCA9IGNhbGwo
ZXhlYywgb3duS2V5c01ldGhvZCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVu
dHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICBQcm9w
ZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUgPSB0cmFwUmVzdWx0Lm1vZGUoKTsKKyAgICBQ
cm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUgPSB0cmFwUmVzdWx0LnByb3BlcnR5TmFt
ZU1vZGUoKTsKICAgICBSdW50aW1lVHlwZU1hc2sgcmVzdWx0RmlsdGVyID0gMDsKICAgICBzd2l0
Y2ggKHByb3BlcnR5TmFtZU1vZGUpIHsKICAgICBjYXNlIFByb3BlcnR5TmFtZU1vZGU6OlN5bWJv
bHM6CkBAIC05NDksNyArOTQ5LDcgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blBy
b3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYKICAgICBib29s
IHRhcmdldElzRXhlbnNpYmxlID0gdGFyZ2V0LT5pc0V4dGVuc2libGUoZXhlYyk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5
IHRhcmdldEtleXMoJnZtLCBwcm9wZXJ0eU5hbWVNb2RlKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJh
eSB0YXJnZXRLZXlzKCZ2bSwgcHJvcGVydHlOYW1lTW9kZSwgdHJhcFJlc3VsdC5wcml2YXRlU3lt
Ym9sTW9kZSgpKTsKICAgICB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlO
YW1lcyh0YXJnZXQsIGV4ZWMsIHRhcmdldEtleXMsIGVudW1lcmF0aW9uTW9kZSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBWZWN0b3I8VW5pcXVlZFN0cmlu
Z0ltcGwqPiB0YXJnZXRDb25maWd1cmFibGVLZXlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAppbmRleCBlMWIwNjhhNDNhZjY2MDU0Yjk3YWM5
ZDg2ZDE0NGY4NmEwYjExNzRmLi5lYmE5ODc2MGYxNTQ3MGRiYTY1ZjI4OGVhZTRmYjA4ZjFiZjVk
ODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRS
ZWNvcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNv
cmQuaApAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBWPiBz
dHJ1Y3QgQ29udmVydGVyPElETFJlY29yZDxLLCBWPj4gOiBEZWZhdWx0Q29udgogICAgICAgICBS
ZXR1cm5UeXBlIHJlc3VsdDsKICAgICAKICAgICAgICAgLy8gNC4gTGV0IGtleXMgYmUgPyBPLltb
T3duUHJvcGVydHlLZXlzXV0oKS4KLSAgICAgICAgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSBrZXlz
KCZ2bSwgSlNDOjpQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgSlNDOjpQcm9w
ZXJ0eU5hbWVBcnJheSBrZXlzKCZ2bSwgSlNDOjpQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBK
U0M6OlByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgb2JqZWN0LT5tZXRob2RU
YWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCAmc3RhdGUsIGtleXMsIEpTQzo6
RW51bWVyYXRpb25Nb2RlKCkpOwogCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAppbmRleCBjM2UwNjMxNThlZmU3ZmU2ZjM3YWYyODYxMjA5ZGY1NGQyMWUy
NGMxLi4zYzE4YTUxNTYxODRlNDk3YWViYmUwMjgzYjFiNzYwYjNiNTc1YzQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
QEAgLTE0OTAsNyArMTQ5MCw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFs
aXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIGluZGV4U3Rh
Y2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBsZW5ndGhTdGFjay5yZW1vdmVM
YXN0KCk7CiAKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVy
dHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwg
UHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsK
ICAgICAgICAgICAgICAgICAgICAgYXJyYXktPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duTm9uSW5k
ZXhQcm9wZXJ0eU5hbWVzKGFycmF5LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVt
ZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVN0YWNrLmxh
c3QoKS5zaXplKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbkluZGV4UHJv
cGVydGllc1RhZyk7CkBAIC0xNTQwLDcgKzE1NDAsNyBAQCBTZXJpYWxpemF0aW9uUmV0dXJuQ29k
ZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIGluKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gU2VyaWFsaXphdGlvblJldHVybkNvZGU6OkRhdGFDbG9uZUVycm9yOwogICAg
ICAgICAgICAgICAgIGlucHV0T2JqZWN0U3RhY2suYXBwZW5kKGluT2JqZWN0KTsKICAgICAgICAg
ICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eVN0
YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MpKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5h
bWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2Rl
OjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAgICAgaW5PYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+
Z2V0T3duUHJvcGVydHlOYW1lcyhpbk9iamVjdCwgbV9leGVjLCBwcm9wZXJ0eVN0YWNrLmxhc3Qo
KSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgb2JqZWN0
U3RhcnRWaXNpdE1lbWJlcjoKQEAgLTE2MDgsNyArMTYwOCw3IEBAIFNlcmlhbGl6YXRpb25SZXR1
cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAgICAg
ICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgICAg
ICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRPYmplY3RTdGFjay5sYXN0KCk7CiAgICAgICAg
ICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNEb3duY2FzdDxKU01hcCo+KHZtLCBvYmplY3Qp
KTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlOYW1l
QXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVy
dHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAg
ICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFt
ZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUo
KSk7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbk1hcFByb3BlcnRpZXNUYWcpOwogICAg
ICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKQEAgLTE2NTIsNyArMTY1Miw3
IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpT
VmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yU3RhY2sucmVtb3ZlTGFz
dCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRPYmplY3RT
dGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNEb3duY2Fz
dDxKU1NldCo+KHZtLCBvYmplY3QpKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFj
ay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzKSk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5
TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1v
ZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2
bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFz
dCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vblNl
dFByb3BlcnRpZXNUYWcpOwogICAgICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IGVmOGE0MmM2MjcwNzg0
NDU5YjQ0ZDM0NDRkMGMzNDA4MjM1ODE3ZjQuLjEyYmI5ZTU0ODAzZmNlZTgyNWNkNGUyZWY3YTc5
NmM1M2U1MTA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAtNDg0
LDcgKzQ4NCw3IEBAIGJvb2wgX05QTl9FbnVtZXJhdGUoTlBQLCBOUE9iamVjdCogbywgTlBJZGVu
dGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIGNvdW50CiAgICAgICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBn
bG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJv
cGVydHlOYW1lcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgUHJv
cGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKIAogICAgICAgICBvYmotPmltcC0+bWV0
aG9kVGFibGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG9iai0+aW1wLCBleGVjLCBwcm9wZXJ0eU5h
bWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4ocHJvcGVydHlOYW1lcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAppbmRl
eCBmM2Y3OWY0Y2ZhMzdmMjRkMDM0MWU5YmZhY2FkY2Q4NjZjNzYyNDdhLi44ZDBhMTQ1YThiNTA4
NWZjN2U2NTkwYmY5NzQwYmY2MTVjZTQzMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAtMjUzLDcg
KzI1Myw3IEBAIGJvb2wgTlBKU09iamVjdDo6ZW51bWVyYXRlKE5QSWRlbnRpZmllcioqIGlkZW50
aWZpZXJzLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBw
cm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdz
LCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgbV9qc09iamVjdC0+bWV0aG9kVGFi
bGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIHByb3BlcnR5
TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKIAogICAgIE5QSWRlbnRpZmllciogbmFtZUlkZW50
aWZpZXJzID0gbnBuTWVtTmV3QXJyYXk8TlBJZGVudGlmaWVyPihwcm9wZXJ0eU5hbWVzLnNpemUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9O
ZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMmY2MGYz
ODk0MWE1MGVkOTdiNjFjZDBiYWM1YzkxMjdhNWZmMDdlZS4uOTk4NDE1MWZjY2Q5OGEzNzQyZWY4
ZTgyYTY1Zjk3OGY3ZjIxZTNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQpAQCAtMTI3Niw3ICsxMjc2LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHk6OmVudW1lcmF0ZSh1aW50MzJfdCBvYmplY3RJRCwgZGF0YV90JiByZXN1bHREYXQKIAog
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3QocGx1Z2lu
V29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0
eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFt
ZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2
YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdl
dFByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1v
ZGUoKSk7CiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXkqPiBhcnJheSA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320664</attachid>
            <date>2017-09-13 11:34:13 -0700</date>
            <delta_ts>2017-09-13 11:38:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176867-20170914033412.patch</filename>
            <type>text/plain</type>
            <size>35681</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDdiM2U3MTM0NzRmNjQzODQ3NDY1YjdjNWMwMGU4MzczMmU2NDYyLi4yODc5MzdiYmQ1ODM2NDYz
YzdkYzlmNDBjM2U3NmM1NTgzMDVhOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1NiBAQAogMjAxNy0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXSBBZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4
Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2UgcmFyZWx5IHJlcXVpcmUgcHJpdmF0ZSBzeW1ib2xzIHdo
ZW4gZW51bWVyYXRpbmcgcHJvcGVydHkgbmFtZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBQ
cml2YXRlU3ltYm9sTW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0uIElmIFByaXZhdGVTeW1ib2xNb2Rl
OjpFeGNsdWRlCisgICAgICAgIGlzIHNwZWNpZmllZCwgUHJvcGVydHlOYW1lQXJyYXkgZG9lcyBu
b3QgaW5jbHVkZSBwcml2YXRlIHN5bWJvbHMuCisgICAgICAgIFRoaXMgcmVtb3ZlcyBtYW55IGFk
LWhvYyBgSWRlbnRpZmllcjo6aXNQcml2YXRlTmFtZSgpYCBpbiBlbnVtZXJhdGlvbiBvcGVyYXRp
b25zLgorCisgICAgICAgICogQVBJL0pTT2JqZWN0UmVmLmNwcDoKKyAgICAgICAgKEpTT2JqZWN0
Q29weVByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6anNUb0luc3BlY3RvclZhbHVlKToKKyAgICAgICAgKiBieXRl
Y29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5oOgorICAgICAgICAoSlNDOjpPYmplY3RBbGxv
Y2F0aW9uUHJvZmlsZTo6cG9zc2libGVEZWZhdWx0UHJvcGVydHlDb3VudCk6CisgICAgICAgICog
cnVudGltZS9FbnVtZXJhdGlvbk1vZGUuaDoKKyAgICAgICAgKiBydW50aW1lL0ludGxPYmplY3Qu
Y3BwOgorICAgICAgICAoSlNDOjpzdXBwb3J0ZWRMb2NhbGVzKToKKyAgICAgICAgKiBydW50aW1l
L0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIp
OgorICAgICAgICAoSlNDOjpTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkp
OgorICAgICAgICAoSlNDOjpXYWxrZXI6OndhbGspOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmg6CisgICAgICAgIChKU0M6OnByb3BlcnR5TmFtZUVudW1lcmF0b3IpOgorICAgICAgICAq
IHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RDb25z
dHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMpOgorICAgICAgICAoSlNDOjpvYmplY3RD
b25zdHJ1Y3RvckFzc2lnbik6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVjdG9yVmFsdWVz
KToKKyAgICAgICAgKEpTQzo6ZGVmaW5lUHJvcGVydGllcyk6CisgICAgICAgIChKU0M6OnNldElu
dGVncml0eUxldmVsKToKKyAgICAgICAgKEpTQzo6dGVzdEludGVncml0eUxldmVsKToKKyAgICAg
ICAgKEpTQzo6b3duUHJvcGVydHlLZXlzKToKKyAgICAgICAgKiBydW50aW1lL1Byb3BlcnR5TmFt
ZUFycmF5Lmg6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjpQcm9wZXJ0eU5hbWVB
cnJheSk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5Ojpwcm9wZXJ0eU5hbWVNb2Rl
IGNvbnN0KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OnByaXZhdGVTeW1ib2xN
b2RlIGNvbnN0KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tl
ZEludGVybmFsKToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tl
ZCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjphZGQpOgorICAgICAgICAoSlND
OjpQcm9wZXJ0eU5hbWVBcnJheTo6aXNVaWRNYXRjaGVkVG9UeXBlTW9kZSk6CisgICAgICAgIChK
U0M6OlByb3BlcnR5TmFtZUFycmF5OjppbmNsdWRlU3ltYm9sUHJvcGVydGllcyBjb25zdCk6Cisg
ICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjppbmNsdWRlU3RyaW5nUHJvcGVydGllcyBj
b25zdCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5Ojptb2RlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBydW50aW1lL1Byb3h5T2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
UHJveHlPYmplY3Q6OnBlcmZvcm1HZXRPd25Qcm9wZXJ0eU5hbWVzKToKKworMjAxNy0wOS0xMyAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBbSlNDXSBG
aXggQXJyYXkgYWxsb2NhdGlvbiBpbiBPYmplY3Qua2V5cwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODI2CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMDFhZTNl
ZTY4MmUxODQ4MjI5MWZhZjdjNThkOGIyOWU0ODM3MTlmLi5hZDViNWM3NmEzMGQxNDJkN2MwNTU1
YTBkYTRhOTg2ODQ0OTYzMjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMDkt
MTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pT
Q10gQWRkIFByaXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlO
YW1lQXJyYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Njg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lU2Vy
aWFsaXplcjo6c2VyaWFsaXplKToKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgor
ICAgICAgICAoX05QTl9FbnVtZXJhdGUpOgorCiAyMDE3LTA5LTEzICBNczJnZXIgIDxNczJnZXJA
aWdhbGlhLmNvbT4KIAogICAgICAgICBNYWtlIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OlR5
cGVkTGlzdDo6ZGF0YSgpIGNvbnN0LWNvcnJlY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUyM2Q1NjQ3OTBhYTZl
MjQ3M2U0ZWUyOGExNTMzZGNlM2QzNWFmZWIuLjY4OTI4Mzk1NWY1NTMyNTY5OTgxNWMxZmMwYTBm
ZjlhNDdjZTZlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDktMTMgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pTQ10gQWRkIFBy
aXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlOYW1lQXJyYXkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njg2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
UEpTT2JqZWN0OjplbnVtZXJhdGUpOgorCiAyMDE3LTA5LTEzICBTZXJnaW8gVmlsbGFyIFNlbmlu
ICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXZWJWUl0gQWRkIElETHMgYW5kIHN0
dWJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMGFiYWQ5YmNmNzk4YWQ1OThhZTBj
MzFkNjFiZjVjZmIzNjVmNGE5MC4uMzQ0MzgzOTQyMWY0OWFlMjFiYTg5NDRlNmJiMTgwOWQxNzgw
ZGMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3
LTA5LTEzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAg
IFtKU0NdIEFkZCBQcml2YXRlU3ltYm9sTW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0gZm9yIFByb3Bl
cnR5TmFtZUFycmF5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzY4NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5OjplbnVtZXJhdGUpOgor
CiAyMDE3LTA5LTEzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJlZmFjdG9yIFdlYkNvbnRlbnRSZWFkZXIgb3V0IG9mIEVkaXRvck1hYyBhbmQgRWRpdG9ySU9T
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwCmluZGV4IDcwMmM4MjM1
ODYzZmJlNWMzZjcyNDRmZTY3MTJiYjc0ZjY3YWNlM2UuLjI0OWI1NTRkM2IwYmY0OWZkMWNiMzlj
MjlmZGQ1MTIyNzljZmFmYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNPYmplY3RSZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RS
ZWYuY3BwCkBAIC02NDcsNyArNjQ3LDcgQEAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBKU09iamVj
dENvcHlQcm9wZXJ0eU5hbWVzKEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIG8KIAogICAg
IEpTT2JqZWN0KiBqc09iamVjdCA9IHRvSlMob2JqZWN0KTsKICAgICBKU1Byb3BlcnR5TmFtZUFy
cmF5UmVmIHByb3BlcnR5TmFtZXMgPSBuZXcgT3BhcXVlSlNQcm9wZXJ0eU5hbWVBcnJheSh2bSk7
Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkgYXJyYXkodm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MpOworICAgIFByb3BlcnR5TmFtZUFycmF5IGFycmF5KHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpT
dHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAganNPYmplY3QtPm1ldGhv
ZFRhYmxlKCp2bSktPmdldFByb3BlcnR5TmFtZXMoanNPYmplY3QsIGV4ZWMsIGFycmF5LCBFbnVt
ZXJhdGlvbk1vZGUoKSk7CiAKICAgICBzaXplX3Qgc2l6ZSA9IGFycmF5LnNpemUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3BwCmluZGV4IDBmMTVh
ZTdkNjI5ZGIwNjE5MzdkMWI4YWUyOTg0NzQzZTI1MDU2NGYuLmQwMDcwZWM2ZjliYjQyYjA3YWVl
ZjgzMDk3MjQ3MTkyZDUwZDA2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL1NjcmlwdFZhbHVlLmNwcApAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiBqc1RvSW5zcGVjdG9yVmFsdWUoRXhlY1N0YXRlJiBzY3JpcHRTdGF0ZSwgSlNW
YWx1ZQogICAgICAgICB9CiAgICAgICAgIGF1dG8gaW5zcGVjdG9yT2JqZWN0ID0gSW5zcGVjdG9y
T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgYXV0byYgb2JqZWN0ID0gKnZhbHVlLmdldE9iamVj
dCgpOwotICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZzY3JpcHRTdGF0
ZSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgICAgIFByb3BlcnR5TmFtZUFycmF5
IHByb3BlcnR5TmFtZXMoJnNjcmlwdFN0YXRlLnZtKCksIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgb2JqZWN0Lm1ldGhvZFRh
YmxlKCktPmdldE93blByb3BlcnR5TmFtZXMoJm9iamVjdCwgJnNjcmlwdFN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgIGZvciAoYXV0byYgbmFtZSA6IHBy
b3BlcnR5TmFtZXMpIHsKICAgICAgICAgICAgIGF1dG8gaW5zcGVjdG9yVmFsdWUgPSBqc1RvSW5z
cGVjdG9yVmFsdWUoc2NyaXB0U3RhdGUsIG9iamVjdC5nZXQoJnNjcmlwdFN0YXRlLCBuYW1lKSwg
bWF4RGVwdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09i
amVjdEFsbG9jYXRpb25Qcm9maWxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
T2JqZWN0QWxsb2NhdGlvblByb2ZpbGUuaAppbmRleCAzMDFhMzU4MGM1MTk1ZmVlZWE1MWRmMDQ3
MjU2MTFhNTFiYzhkOWU4Li5kOTg2NWY1MWUyNGNlMDkxMThmNTQwOTJiMDkxYTFiM2FiOGFjNTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0QWxsb2Nh
dGlvblByb2ZpbGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0
QWxsb2NhdGlvblByb2ZpbGUuaApAQCAtMTMyLDcgKzEzMiw3IEBAIGNsYXNzIE9iamVjdEFsbG9j
YXRpb25Qcm9maWxlIHsKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIHNpemVfdCBj
b3VudCA9IDA7Ci0gICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZUFycmF5KCZ2
bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgICAgICBQcm9wZXJ0
eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6SW5jbHVkZSk7CiAgICAgICAgIHByb3Rv
dHlwZS0+c3RydWN0dXJlKCktPmdldFByb3BlcnR5TmFtZXNGcm9tU3RydWN0dXJlKHZtLCBwcm9w
ZXJ0eU5hbWVBcnJheSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICBQcm9wZXJ0eU5hbWVB
cnJheURhdGE6OlByb3BlcnR5TmFtZVZlY3RvciYgcHJvcGVydHlOYW1lVmVjdG9yID0gcHJvcGVy
dHlOYW1lQXJyYXkuZGF0YSgpLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKTsKICAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0eU5hbWVWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9kZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRW51bWVyYXRpb25Nb2RlLmgKaW5kZXggN2Fi
YmVkMmVkOTAwMDhhOTNkMTU3YjMyNmU2NzMwZmRiZjZlM2ZkNi4uMzE3OThmOTQ2ZmIzNDJjOWY0
NjBmYjg0NWZiYjM5ZjNlYjNiYTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRW51bWVyYXRpb25Nb2RlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvRW51bWVyYXRpb25Nb2RlLmgKQEAgLTMzLDYgKzMzLDExIEBAIGVudW0gY2xhc3MgUHJv
cGVydHlOYW1lTW9kZSB7CiAgICAgU3RyaW5nc0FuZFN5bWJvbHMgPSBTeW1ib2xzIHwgU3RyaW5n
cywKIH07CiAKK2VudW0gY2xhc3MgUHJpdmF0ZVN5bWJvbE1vZGUgeworICAgIEluY2x1ZGUsCisg
ICAgRXhjbHVkZQorfTsKKwogZW51bSBjbGFzcyBEb250RW51bVByb3BlcnRpZXNNb2RlIHsKICAg
ICBJbmNsdWRlLAogICAgIEV4Y2x1ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bE9iamVjdC5jcHAKaW5kZXggMjVkMjFmMmVlNWNlM2M3NjcyMzE2YWFmNmY3YTAzNWQ2YTIx
Zjk4MS4uNzMwZWU4ODBiMTFlZGI2YmU1NzA4MWUxNzMwYTA3YWY4MGZiYzRmMSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTgzMCw3ICs4MzAs
NyBAQCBKU1ZhbHVlIHN1cHBvcnRlZExvY2FsZXMoRXhlY1N0YXRlJiBzdGF0ZSwgY29uc3QgSGFz
aFNldDxTdHJpbmc+JiBhdmFpbGFibGVMb2NhbAogICAgICAgICA6IGxvb2t1cFN1cHBvcnRlZExv
Y2FsZXMoc3RhdGUsIGF2YWlsYWJsZUxvY2FsZXMsIHJlcXVlc3RlZExvY2FsZXMpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVB
cnJheSBrZXlzKCZzdGF0ZSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgUHJvcGVy
dHlOYW1lQXJyYXkga2V5cygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVT
eW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBzdXBwb3J0ZWRMb2NhbGVzLT5nZXRPd25Qcm9wZXJ0
eU5hbWVzKHN1cHBvcnRlZExvY2FsZXMsICZzdGF0ZSwga2V5cywgRW51bWVyYXRpb25Nb2RlKCkp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKaW5kZXggMGM3ZjNkMTkzYjc2
ZTE5NWJlMDYwOTQwYTllZmFlNzIwMjMxMGZlNC4uZWE2ODUwNzIwNmJkZjEwNjkxMzk5MzAwOTYy
NGMyNzNmNDVlOWRkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPTk9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9i
amVjdC5jcHAKQEAgLTIyNCw3ICsyMjQsNyBAQCBTdHJpbmdpZmllcjo6U3RyaW5naWZpZXIoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBMb2NhbDxVbmtub3duPiYgcmVwbGFjZXIsIGNvbnN0CiAgICAg
OiBtX2V4ZWMoZXhlYykKICAgICAsIG1fcmVwbGFjZXIocmVwbGFjZXIpCiAgICAgLCBtX3VzaW5n
QXJyYXlSZXBsYWNlcihmYWxzZSkKLSAgICAsIG1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMo
ZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncykKKyAgICAsIG1fYXJyYXlSZXBsYWNlclBy
b3BlcnR5TmFtZXMoJmV4ZWMtPnZtKCksIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZh
dGVTeW1ib2xNb2RlOjpFeGNsdWRlKQogICAgICwgbV9yZXBsYWNlckNhbGxUeXBlKENhbGxUeXBl
OjpOb25lKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC00ODQsNyArNDg0LDcgQEAg
Ym9vbCBTdHJpbmdpZmllcjo6SG9sZGVyOjphcHBlbmROZXh0UHJvcGVydHkoU3RyaW5naWZpZXIm
IHN0cmluZ2lmaWVyLCBTdHJpbmdCdWkKICAgICAgICAgICAgIGlmIChzdHJpbmdpZmllci5tX3Vz
aW5nQXJyYXlSZXBsYWNlcikKICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5TmFtZXMgPSBzdHJp
bmdpZmllci5tX2FycmF5UmVwbGFjZXJQcm9wZXJ0eU5hbWVzLmRhdGEoKTsKICAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgIFByb3BlcnR5TmFtZUFycmF5IG9iamVjdFByb3BlcnR5
TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgICAgICAgICAgICAg
UHJvcGVydHlOYW1lQXJyYXkgb2JqZWN0UHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgICAgICAg
ICBtX29iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1fb2JqZWN0
LmdldCgpLCBleGVjLCBvYmplY3RQcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAg
ICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAg
ICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IG9iamVjdFByb3BlcnR5TmFtZXMucmVsZWFzZURh
dGEoKTsKQEAgLTcwNSw3ICs3MDUsNyBAQCBORVZFUl9JTkxJTkUgSlNWYWx1ZSBXYWxrZXI6Ondh
bGsoSlNWYWx1ZSB1bmZpbHRlcmVkKQogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdChpblZhbHVlKTsKICAgICAgICAgICAgICAgICBvYmplY3RTdGFjay5wdXNoKG9i
amVjdCk7CiAgICAgICAgICAgICAgICAgaW5kZXhTdGFjay5hcHBlbmQoMCk7Ci0gICAgICAgICAg
ICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5h
cHBlbmQoUHJvcGVydHlOYW1lQXJyYXkoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQ
cml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSkpOwogICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0
aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgbV9leGVjLCBwcm9wZXJ0
eVN0YWNrLmxhc3QoKSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
LmNwcAppbmRleCA1ZjhiMGIzZjcxZTJiM2YxMjAwZTA0NGNjMzI4N2Y0NGI1YjM4Y2M1Li44MmJi
MGRjMzNkOGE3NTEwMjYzNjQyMGJjYzkxMjQwNWYzYTFiMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5j
cHAKQEAgLTM3LDcgKzM3LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEpTUHJvcGVydHlOYW1lRW51bWVy
YXRvcjo6c19pbmZvID0geyAiSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yIiwKIEpTUHJvcGVydHlO
YW1lRW51bWVyYXRvciogSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOjpjcmVhdGUoVk0mIHZtKQog
ewogICAgIGlmICghdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpKSB7Ci0gICAg
ICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2Rl
OjpTdHJpbmdzKTsKKyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0s
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsK
ICAgICAgICAgdm0uZW1wdHlQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yID0gU3Ryb25nPEpTQ2VsbD4o
dm0sIGNyZWF0ZSh2bSwgMCwgMCwgMCwgV1RGTW92ZShwcm9wZXJ0eU5hbWVzKSkpOwogICAgIH0K
ICAgICByZXR1cm4ganNDYXN0PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcio+KHZtLmVtcHR5UHJv
cGVydHlOYW1lRW51bWVyYXRvci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCmluZGV4IDE0NTU1N2E3
YzE2MTZhYTU1OWY5Zjc0MDA1YWRjOTlmY2NjMjRiY2EuLmQ0MDMyMzg4NjhhMTk4M2UzZjE1NTVh
YjAwMDgzODBiZjA2N2ViZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oCkBAIC0xMTMsNyArMTEzLDcgQEAg
aW5saW5lIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvciogcHJvcGVydHlOYW1lRW51bWVyYXRvcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWMKIAogICAgIHVpbnQzMl90IG51bWJlclN0cnVjdHVyZVBy
b3BlcnRpZXMgPSAwOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVj
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9w
ZXJ0eU5hbWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1v
ZGU6OkV4Y2x1ZGUpOwogCiAgICAgaWYgKHN0cnVjdHVyZS0+Y2FuQWNjZXNzUHJvcGVydGllc1F1
aWNrbHlGb3JFbnVtZXJhdGlvbigpICYmIGluZGV4ZWRMZW5ndGggPT0gYmFzZS0+Z2V0QXJyYXlM
ZW5ndGgoKSkgewogICAgICAgICBiYXNlLT5tZXRob2RUYWJsZSh2bSktPmdldFN0cnVjdHVyZVBy
b3BlcnR5TmFtZXMoYmFzZSwgZXhlYywgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0
b3IuY3BwCmluZGV4IDdiMGQ3MGQ0MjkwY2YyOTBiODg4MDdkZDFjYTE1NjQ4MzQyYWIwYTMuLjRl
YzY0ZDNiZTBlMTg5YTM3MjQ2MTFmNDJjZGQ4OTk3ZjQyNWJlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTIxNCw3
ICsyMTQsNyBAQCBKU1ZhbHVlIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlw
dG9ycyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYgogewogICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFBy
b3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
c0FuZFN5bWJvbHMpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoJnZtLCBQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1
ZGUpOwogICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9i
amVjdCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGll
c01vZGU6OkluY2x1ZGUpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
CkBAIC0zMTYsNyArMzE2LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RD
b25zdHJ1Y3RvckFzc2lnbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIEpTT2JqZWN0KiBzb3Vy
Y2UgPSBzb3VyY2VWYWx1ZS50b09iamVjdChleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAotICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVz
KGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzKTsKKyAgICAgICAgUHJv
cGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NB
bmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgICAgIHNvdXJjZS0+
bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNvdXJjZSwgZXhlYywgcHJvcGVy
dGllcywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIApAQCAtMzU4LDcgKzM1
OCw4IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3Np
Z24oRXhlY1N0YXRlKiBleGVjKQogICAgICAgICBpZiAoZm91bmRTeW1ib2wpIHsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1Qcm9wZXJ0aWVzOyBqKyspIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBhdXRvJiBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0aWVzW2pdOwotICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSAmJiAhcHJvcGVydHlOYW1l
LmlzUHJpdmF0ZU5hbWUoKSkgeworICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNT
eW1ib2woKSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5pc1By
aXZhdGVOYW1lKCkpOwogICAgICAgICAgICAgICAgICAgICBhc3NpZ24ocHJvcGVydHlOYW1lKTsK
ICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICAgICAgICAgICAgICB9CkBAIC0zODIsNyArMzgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNB
cnJheSogdmFsdWVzID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCBudWxscHRyKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkg
cHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICBQcm9wZXJ0
eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJp
dmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgIHRhcmdldC0+bWV0aG9kVGFibGUodm0pLT5n
ZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25N
b2RlKERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogCkBAIC01NDMsNyArNTQ0LDcgQEAgc3RhdGljIEpTVmFsdWUg
ZGVmaW5lUHJvcGVydGllcyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIEpTT2Jq
ZWN0KiBwcm8KICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFt
ZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdz
QW5kU3ltYm9scywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgIGFzT2JqZWN0KHBy
b3BlcnRpZXMpLT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMoYXNPYmplY3Qo
cHJvcGVydGllcyksIGV4ZWMsIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZShEb250RW51
bVByb3BlcnRpZXNNb2RlOjpFeGNsdWRlKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnR5TmFtZXMuc2l6ZSgp
OwpAQCAtNTY5LDkgKzU3MCw5IEBAIHN0YXRpYyBKU1ZhbHVlIGRlZmluZVByb3BlcnRpZXMoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBKU09iamVjdCogcHJvCiAgICAgICAgIH0K
ICAgICB9CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsK
LSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOwotICAg
ICAgICBpZiAocHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBhdXRvJiBwcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWVzW2ldOworICAg
ICAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpOworCiAgICAgICAgIG9i
amVjdC0+bWV0aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvcnNbaV0sIHRydWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIH0KQEAgLTYyOSwxNSArNjMwLDE0IEBAIGJvb2wgc2V0
SW50ZWdyaXR5TGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpTT2JqZWN0KiBvYmplY3Qp
CiAgICAgaWYgKFVOTElLRUxZKCFzdWNjZXNzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpT
dHJpbmdzQW5kU3ltYm9scyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygmdm0s
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6
RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFt
ZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9w
ZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZh
bHNlKTsKIAogICAgIFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBwcm9w
ZXJ0aWVzLmVuZCgpOwogICAgIGZvciAoUHJvcGVydHlOYW1lQXJyYXk6OmNvbnN0X2l0ZXJhdG9y
IGl0ZXIgPSBwcm9wZXJ0aWVzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAg
ICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSAqaXRlcjsKLSAgICAgICAgaWYgKHByb3BlcnR5
TmFtZS5pc1ByaXZhdGVOYW1lKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0
byYgcHJvcGVydHlOYW1lID0gKml0ZXI7CisgICAgICAgIEFTU0VSVCghcHJvcGVydHlOYW1lLmlz
UHJpdmF0ZU5hbWUoKSk7CiAKICAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2M7CiAgICAg
ICAgIGlmIChsZXZlbCA9PSBJbnRlZ3JpdHlMZXZlbDo6U2VhbGVkKQpAQCAtNjc3LDE2ICs2Nzcs
MTUgQEAgYm9vbCB0ZXN0SW50ZWdyaXR5TGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIEpT
T2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIDYuIExldCBr
ZXlzIGJlID8gTy5bW093blByb3BlcnR5S2V5c11dKCkuCi0gICAgUHJvcGVydHlOYW1lQXJyYXkg
a2V5cyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAgUHJv
cGVydHlOYW1lQXJyYXkga2V5cygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1i
b2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJs
ZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBrZXlzLCBFbnVtZXJhdGlv
bk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICAvLyA3LiBGb3IgZWFjaCBlbGVtZW50IGsgb2Yg
a2V5cywgZG8KICAgICBQcm9wZXJ0eU5hbWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgZW5kID0ga2V5
cy5lbmQoKTsKICAgICBmb3IgKFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBpdGVy
ID0ga2V5cy5iZWdpbigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7Ci0gICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gKml0ZXI7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNQcml2
YXRlTmFtZSgpKQotICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8mIHByb3BlcnR5
TmFtZSA9ICppdGVyOworICAgICAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1l
KCkpOwogCiAgICAgICAgIC8vIGEuIExldCBjdXJyZW50RGVzYyBiZSA/IE8uW1tHZXRPd25Qcm9w
ZXJ0eV1dKGspCiAgICAgICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjOwpAQCAtODM2LDcgKzgz
NSw3IEBAIEpTQXJyYXkqIG93blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGUgcHJvCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgUHJvcGVy
dHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBwcm9wZXJ0eU5hbWVNb2RlKTsKKyAgICBQcm9w
ZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2bSwgcHJvcGVydHlOYW1lTW9kZSwgUHJpdmF0ZVN5
bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Q
cm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVydGllcywgRW51bWVyYXRpb25Nb2RlKGRv
bnRFbnVtUHJvcGVydGllc01vZGUpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBu
dWxscHRyKTsKIApAQCAtODU0LDE4ICs4NTMsMjYgQEAgSlNBcnJheSogb3duUHJvcGVydHlLZXlz
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZSBwcm8K
IAogICAgIC8vIElmICFtdXN0RmlsdGVyUHJvcGVydHkgYW5kIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MgbW9kZSwgd2UgZG8gbm90IG5lZWQgdG8gZmlsdGVyIG91dCBhbnkgZW50cmllcyBpbiBQ
cm9wZXJ0eU5hbWVBcnJheS4KICAgICAvLyBXZSBjYW4gdXNlIGZhc3QgYWxsb2NhdGlvbiBhbmQg
aW5pdGlhbGl6YXRpb24uCi0gICAgaWYgKCFtdXN0RmlsdGVyUHJvcGVydHkgJiYgcHJvcGVydHlO
YW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzICYmIHByb3BlcnRpZXMuc2l6ZSgp
IDwgTUlOX1NQQVJTRV9BUlJBWV9JTkRFWCkgewotICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3Qg
PSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7Ci0gICAgICAgIGlmIChMSUtFTFkoIWdsb2Jh
bE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpKSkgewotICAgICAgICAgICAgc2l6ZV90IG51bVBy
b3BlcnRpZXMgPSBwcm9wZXJ0aWVzLnNpemUoKTsKLSAgICAgICAgICAgIEpTQXJyYXkqIGtleXMg
PSBKU0FycmF5OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlTdHJ1Y3R1cmVGb3JJbmRl
eGluZ1R5cGVEdXJpbmdBbGxvY2F0aW9uKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBudW1Qcm9wZXJ0
aWVzKTsKLSAgICAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogYnVmZmVyID0ga2V5cy0+
YnV0dGVyZmx5KCktPmNvbnRpZ3VvdXMoKS5kYXRhKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgewotICAgICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOwotICAgICAgICAgICAgICAgIEFTU0VS
VCghaWRlbnRpZmllci5pc1N5bWJvbCgpKTsKLSAgICAgICAgICAgICAgICBidWZmZXJbaV0uc2V0
KHZtLCBrZXlzLCBqc093bmVkU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOworICAg
IGlmIChwcm9wZXJ0eU5hbWVNb2RlICE9IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1i
b2xzKSB7CisgICAgICAgIEFTU0VSVChwcm9wZXJ0eU5hbWVNb2RlID09IFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MgfHwgcHJvcGVydHlOYW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2RlOjpTeW1i
b2xzKTsKKyAgICAgICAgaWYgKCFtdXN0RmlsdGVyUHJvcGVydHkgJiYgcHJvcGVydGllcy5zaXpl
KCkgPCBNSU5fU1BBUlNFX0FSUkFZX0lOREVYKSB7CisgICAgICAgICAgICBhdXRvKiBnbG9iYWxP
YmplY3QgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoTElL
RUxZKCFnbG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRpbWUoKSkpIHsKKyAgICAgICAgICAgICAg
ICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOworICAgICAgICAgICAg
ICAgIEpTQXJyYXkqIGtleXMgPSBKU0FycmF5OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+b3Jp
Z2luYWxBcnJheVN0cnVjdHVyZUZvckluZGV4aW5nVHlwZShBcnJheVdpdGhDb250aWd1b3VzKSwg
bnVtUHJvcGVydGllcyk7CisgICAgICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBi
dWZmZXIgPSBrZXlzLT5idXR0ZXJmbHkoKS0+Y29udGlndW91cygpLmRhdGEoKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgeworICAg
ICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGllc1tpXTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5TmFtZU1vZGUgPT0gUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5ncykgeworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFpZGVudGlm
aWVyLmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2ldLnNldCh2
bSwga2V5cywganNPd25lZFN0cmluZygmdm0sIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChp
ZGVudGlmaWVyLmlzU3ltYm9sKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyW2ld
LnNldCh2bSwga2V5cywgU3ltYm9sOjpjcmVhdGUodm0sIHN0YXRpY19jYXN0PFN5bWJvbEltcGwm
PigqaWRlbnRpZmllci5pbXBsKCkpKSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGtleXM7CiAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4ga2V5czsKICAgICAgICAgfQogICAgIH0KIApAQCAtODk3LDEzICs5
MDQsMTIgQEAgSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIG9iamVjdCwgUHJvcGVydHlOYW1lTW9kZSBwcm8KICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGlk
ZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOwogICAgICAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIu
aXNTeW1ib2woKSk7Ci0gICAgICAgICAgICBpZiAoIWlkZW50aWZpZXIuaXNQcml2YXRlTmFtZSgp
KSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5SWZO
ZWVkZWQoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2Nv
cGUuZXhjZXB0aW9uKCkgfHwgIWhhc1Byb3BlcnR5KTsKLSAgICAgICAgICAgICAgICBpZiAoaGFz
UHJvcGVydHkpCi0gICAgICAgICAgICAgICAgICAgIHB1c2hEaXJlY3QoZXhlYywga2V5cywgU3lt
Ym9sOjpjcmVhdGUodm0sIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBs
KCkpKSk7Ci0gICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0
cik7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlQoIWlkZW50aWZpZXIuaXNQcml2
YXRlTmFtZSgpKTsKKyAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBmaWx0ZXJQcm9wZXJ0
eUlmTmVlZGVkKGlkZW50aWZpZXIpOworICAgICAgICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2Nv
cGUuZXhjZXB0aW9uKCkgfHwgIWhhc1Byb3BlcnR5KTsKKyAgICAgICAgICAgIGlmIChoYXNQcm9w
ZXJ0eSkKKyAgICAgICAgICAgICAgICBwdXNoRGlyZWN0KGV4ZWMsIGtleXMsIFN5bWJvbDo6Y3Jl
YXRlKHZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSkpOwor
ICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtOTEzLDE1ICs5MTksMTcgQEAgSlNBcnJheSog
b3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgUHJvcGVy
dHlOYW1lTW9kZSBwcm8KICAgICAgICAgc2l6ZV90IG51bVByb3BlcnRpZXMgPSBwcm9wZXJ0aWVz
LnNpemUoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBp
KyspIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ld
OwotICAgICAgICAgICAgaWYgKGlkZW50aWZpZXIuaXNTeW1ib2woKSAmJiAhaWRlbnRpZmllci5p
c1ByaXZhdGVOYW1lKCkpCisgICAgICAgICAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpKSB7
CisgICAgICAgICAgICAgICAgQVNTRVJUKCFpZGVudGlmaWVyLmlzUHJpdmF0ZU5hbWUoKSk7CiAg
ICAgICAgICAgICAgICAgcHJvcGVydHlTeW1ib2xzLmFwcGVuZChpZGVudGlmaWVyKTsKLSAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVydHkgPSBmaWx0ZXJQ
cm9wZXJ0eUlmTmVlZGVkKGlkZW50aWZpZXIpOwotICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9B
U1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFoYXNQcm9wZXJ0eSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKGhhc1Byb3BlcnR5KQotICAgICAgICAgICAgICAgICAgICBwdXNoRGlyZWN0KGV4ZWMs
IGtleXMsIGpzT3duZWRTdHJpbmcoZXhlYywgaWRlbnRpZmllci5zdHJpbmcoKSkpOwotICAgICAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOworICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib29sIGhhc1By
b3BlcnR5ID0gZmlsdGVyUHJvcGVydHlJZk5lZWRlZChpZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFoYXNQcm9wZXJ0eSk7Cisg
ICAgICAgICAgICBpZiAoaGFzUHJvcGVydHkpCisgICAgICAgICAgICAgICAgcHVzaERpcmVjdChl
eGVjLCBrZXlzLCBqc093bmVkU3RyaW5nKGV4ZWMsIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKKyAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9
CiAKICAgICAgICAgLy8gVG8gZW5zdXJlIHRoZSBvcmRlciBkZWZpbmVkIGluIHRoZSBzcGVjICg5
LjEuMTIpLCB3ZSBhcHBlbmQgc3ltYm9scyBhdCB0aGUgbGFzdCBlbGVtZW50cyBvZiBrZXlzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJy
YXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgK
aW5kZXggYTdhZmU3OGY2ZGZjMTY1N2Y0NzAzYWZlYjRiNzIwNDQxNDI2YjAzYi4uMzgyNTkyMTRh
YzM2YmNlNjEyNDVlN2Y3NjUxZGEyOTQxYzYwNDAwMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCkBAIC00NywxNSArNDcsMTEgQEAg
Y2xhc3MgUHJvcGVydHlOYW1lQXJyYXlEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8UHJvcGVydHlO
YW1lQXJyYXlEYXRhPiB7CiAvLyBGSVhNRTogUmVuYW1lIHRvIFByb3BlcnR5TmFtZUFycmF5QnVp
bGRlci4KIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5IHsKIHB1YmxpYzoKLSAgICBQcm9wZXJ0eU5h
bWVBcnJheShWTSogdm0sIFByb3BlcnR5TmFtZU1vZGUgbW9kZSkKKyAgICBQcm9wZXJ0eU5hbWVB
cnJheShWTSogdm0sIFByb3BlcnR5TmFtZU1vZGUgcHJvcGVydHlOYW1lTW9kZSwgUHJpdmF0ZVN5
bWJvbE1vZGUgcHJpdmF0ZVN5bWJvbE1vZGUpCiAgICAgICAgIDogbV9kYXRhKFByb3BlcnR5TmFt
ZUFycmF5RGF0YTo6Y3JlYXRlKCkpCiAgICAgICAgICwgbV92bSh2bSkKLSAgICAgICAgLCBtX21v
ZGUobW9kZSkKLSAgICB7Ci0gICAgfQotCi0gICAgUHJvcGVydHlOYW1lQXJyYXkoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVNb2RlIG1vZGUpCi0gICAgICAgIDogUHJvcGVydHlOYW1lQXJy
YXkoJmV4ZWMtPnZtKCksIG1vZGUpCisgICAgICAgICwgbV9wcm9wZXJ0eU5hbWVNb2RlKHByb3Bl
cnR5TmFtZU1vZGUpCisgICAgICAgICwgbV9wcml2YXRlU3ltYm9sTW9kZShwcml2YXRlU3ltYm9s
TW9kZSkKICAgICB7CiAgICAgfQogCkBAIC04MywxNyArNzksMjEgQEAgY2xhc3MgUHJvcGVydHlO
YW1lQXJyYXkgewogICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9k
YXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5iZWdpbigpOyB9CiAgICAgY29uc3RfaXRlcmF0b3Ig
ZW5kKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5lbmQoKTsg
fQogCi0gICAgUHJvcGVydHlOYW1lTW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gbV9tb2RlOyB9
CiAgICAgYm9vbCBpbmNsdWRlU3ltYm9sUHJvcGVydGllcygpIGNvbnN0OwogICAgIGJvb2wgaW5j
bHVkZVN0cmluZ1Byb3BlcnRpZXMoKSBjb25zdDsKIAorICAgIFByb3BlcnR5TmFtZU1vZGUgcHJv
cGVydHlOYW1lTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlOYW1lTW9kZTsgfQorICAg
IFByaXZhdGVTeW1ib2xNb2RlIHByaXZhdGVTeW1ib2xNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9w
cml2YXRlU3ltYm9sTW9kZTsgfQorCiBwcml2YXRlOgorICAgIHZvaWQgYWRkVW5jaGVja2VkSW50
ZXJuYWwoVW5pcXVlZFN0cmluZ0ltcGwqKTsKICAgICBib29sIGlzVWlkTWF0Y2hlZFRvVHlwZU1v
ZGUoVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIpOwogCiAgICAgUmVmUHRyPFByb3BlcnR5
TmFtZUFycmF5RGF0YT4gbV9kYXRhOwogICAgIEhhc2hTZXQ8VW5pcXVlZFN0cmluZ0ltcGwqPiBt
X3NldDsKICAgICBWTSogbV92bTsKLSAgICBQcm9wZXJ0eU5hbWVNb2RlIG1fbW9kZTsKKyAgICBQ
cm9wZXJ0eU5hbWVNb2RlIG1fcHJvcGVydHlOYW1lTW9kZTsKKyAgICBQcml2YXRlU3ltYm9sTW9k
ZSBtX3ByaXZhdGVTeW1ib2xNb2RlOwogfTsKIAogQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5
TmFtZUFycmF5OjphZGQoY29uc3QgSWRlbnRpZmllciYgaWRlbnRpZmllcikKQEAgLTEwMSwxMSAr
MTAxLDE2IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKGNvbnN0
IElkZW50aWZpZXImIGlkZW50aWZpZXIpCiAgICAgYWRkKGlkZW50aWZpZXIuaW1wbCgpKTsKIH0K
IAorQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGRVbmNoZWNrZWRJbnRl
cm5hbChVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcikKK3sKKyAgICBtX2RhdGEtPnByb3Bl
cnR5TmFtZVZlY3RvcigpLmFwcGVuZChJZGVudGlmaWVyOjpmcm9tVWlkKG1fdm0sIGlkZW50aWZp
ZXIpKTsKK30KKwogQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGRVbmNo
ZWNrZWQoVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFpc1VpZE1h
dGNoZWRUb1R5cGVNb2RlKGlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9kYXRh
LT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5hcHBlbmQoSWRlbnRpZmllcjo6ZnJvbVVpZChtX3ZtLCBp
ZGVudGlmaWVyKSk7CisgICAgYWRkVW5jaGVja2VkSW50ZXJuYWwoaWRlbnRpZmllcik7CiB9CiAK
IEFMV0FZU19JTkxJTkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKFVuaXF1ZWRTdHJpbmdJ
bXBsKiBpZGVudGlmaWVyKQpAQCAtMTI5LDI0ICsxMzQsMjkgQEAgQUxXQVlTX0lOTElORSB2b2lk
IFByb3BlcnR5TmFtZUFycmF5OjphZGQoVW5pcXVlZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYWRkVW5jaGVja2VkKGlkZW50aWZpZXIp
OworICAgIGFkZFVuY2hlY2tlZEludGVybmFsKGlkZW50aWZpZXIpOwogfQogCiBBTFdBWVNfSU5M
SU5FIGJvb2wgUHJvcGVydHlOYW1lQXJyYXk6OmlzVWlkTWF0Y2hlZFRvVHlwZU1vZGUoVW5pcXVl
ZFN0cmluZ0ltcGwqIGlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGlkZW50aWZpZXItPmlzU3ltYm9s
KCkpCi0gICAgICAgIHJldHVybiBpbmNsdWRlU3ltYm9sUHJvcGVydGllcygpOworICAgIGlmIChp
ZGVudGlmaWVyLT5pc1N5bWJvbCgpKSB7CisgICAgICAgIGlmICghaW5jbHVkZVN5bWJvbFByb3Bl
cnRpZXMoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKExJS0VMWSht
X3ByaXZhdGVTeW1ib2xNb2RlID09IFByaXZhdGVTeW1ib2xNb2RlOjpJbmNsdWRlKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PFN5bWJvbElt
cGwqPihpZGVudGlmaWVyKS0+aXNQcml2YXRlKCk7CisgICAgfQogICAgIHJldHVybiBpbmNsdWRl
U3RyaW5nUHJvcGVydGllcygpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlOYW1l
QXJyYXk6OmluY2x1ZGVTeW1ib2xQcm9wZXJ0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KG1f
bW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2Rl
Pjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3ltYm9scyk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihtX3Byb3Bl
cnR5TmFtZU1vZGUpICYgc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlO
YW1lTW9kZT46OnR5cGU+KFByb3BlcnR5TmFtZU1vZGU6OlN5bWJvbHMpOwogfQogCiBBTFdBWVNf
SU5MSU5FIGJvb2wgUHJvcGVydHlOYW1lQXJyYXk6OmluY2x1ZGVTdHJpbmdQcm9wZXJ0aWVzKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJv
cGVydHlOYW1lTW9kZT46OnR5cGU+KG1fbW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlp
bmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2RlPjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
cyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPFByb3BlcnR5
TmFtZU1vZGU+Ojp0eXBlPihtX3Byb3BlcnR5TmFtZU1vZGUpICYgc3RhdGljX2Nhc3Q8c3RkOjp1
bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNwcAppbmRleCA5MjMxYjBlMTA0YjE3MWI4NGY2YjY0
N2RkNzAzZDY4YjliZjNjYjAyLi4wN2JlYzA5YjFhYTA0YTgzMGQ3Y2FhODRjNDZiNmVkZGFiNjc2
YTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVj
dC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3Bw
CkBAIC05MTEsNyArOTExLDcgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYKICAgICBKU1ZhbHVl
IGFycmF5TGlrZU9iamVjdCA9IGNhbGwoZXhlYywgb3duS2V5c01ldGhvZCwgY2FsbFR5cGUsIGNh
bGxEYXRhLCBoYW5kbGVyLCBhcmd1bWVudHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUgPSB0
cmFwUmVzdWx0Lm1vZGUoKTsKKyAgICBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUg
PSB0cmFwUmVzdWx0LnByb3BlcnR5TmFtZU1vZGUoKTsKICAgICBSdW50aW1lVHlwZU1hc2sgcmVz
dWx0RmlsdGVyID0gMDsKICAgICBzd2l0Y2ggKHByb3BlcnR5TmFtZU1vZGUpIHsKICAgICBjYXNl
IFByb3BlcnR5TmFtZU1vZGU6OlN5bWJvbHM6CkBAIC05NDksNyArOTQ5LDcgQEAgdm9pZCBQcm94
eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWVBcnJheSYKICAgICBib29sIHRhcmdldElzRXhlbnNpYmxlID0gdGFyZ2V0LT5pc0V4
dGVuc2libGUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
IAotICAgIFByb3BlcnR5TmFtZUFycmF5IHRhcmdldEtleXMoJnZtLCBwcm9wZXJ0eU5hbWVNb2Rl
KTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSB0YXJnZXRLZXlzKCZ2bSwgcHJvcGVydHlOYW1lTW9k
ZSwgdHJhcFJlc3VsdC5wcml2YXRlU3ltYm9sTW9kZSgpKTsKICAgICB0YXJnZXQtPm1ldGhvZFRh
YmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJnZXQsIGV4ZWMsIHRhcmdldEtleXMsIGVu
dW1lcmF0aW9uTW9kZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
ICAgICBWZWN0b3I8VW5pcXVlZFN0cmluZ0ltcGwqPiB0YXJnZXRDb25maWd1cmFibGVLZXlzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3Jk
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAppbmRl
eCBlMWIwNjhhNDNhZjY2MDU0Yjk3YWM5ZDg2ZDE0NGY4NmEwYjExNzRmLi5lYmE5ODc2MGYxNTQ3
MGRiYTY1ZjI4OGVhZTRmYjA4ZjFiZjVkODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaApAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBLLCB0eXBlbmFtZSBWPiBzdHJ1Y3QgQ29udmVydGVyPElETFJlY29yZDxLLCBWPj4g
OiBEZWZhdWx0Q29udgogICAgICAgICBSZXR1cm5UeXBlIHJlc3VsdDsKICAgICAKICAgICAgICAg
Ly8gNC4gTGV0IGtleXMgYmUgPyBPLltbT3duUHJvcGVydHlLZXlzXV0oKS4KLSAgICAgICAgSlND
OjpQcm9wZXJ0eU5hbWVBcnJheSBrZXlzKCZ2bSwgSlNDOjpQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzKTsKKyAgICAgICAgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSBrZXlzKCZ2bSwgSlNDOjpQcm9w
ZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBKU0M6OlByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsK
ICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCAmc3RhdGUsIGtleXMsIEpTQzo6RW51bWVyYXRpb25Nb2RlKCkpOwogCiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCBjM2UwNjMxNThlZmU3
ZmU2ZjM3YWYyODYxMjA5ZGY1NGQyMWUyNGMxLi4zYzE4YTUxNTYxODRlNDk3YWViYmUwMjgzYjFi
NzYwYjNiNTc1YzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTE0OTAsNyArMTQ5MCw3IEBAIFNlcmlhbGl6YXRp
b25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAg
ICAgICAgICAgICAgICAgIGluZGV4U3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgICAg
ICAgICBsZW5ndGhTdGFjay5yZW1vdmVMYXN0KCk7CiAKLSAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVN
b2RlOjpTdHJpbmdzKSk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5k
KFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0
ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICAgICAgYXJyYXktPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKGFycmF5LCBtX2V4ZWMsIHBy
b3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChwcm9wZXJ0eVN0YWNrLmxhc3QoKS5zaXplKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHdyaXRlKE5vbkluZGV4UHJvcGVydGllc1RhZyk7CkBAIC0xNTQwLDcgKzE1NDAsNyBA
QCBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1Zh
bHVlIGluKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvblJldHVybkNv
ZGU6OkRhdGFDbG9uZUVycm9yOwogICAgICAgICAgICAgICAgIGlucHV0T2JqZWN0U3RhY2suYXBw
ZW5kKGluT2JqZWN0KTsKICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKLSAg
ICAgICAgICAgICAgICBwcm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4
ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0
eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAgICAgaW5P
YmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhpbk9iamVjdCwgbV9l
eGVjLCBwcm9wZXJ0eVN0YWNrLmxhc3QoKSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgb2JqZWN0U3RhcnRWaXNpdE1lbWJlcjoKQEAgLTE2MDgsNyArMTYw
OCw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXpl
KEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2sucmVtb3Zl
TGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRPYmpl
Y3RTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNEb3du
Y2FzdDxKU01hcCo+KHZtLCBvYmplY3QpKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlT
dGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpT
dHJpbmdzKSk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3Bl
cnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJv
bE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJs
ZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2su
bGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5v
bk1hcFByb3BlcnRpZXNUYWcpOwogICAgICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVu
ZCgwKTsKQEAgLTE2NTIsNyArMTY1Miw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25l
U2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIHNl
dEl0ZXJhdG9yU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVj
dCogb2JqZWN0ID0gaW5wdXRPYmplY3RTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAg
IEFTU0VSVChqc0R5bmFtaWNEb3duY2FzdDxKU1NldCo+KHZtLCBvYmplY3QpKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVj
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAgICAgICAgICAgICAgICAgIHByb3Bl
cnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6
U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICAg
ICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBt
X2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIHdyaXRlKE5vblNldFByb3BlcnRpZXNUYWcpOwogICAgICAgICAgICAgICAg
ICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9OUF9qc29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3Qu
Y3BwCmluZGV4IGVmOGE0MmM2MjcwNzg0NDU5YjQ0ZDM0NDRkMGMzNDA4MjM1ODE3ZjQuLjEyYmI5
ZTU0ODAzZmNlZTgyNWNkNGUyZWY3YTc5NmM1M2U1MTA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdl
L05QX2pzb2JqZWN0LmNwcApAQCAtNDg0LDcgKzQ4NCw3IEBAIGJvb2wgX05QTl9FbnVtZXJhdGUo
TlBQLCBOUE9iamVjdCogbywgTlBJZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIGNv
dW50CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAg
ICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAg
ICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2Rl
OjpTdHJpbmdzKTsKKyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0s
IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsK
IAogICAgICAgICBvYmotPmltcC0+bWV0aG9kVGFibGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG9i
ai0+aW1wLCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAg
IHVuc2lnbmVkIHNpemUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocHJvcGVydHlOYW1lcy5zaXpl
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTlBKU09iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OUEpTT2JqZWN0LmNwcAppbmRleCBmM2Y3OWY0Y2ZhMzdmMjRkMDM0MWU5YmZhY2FkY2Q4
NjZjNzYyNDdhLi44ZDBhMTQ1YThiNTA4NWZjN2U2NTkwYmY5NzQwYmY2MTVjZTQzMTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
UEpTT2JqZWN0LmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIGJvb2wgTlBKU09iamVjdDo6ZW51bWVy
YXRlKE5QSWRlbnRpZmllcioqIGlkZW50aWZpZXJzLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50
CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAK
LSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQ
cm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAg
ICAgbV9qc09iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG1fanNPYmpl
Y3QuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKIAogICAg
IE5QSWRlbnRpZmllciogbmFtZUlkZW50aWZpZXJzID0gbnBuTWVtTmV3QXJyYXk8TlBJZGVudGlm
aWVyPihwcm9wZXJ0eU5hbWVzLnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHkubW0KaW5kZXggMmY2MGYzODk0MWE1MGVkOTdiNjFjZDBiYWM1YzkxMjdhNWZmMDdl
ZS4uOTk4NDE1MWZjY2Q5OGEzNzQyZWY4ZTgyYTY1Zjk3OGY3ZjIxZTNjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0
YW5jZVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVk
L05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbQpAQCAtMTI3Niw3ICsxMjc2LDcgQEAgYm9v
bCBOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmVudW1lcmF0ZSh1aW50MzJfdCBvYmplY3RJ
RCwgZGF0YV90JiByZXN1bHREYXQKIAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGZyYW1lLT5zY3Jp
cHQoKS5nbG9iYWxPYmplY3QocGx1Z2luV29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAKLSAgICBQ
cm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0
eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgb2Jq
ZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldFByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
QXJyYXkqPiBhcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320666</attachid>
            <date>2017-09-13 11:38:20 -0700</date>
            <delta_ts>2017-09-13 14:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176867-20170914033819.patch</filename>
            <type>text/plain</type>
            <size>37292</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxOTcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NDdiM2U3MTM0NzRmNjQzODQ3NDY1YjdjNWMwMGU4MzczMmU2NDYyLi45YTNiZmEzNzU4YTgzYjZk
MTJjZWU1ODI5ZjEzZjgwYmU2MjYzMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw2MSBAQAogMjAxNy0wOS0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbSlNDXSBBZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4
Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2UgcmFyZWx5IHJlcXVpcmUgcHJpdmF0ZSBzeW1ib2xzIHdo
ZW4gZW51bWVyYXRpbmcgcHJvcGVydHkgbmFtZXMuCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBQ
cml2YXRlU3ltYm9sTW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0uIElmIFByaXZhdGVTeW1ib2xNb2Rl
OjpFeGNsdWRlCisgICAgICAgIGlzIHNwZWNpZmllZCwgUHJvcGVydHlOYW1lQXJyYXkgZG9lcyBu
b3QgaW5jbHVkZSBwcml2YXRlIHN5bWJvbHMuCisgICAgICAgIFRoaXMgcmVtb3ZlcyBtYW55IGFk
LWhvYyBgSWRlbnRpZmllcjo6aXNQcml2YXRlTmFtZSgpYCBpbiBlbnVtZXJhdGlvbiBvcGVyYXRp
b25zLgorCisgICAgICAgIE9uZSBhZGRpdGlvbmFsIGdvb2QgdGhpbmcgaXMgdGhhdCB3ZSBkbyBu
b3QgbmVlZCB0byBmaWx0ZXIgcHJpdmF0ZSBzeW1ib2xzIG91dCBmcm9tIFByb3BlcnR5TmFtZUFy
cmF5LgorICAgICAgICBJdCBhbGxvd3MgdXMgdG8gdXNlIE9iamVjdC5rZXlzKCkncyBmYXN0IHBh
dGggZm9yIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMuCisKKyAgICAgICAgb2JqZWN0LWdl
dC1vd24tcHJvcGVydHktc3ltYm9scyAgICAgICAgICAgICAgICA0OC42Mjc1Ky0xLjAwMjEgICAg
IF4gICAgIDM4LjE4NDYrLTEuNzkzNCAgICAgICAgXiBkZWZpbml0ZWx5IDEuMjczNXggZmFzdGVy
CisKKyAgICAgICAgKiBBUEkvSlNPYmplY3RSZWYuY3BwOgorICAgICAgICAoSlNPYmplY3RDb3B5
UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogYmluZGluZ3MvU2NyaXB0VmFsdWUuY3BwOgorICAg
ICAgICAoSW5zcGVjdG9yOjpqc1RvSW5zcGVjdG9yVmFsdWUpOgorICAgICAgICAqIGJ5dGVjb2Rl
L09iamVjdEFsbG9jYXRpb25Qcm9maWxlLmg6CisgICAgICAgIChKU0M6Ok9iamVjdEFsbG9jYXRp
b25Qcm9maWxlOjpwb3NzaWJsZURlZmF1bHRQcm9wZXJ0eUNvdW50KToKKyAgICAgICAgKiBydW50
aW1lL0VudW1lcmF0aW9uTW9kZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OnN1cHBvcnRlZExvY2FsZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
Tk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcik6Cisg
ICAgICAgIChKU0M6OlN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eSk6Cisg
ICAgICAgIChKU0M6OldhbGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUVudW1lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUVudW1lcmF0
b3I6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iu
aDoKKyAgICAgICAgKEpTQzo6cHJvcGVydHlOYW1lRW51bWVyYXRvcik6CisgICAgICAgICogcnVu
dGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0cnVj
dG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyk6CisgICAgICAgIChKU0M6Om9iamVjdENvbnN0
cnVjdG9yQXNzaWduKToKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JWYWx1ZXMpOgor
ICAgICAgICAoSlNDOjpkZWZpbmVQcm9wZXJ0aWVzKToKKyAgICAgICAgKEpTQzo6c2V0SW50ZWdy
aXR5TGV2ZWwpOgorICAgICAgICAoSlNDOjp0ZXN0SW50ZWdyaXR5TGV2ZWwpOgorICAgICAgICAo
SlNDOjpvd25Qcm9wZXJ0eUtleXMpOgorICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlOYW1lQXJy
YXkuaDoKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OlByb3BlcnR5TmFtZUFycmF5
KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OnByb3BlcnR5TmFtZU1vZGUgY29u
c3QpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6cHJpdmF0ZVN5bWJvbE1vZGUg
Y29uc3QpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6YWRkVW5jaGVja2VkSW50
ZXJuYWwpOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6YWRkVW5jaGVja2VkKToK
KyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmFkZCk6CisgICAgICAgIChKU0M6OlBy
b3BlcnR5TmFtZUFycmF5Ojppc1VpZE1hdGNoZWRUb1R5cGVNb2RlKToKKyAgICAgICAgKEpTQzo6
UHJvcGVydHlOYW1lQXJyYXk6OmluY2x1ZGVTeW1ib2xQcm9wZXJ0aWVzIGNvbnN0KToKKyAgICAg
ICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6OmluY2x1ZGVTdHJpbmdQcm9wZXJ0aWVzIGNvbnN0
KToKKyAgICAgICAgKEpTQzo6UHJvcGVydHlOYW1lQXJyYXk6Om1vZGUgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHJ1bnRpbWUvUHJveHlPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpQcm94
eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMpOgorCisyMDE3LTA5LTEzICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFtKU0NdIEZpeCBB
cnJheSBhbGxvY2F0aW9uIGluIE9iamVjdC5rZXlzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4MjYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMwMWFlM2VlNjgy
ZTE4NDgyMjkxZmFmN2M1OGQ4YjI5ZTQ4MzcxOWYuLmFkNWI1Yzc2YTMwZDE0MmQ3YzA1NTVhMGRh
NGE5ODY4NDQ5NjMyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wOS0xMyAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBB
ZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVB
cnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxp
emVyOjpzZXJpYWxpemUpOgorICAgICAgICAqIGJyaWRnZS9OUF9qc29iamVjdC5jcHA6CisgICAg
ICAgIChfTlBOX0VudW1lcmF0ZSk6CisKIDIwMTctMDktMTMgIE1zMmdlciAgPE1zMmdlckBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIE1ha2UgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6VHlwZWRM
aXN0OjpkYXRhKCkgY29uc3QtY29ycmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTIzZDU2NDc5MGFhNmUyNDcz
ZTRlZTI4YTE1MzNkY2UzZDM1YWZlYi4uNjg5MjgzOTU1ZjU1MzI1Njk5ODE1YzFmYzBhMGZmOWE0
N2NlNmVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0xMyAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgUHJpdmF0
ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5QSlNP
YmplY3Q6OmVudW1lcmF0ZSk6CisKIDIwMTctMDktMTMgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxz
dmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlZSXSBBZGQgSURMcyBhbmQgc3R1YnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAwYWJhZDliY2Y3OThhZDU5OGFlMGMzMWQ2
MWJmNWNmYjM2NWY0YTkwLi4zNDQzODM5NDIxZjQ5YWUyMWJhODk0NGU2YmIxODA5ZDE3ODBkYzI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDkt
MTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0pT
Q10gQWRkIFByaXZhdGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlO
YW1lQXJyYXkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Njg2NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHk6OmVudW1lcmF0ZSk6CisKIDIw
MTctMDktMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVm
YWN0b3IgV2ViQ29udGVudFJlYWRlciBvdXQgb2YgRWRpdG9yTWFjIGFuZCBFZGl0b3JJT1MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNPYmplY3RSZWYuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAKaW5kZXggNzAyYzgyMzU4NjNm
YmU1YzNmNzI0NGZlNjcxMmJiNzRmNjdhY2UzZS4uMjQ5YjU1NGQzYjBiZjQ5ZmQxY2IzOWMyOWZk
ZDUxMjI3OWNmYWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09i
amVjdFJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5j
cHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCBKU1Byb3BlcnR5TmFtZUFycmF5UmVmIEpTT2JqZWN0Q29w
eVByb3BlcnR5TmFtZXMoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgbwogCiAgICAgSlNP
YmplY3QqIGpzT2JqZWN0ID0gdG9KUyhvYmplY3QpOwogICAgIEpTUHJvcGVydHlOYW1lQXJyYXlS
ZWYgcHJvcGVydHlOYW1lcyA9IG5ldyBPcGFxdWVKU1Byb3BlcnR5TmFtZUFycmF5KHZtKTsKLSAg
ICBQcm9wZXJ0eU5hbWVBcnJheSBhcnJheSh2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7
CisgICAgUHJvcGVydHlOYW1lQXJyYXkgYXJyYXkodm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBqc09iamVjdC0+bWV0aG9kVGFi
bGUoKnZtKS0+Z2V0UHJvcGVydHlOYW1lcyhqc09iamVjdCwgZXhlYywgYXJyYXksIEVudW1lcmF0
aW9uTW9kZSgpKTsKIAogICAgIHNpemVfdCBzaXplID0gYXJyYXkuc2l6ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKaW5kZXggMGYxNWFlN2Q2
MjlkYjA2MTkzN2QxYjhhZTI5ODQ3NDNlMjUwNTY0Zi4uZDAwNzBlYzZmOWJiNDJiMDdhZWVmODMw
OTcyNDcxOTJkNTBkMDZmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRp
bmdzL1NjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3Mv
U2NyaXB0VmFsdWUuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHN0YXRpYyBSZWZQdHI8SW5zcGVjdG9y
VmFsdWU+IGpzVG9JbnNwZWN0b3JWYWx1ZShFeGVjU3RhdGUmIHNjcmlwdFN0YXRlLCBKU1ZhbHVl
CiAgICAgICAgIH0KICAgICAgICAgYXV0byBpbnNwZWN0b3JPYmplY3QgPSBJbnNwZWN0b3JPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgICAgICBhdXRvJiBvYmplY3QgPSAqdmFsdWUuZ2V0T2JqZWN0KCk7
Ci0gICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnNjcmlwdFN0YXRlLCBQ
cm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJv
cGVydHlOYW1lcygmc2NyaXB0U3RhdGUudm0oKSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywg
UHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgICAgICBvYmplY3QubWV0aG9kVGFibGUo
KS0+Z2V0T3duUHJvcGVydHlOYW1lcygmb2JqZWN0LCAmc2NyaXB0U3RhdGUsIHByb3BlcnR5TmFt
ZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAgICAgZm9yIChhdXRvJiBuYW1lIDogcHJvcGVy
dHlOYW1lcykgewogICAgICAgICAgICAgYXV0byBpbnNwZWN0b3JWYWx1ZSA9IGpzVG9JbnNwZWN0
b3JWYWx1ZShzY3JpcHRTdGF0ZSwgb2JqZWN0LmdldCgmc2NyaXB0U3RhdGUsIG5hbWUpLCBtYXhE
ZXB0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT2JqZWN0
QWxsb2NhdGlvblByb2ZpbGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmpl
Y3RBbGxvY2F0aW9uUHJvZmlsZS5oCmluZGV4IDMwMWEzNTgwYzUxOTVmZWVlYTUxZGYwNDcyNTYx
MWE1MWJjOGQ5ZTguLmQ5ODY1ZjUxZTI0Y2UwOTExOGY1NDA5MmIwOTFhMWIzYWI4YWM1MTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9u
UHJvZmlsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxv
Y2F0aW9uUHJvZmlsZS5oCkBAIC0xMzIsNyArMTMyLDcgQEAgY2xhc3MgT2JqZWN0QWxsb2NhdGlv
blByb2ZpbGUgewogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgc2l6ZV90IGNvdW50
ID0gMDsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lQXJyYXkoJnZtLCBQ
cm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAgICAgIFByb3BlcnR5TmFt
ZUFycmF5IHByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0Fu
ZFN5bWJvbHMsIFByaXZhdGVTeW1ib2xNb2RlOjpJbmNsdWRlKTsKICAgICAgICAgcHJvdG90eXBl
LT5zdHJ1Y3R1cmUoKS0+Z2V0UHJvcGVydHlOYW1lc0Zyb21TdHJ1Y3R1cmUodm0sIHByb3BlcnR5
TmFtZUFycmF5LCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgIFByb3BlcnR5TmFtZUFycmF5
RGF0YTo6UHJvcGVydHlOYW1lVmVjdG9yJiBwcm9wZXJ0eU5hbWVWZWN0b3IgPSBwcm9wZXJ0eU5h
bWVBcnJheS5kYXRhKCktPnByb3BlcnR5TmFtZVZlY3RvcigpOwogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHByb3BlcnR5TmFtZVZlY3Rvci5zaXplKCk7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRW51bWVyYXRpb25Nb2RlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FbnVtZXJhdGlvbk1vZGUuaAppbmRleCA3YWJiZWQy
ZWQ5MDAwOGE5M2QxNTdiMzI2ZTY3MzBmZGJmNmUzZmQ2Li4zMTc5OGY5NDZmYjM0MmM5ZjQ2MGZi
ODQ1ZmJiMzlmM2ViM2JhMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FbnVtZXJhdGlvbk1vZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FbnVtZXJhdGlvbk1vZGUuaApAQCAtMzMsNiArMzMsMTEgQEAgZW51bSBjbGFzcyBQcm9wZXJ0
eU5hbWVNb2RlIHsKICAgICBTdHJpbmdzQW5kU3ltYm9scyA9IFN5bWJvbHMgfCBTdHJpbmdzLAog
fTsKIAorZW51bSBjbGFzcyBQcml2YXRlU3ltYm9sTW9kZSB7CisgICAgSW5jbHVkZSwKKyAgICBF
eGNsdWRlCit9OworCiBlbnVtIGNsYXNzIERvbnRFbnVtUHJvcGVydGllc01vZGUgewogICAgIElu
Y2x1ZGUsCiAgICAgRXhjbHVkZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50bE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRs
T2JqZWN0LmNwcAppbmRleCAyNWQyMWYyZWU1Y2UzYzc2NzIzMTZhYWY2ZjdhMDM1ZDZhMjFmOTgx
Li43MzBlZTg4MGIxMWVkYjZiZTU3MDgxZTE3MzBhMDdhZjgwZmJjNGYxIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcApAQCAtODMwLDcgKzgzMCw3IEBA
IEpTVmFsdWUgc3VwcG9ydGVkTG9jYWxlcyhFeGVjU3RhdGUmIHN0YXRlLCBjb25zdCBIYXNoU2V0
PFN0cmluZz4mIGF2YWlsYWJsZUxvY2FsCiAgICAgICAgIDogbG9va3VwU3VwcG9ydGVkTG9jYWxl
cyhzdGF0ZSwgYXZhaWxhYmxlTG9jYWxlcywgcmVxdWVzdGVkTG9jYWxlcyk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5
IGtleXMoJnN0YXRlLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICBQcm9wZXJ0eU5h
bWVBcnJheSBrZXlzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJv
bE1vZGU6OkV4Y2x1ZGUpOwogICAgIHN1cHBvcnRlZExvY2FsZXMtPmdldE93blByb3BlcnR5TmFt
ZXMoc3VwcG9ydGVkTG9jYWxlcywgJnN0YXRlLCBrZXlzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCAwYzdmM2QxOTNiNzZlMTk1
YmUwNjA5NDBhOWVmYWU3MjAyMzEwZmU0Li5lYTY4NTA3MjA2YmRmMTA2OTEzOTkzMDA5NjI0YzI3
M2Y0NWU5ZGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09O
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0
LmNwcApAQCAtMjI0LDcgKzIyNCw3IEBAIFN0cmluZ2lmaWVyOjpTdHJpbmdpZmllcihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IExvY2FsPFVua25vd24+JiByZXBsYWNlciwgY29uc3QKICAgICA6IG1f
ZXhlYyhleGVjKQogICAgICwgbV9yZXBsYWNlcihyZXBsYWNlcikKICAgICAsIG1fdXNpbmdBcnJh
eVJlcGxhY2VyKGZhbHNlKQotICAgICwgbV9hcnJheVJlcGxhY2VyUHJvcGVydHlOYW1lcyhleGVj
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKQorICAgICwgbV9hcnJheVJlcGxhY2VyUHJvcGVy
dHlOYW1lcygmZXhlYy0+dm0oKSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5
bWJvbE1vZGU6OkV4Y2x1ZGUpCiAgICAgLCBtX3JlcGxhY2VyQ2FsbFR5cGUoQ2FsbFR5cGU6Ok5v
bmUpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKQEAgLTQ4NCw3ICs0ODQsNyBAQCBib29s
IFN0cmluZ2lmaWVyOjpIb2xkZXI6OmFwcGVuZE5leHRQcm9wZXJ0eShTdHJpbmdpZmllciYgc3Ry
aW5naWZpZXIsIFN0cmluZ0J1aQogICAgICAgICAgICAgaWYgKHN0cmluZ2lmaWVyLm1fdXNpbmdB
cnJheVJlcGxhY2VyKQogICAgICAgICAgICAgICAgIG1fcHJvcGVydHlOYW1lcyA9IHN0cmluZ2lm
aWVyLm1fYXJyYXlSZXBsYWNlclByb3BlcnR5TmFtZXMuZGF0YSgpOwogICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgb2JqZWN0UHJvcGVydHlOYW1l
cyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgICAgICAgICBQcm9w
ZXJ0eU5hbWVBcnJheSBvYmplY3RQcm9wZXJ0eU5hbWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6
U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgICAgICAgICAgICAgIG1f
b2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMobV9vYmplY3QuZ2V0
KCksIGV4ZWMsIG9iamVjdFByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAg
ICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgICAgICAg
ICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gb2JqZWN0UHJvcGVydHlOYW1lcy5yZWxlYXNlRGF0YSgp
OwpAQCAtNzA1LDcgKzcwNSw3IEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlIFdhbGtlcjo6d2FsayhK
U1ZhbHVlIHVuZmlsdGVyZWQpCiAgICAgICAgICAgICAgICAgSlNPYmplY3QqIG9iamVjdCA9IGFz
T2JqZWN0KGluVmFsdWUpOwogICAgICAgICAgICAgICAgIG9iamVjdFN0YWNrLnB1c2gob2JqZWN0
KTsKICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKLSAgICAgICAgICAgICAg
ICBwcm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFByb3BlcnR5
TmFtZU1vZGU6OlN0cmluZ3MpKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eVN0YWNrLmFwcGVu
ZChQcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZh
dGVTeW1ib2xNb2RlOjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RU
YWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3Rh
Y2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3Bw
CmluZGV4IDVmOGIwYjNmNzFlMmIzZjEyMDBlMDQ0Y2MzMjg3ZjQ0YjViMzhjYzUuLjgyYmIwZGMz
M2Q4YTc1MTAyNjM2NDIwYmNjOTEyNDA1ZjNhMWIwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcApA
QCAtMzcsNyArMzcsNyBAQCBjb25zdCBDbGFzc0luZm8gSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
OjpzX2luZm8gPSB7ICJKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IiLAogSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OmNyZWF0ZShWTSYgdm0pCiB7CiAg
ICAgaWYgKCF2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0KCkpIHsKLSAgICAgICAg
UHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MpOworICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZ2bSwgUHJv
cGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAg
ICAgICB2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IgPSBTdHJvbmc8SlNDZWxsPih2bSwg
Y3JlYXRlKHZtLCAwLCAwLCAwLCBXVEZNb3ZlKHByb3BlcnR5TmFtZXMpKSk7CiAgICAgfQogICAg
IHJldHVybiBqc0Nhc3Q8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKj4odm0uZW1wdHlQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKaW5kZXggMTQ1NTU3YTdjMTYx
NmFhNTU5ZjlmNzQwMDVhZGM5OWZjY2MyNGJjYS4uZDQwMzIzODg2OGExOTgzZTNmMTU1NWFiMDAw
ODM4MGJmMDY3ZWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBpbmxp
bmUgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplYwogCiAgICAgdWludDMyX3QgbnVtYmVyU3RydWN0dXJlUHJvcGVy
dGllcyA9IDA7CiAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFBy
b3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5
TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6
RXhjbHVkZSk7CiAKICAgICBpZiAoc3RydWN0dXJlLT5jYW5BY2Nlc3NQcm9wZXJ0aWVzUXVpY2ts
eUZvckVudW1lcmF0aW9uKCkgJiYgaW5kZXhlZExlbmd0aCA9PSBiYXNlLT5nZXRBcnJheUxlbmd0
aCgpKSB7CiAgICAgICAgIGJhc2UtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0U3RydWN0dXJlUHJvcGVy
dHlOYW1lcyhiYXNlLCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggN2IwZDcwZDQyOTBjZjI5MGI4ODgwN2RkMWNhMTU2NDgzNDJhYjBhMy4uNGVjNjRk
M2JlMGUxODlhMzcyNDYxMWY0MmNkZDg5OTdmNDI1YmU2YyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtMjE0LDcgKzIx
NCw3IEBAIEpTVmFsdWUgb2JqZWN0Q29uc3RydWN0b3JHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgUHJvcGVy
dHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5k
U3ltYm9scyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygmdm0sIFByb3BlcnR5
TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7
CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0
LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVzTW9k
ZTo6SW5jbHVkZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKQEAg
LTMxNiw3ICszMTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0
cnVjdG9yQXNzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgSlNPYmplY3QqIHNvdXJjZSA9
IHNvdXJjZVZhbHVlLnRvT2JqZWN0KGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwogCi0gICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoZXhl
YywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgICAgICBQcm9wZXJ0
eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5
bWJvbHMsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgc291cmNlLT5tZXRo
b2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMoc291cmNlLCBleGVjLCBwcm9wZXJ0aWVz
LCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogCkBAIC0zNTgsNyArMzU4LDgg
QEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckFzc2lnbihF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIGlmIChmb3VuZFN5bWJvbCkgewogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IG51bVByb3BlcnRpZXM7IGorKykgewogICAgICAgICAg
ICAgICAgIGNvbnN0IGF1dG8mIHByb3BlcnR5TmFtZSA9IHByb3BlcnRpZXNbal07Ci0gICAgICAg
ICAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpICYmICFwcm9wZXJ0eU5hbWUuaXNQ
cml2YXRlTmFtZSgpKSB7CisgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJv
bCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydHlOYW1lLmlzUHJpdmF0
ZU5hbWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGFzc2lnbihwcm9wZXJ0eU5hbWUpOwogICAg
ICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgICAg
ICAgICAgICAgIH0KQEAgLTM4Miw3ICszODMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIG9iamVjdENvbnN0cnVjdG9yVmFsdWVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU0FycmF5
KiB2YWx1ZXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIG51bGxwdHIpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9w
ZXJ0aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFt
ZUFycmF5IHByb3BlcnRpZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRl
U3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgdGFyZ2V0LT5tZXRob2RUYWJsZSh2bSktPmdldE93
blByb3BlcnR5TmFtZXModGFyZ2V0LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUo
RG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6SW5jbHVkZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAKQEAgLTU0Myw3ICs1NDQsNyBAQCBzdGF0aWMgSlNWYWx1ZSBkZWZp
bmVQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9iamVjdCwgSlNPYmplY3Qq
IHBybwogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcyhl
eGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAgUHJvcGVydHlO
YW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRT
eW1ib2xzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgYXNPYmplY3QocHJvcGVy
dGllcyktPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhhc09iamVjdChwcm9w
ZXJ0aWVzKSwgZXhlYywgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJv
cGVydGllc01vZGU6OkV4Y2x1ZGUpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydHlOYW1lcy5zaXplKCk7CkBA
IC01NjksOSArNTcwLDkgQEAgc3RhdGljIEpTVmFsdWUgZGVmaW5lUHJvcGVydGllcyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIEpTT2JqZWN0KiBwcm8KICAgICAgICAgfQogICAg
IH0KICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykgewotICAg
ICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZXNbaV07Ci0gICAgICAg
IGlmIChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKQotICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIGF1dG8mIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZXNbaV07CisgICAgICAg
IEFTU0VSVCghcHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSk7CisKICAgICAgICAgb2JqZWN0
LT5tZXRob2RUYWJsZSh2bSktPmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yc1tpXSwgdHJ1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CiAgICAgfQpAQCAtNjI5LDE1ICs2MzAsMTQgQEAgYm9vbCBzZXRJbnRl
Z3JpdHlMZXZlbChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSlNPYmplY3QqIG9iamVjdCkKICAg
ICBpZiAoVU5MSUtFTFkoIXN1Y2Nlc3MpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQ
cm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3NBbmRTeW1ib2xzKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2bSwgUHJv
cGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNs
dWRlKTsKICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhv
YmplY3QsIGV4ZWMsIHByb3BlcnRpZXMsIEVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRp
ZXNNb2RlOjpJbmNsdWRlKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OwogCiAgICAgUHJvcGVydHlOYW1lQXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHByb3BlcnRp
ZXMuZW5kKCk7CiAgICAgZm9yIChQcm9wZXJ0eU5hbWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgaXRl
ciA9IHByb3BlcnRpZXMuYmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewotICAgICAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9ICppdGVyOwotICAgICAgICBpZiAocHJvcGVydHlOYW1l
LmlzUHJpdmF0ZU5hbWUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvJiBw
cm9wZXJ0eU5hbWUgPSAqaXRlcjsKKyAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eU5hbWUuaXNQcml2
YXRlTmFtZSgpKTsKIAogICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzYzsKICAgICAgICAg
aWYgKGxldmVsID09IEludGVncml0eUxldmVsOjpTZWFsZWQpCkBAIC02NzcsMTYgKzY3NywxNSBA
QCBib29sIHRlc3RJbnRlZ3JpdHlMZXZlbChFeGVjU3RhdGUqIGV4ZWMsIFZNJiB2bSwgSlNPYmpl
Y3QqIG9iamVjdCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gNi4gTGV0IGtleXMg
YmUgPyBPLltbT3duUHJvcGVydHlLZXlzXV0oKS4KLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBrZXlz
KGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzKTsKKyAgICBQcm9wZXJ0
eU5hbWVBcnJheSBrZXlzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMs
IFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIGtleXMsIEVudW1lcmF0aW9uTW9k
ZShEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKIAogICAgIC8vIDcuIEZvciBlYWNoIGVsZW1lbnQgayBvZiBrZXlz
LCBkbwogICAgIFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBrZXlzLmVu
ZCgpOwogICAgIGZvciAoUHJvcGVydHlOYW1lQXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBr
ZXlzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpIHsKLSAgICAgICAgSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUgPSAqaXRlcjsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5pc1ByaXZhdGVO
YW1lKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgcHJvcGVydHlOYW1l
ID0gKml0ZXI7CisgICAgICAgIEFTU0VSVCghcHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSk7
CiAKICAgICAgICAgLy8gYS4gTGV0IGN1cnJlbnREZXNjIGJlID8gTy5bW0dldE93blByb3BlcnR5
XV0oaykKICAgICAgICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2M7CkBAIC04MzYsNyArODM1LDcg
QEAgSlNBcnJheSogb3duUHJvcGVydHlLZXlzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIG9i
amVjdCwgUHJvcGVydHlOYW1lTW9kZSBwcm8KIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBQcm9wZXJ0eU5h
bWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMsIHByb3BlcnR5TmFtZU1vZGUpOworICAgIFByb3BlcnR5
TmFtZUFycmF5IHByb3BlcnRpZXMoJnZtLCBwcm9wZXJ0eU5hbWVNb2RlLCBQcml2YXRlU3ltYm9s
TW9kZTo6RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3Bl
cnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0aWVzLCBFbnVtZXJhdGlvbk1vZGUoZG9udEVu
dW1Qcm9wZXJ0aWVzTW9kZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxw
dHIpOwogCkBAIC04NTQsMTggKzg1MywyNiBAQCBKU0FycmF5KiBvd25Qcm9wZXJ0eUtleXMoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlIHBybwogCiAg
ICAgLy8gSWYgIW11c3RGaWx0ZXJQcm9wZXJ0eSBhbmQgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
cyBtb2RlLCB3ZSBkbyBub3QgbmVlZCB0byBmaWx0ZXIgb3V0IGFueSBlbnRyaWVzIGluIFByb3Bl
cnR5TmFtZUFycmF5LgogICAgIC8vIFdlIGNhbiB1c2UgZmFzdCBhbGxvY2F0aW9uIGFuZCBpbml0
aWFsaXphdGlvbi4KLSAgICBpZiAoIW11c3RGaWx0ZXJQcm9wZXJ0eSAmJiBwcm9wZXJ0eU5hbWVN
b2RlID09IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MgJiYgcHJvcGVydGllcy5zaXplKCkgPCBN
SU5fU1BBUlNFX0FSUkFZX0lOREVYKSB7Ci0gICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKLSAgICAgICAgaWYgKExJS0VMWSghZ2xvYmFsT2Jq
ZWN0LT5pc0hhdmluZ0FCYWRUaW1lKCkpKSB7Ci0gICAgICAgICAgICBzaXplX3QgbnVtUHJvcGVy
dGllcyA9IHByb3BlcnRpZXMuc2l6ZSgpOwotICAgICAgICAgICAgSlNBcnJheSoga2V5cyA9IEpT
QXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5hcnJheVN0cnVjdHVyZUZvckluZGV4aW5n
VHlwZUR1cmluZ0FsbG9jYXRpb24oQXJyYXlXaXRoQ29udGlndW91cyksIG51bVByb3BlcnRpZXMp
OwotICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiBidWZmZXIgPSBrZXlzLT5idXR0
ZXJmbHkoKS0+Y29udGlndW91cygpLmRhdGEoKTsKLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgYXV0
byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNbaV07Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFp
ZGVudGlmaWVyLmlzU3ltYm9sKCkpOwotICAgICAgICAgICAgICAgIGJ1ZmZlcltpXS5zZXQodm0s
IGtleXMsIGpzT3duZWRTdHJpbmcoJnZtLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgaWYg
KHByb3BlcnR5TmFtZU1vZGUgIT0gUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMp
IHsKKyAgICAgICAgQVNTRVJUKHByb3BlcnR5TmFtZU1vZGUgPT0gUHJvcGVydHlOYW1lTW9kZTo6
U3RyaW5ncyB8fCBwcm9wZXJ0eU5hbWVNb2RlID09IFByb3BlcnR5TmFtZU1vZGU6OlN5bWJvbHMp
OworICAgICAgICBpZiAoIW11c3RGaWx0ZXJQcm9wZXJ0eSAmJiBwcm9wZXJ0aWVzLnNpemUoKSA8
IE1JTl9TUEFSU0VfQVJSQVlfSU5ERVgpIHsKKyAgICAgICAgICAgIGF1dG8qIGdsb2JhbE9iamVj
dCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIGlmIChMSUtFTFko
IWdsb2JhbE9iamVjdC0+aXNIYXZpbmdBQmFkVGltZSgpKSkgeworICAgICAgICAgICAgICAgIHNp
emVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zaXplKCk7CisgICAgICAgICAgICAgICAg
SlNBcnJheSoga2V5cyA9IEpTQXJyYXk6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LT5vcmlnaW5h
bEFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlKEFycmF5V2l0aENvbnRpZ3VvdXMpLCBudW1Q
cm9wZXJ0aWVzKTsKKyAgICAgICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIGJ1ZmZl
ciA9IGtleXMtPmJ1dHRlcmZseSgpLT5jb250aWd1b3VzKCkuZGF0YSgpOworICAgICAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7CisgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGlkZW50aWZpZXIgPSBwcm9wZXJ0aWVzW2ldOworICAg
ICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2Rl
OjpTdHJpbmdzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWlkZW50aWZpZXIu
aXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0uc2V0KHZtLCBr
ZXlzLCBqc093bmVkU3RyaW5nKCZ2bSwgaWRlbnRpZmllci5zdHJpbmcoKSkpOworICAgICAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGlkZW50
aWZpZXIuaXNTeW1ib2woKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJbaV0uc2V0
KHZtLCBrZXlzLCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCpp
ZGVudGlmaWVyLmltcGwoKSkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4ga2V5czsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiBrZXlzOwogICAgICAgICB9CiAgICAgfQogCkBAIC04OTcsMTMgKzkwNCwx
MiBAQCBKU0FycmF5KiBvd25Qcm9wZXJ0eUtleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCog
b2JqZWN0LCBQcm9wZXJ0eU5hbWVNb2RlIHBybwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG51bVByb3BlcnRpZXM7IGkrKykgewogICAgICAgICAgICAgY29uc3QgYXV0byYgaWRlbnRp
ZmllciA9IHByb3BlcnRpZXNbaV07CiAgICAgICAgICAgICBBU1NFUlQoaWRlbnRpZmllci5pc1N5
bWJvbCgpKTsKLSAgICAgICAgICAgIGlmICghaWRlbnRpZmllci5pc1ByaXZhdGVOYW1lKCkpIHsK
LSAgICAgICAgICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gZmlsdGVyUHJvcGVydHlJZk5lZWRl
ZChpZGVudGlmaWVyKTsKLSAgICAgICAgICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5l
eGNlcHRpb24oKSB8fCAhaGFzUHJvcGVydHkpOwotICAgICAgICAgICAgICAgIGlmIChoYXNQcm9w
ZXJ0eSkKLSAgICAgICAgICAgICAgICAgICAgcHVzaERpcmVjdChleGVjLCBrZXlzLCBTeW1ib2w6
OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCY+KCppZGVudGlmaWVyLmltcGwoKSkp
KTsKLSAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
LSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1ByaXZhdGVO
YW1lKCkpOworICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5SWZO
ZWVkZWQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5l
eGNlcHRpb24oKSB8fCAhaGFzUHJvcGVydHkpOworICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5
KQorICAgICAgICAgICAgICAgIHB1c2hEaXJlY3QoZXhlYywga2V5cywgU3ltYm9sOjpjcmVhdGUo
dm0sIHN0YXRpY19jYXN0PFN5bWJvbEltcGwmPigqaWRlbnRpZmllci5pbXBsKCkpKSk7CisgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKICAgICB9CkBAIC05MTMsMTUgKzkxOSwxNyBAQCBKU0FycmF5KiBvd25Q
cm9wZXJ0eUtleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBQcm9wZXJ0eU5h
bWVNb2RlIHBybwogICAgICAgICBzaXplX3QgbnVtUHJvcGVydGllcyA9IHByb3BlcnRpZXMuc2l6
ZSgpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVByb3BlcnRpZXM7IGkrKykg
ewogICAgICAgICAgICAgY29uc3QgYXV0byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNbaV07Ci0g
ICAgICAgICAgICBpZiAoaWRlbnRpZmllci5pc1N5bWJvbCgpICYmICFpZGVudGlmaWVyLmlzUHJp
dmF0ZU5hbWUoKSkKKyAgICAgICAgICAgIGlmIChpZGVudGlmaWVyLmlzU3ltYm9sKCkpIHsKKyAg
ICAgICAgICAgICAgICBBU1NFUlQoIWlkZW50aWZpZXIuaXNQcml2YXRlTmFtZSgpKTsKICAgICAg
ICAgICAgICAgICBwcm9wZXJ0eVN5bWJvbHMuYXBwZW5kKGlkZW50aWZpZXIpOwotICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGZpbHRlclByb3Bl
cnR5SWZOZWVkZWQoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICAgICAgRVhDRVBUSU9OX0FTU0VS
VCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWhhc1Byb3BlcnR5KTsKLSAgICAgICAgICAgICAgICBp
ZiAoaGFzUHJvcGVydHkpCi0gICAgICAgICAgICAgICAgICAgIHB1c2hEaXJlY3QoZXhlYywga2V5
cywganNPd25lZFN0cmluZyhleGVjLCBpZGVudGlmaWVyLnN0cmluZygpKSk7Ci0gICAgICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJvb2wgaGFzUHJvcGVy
dHkgPSBmaWx0ZXJQcm9wZXJ0eUlmTmVlZGVkKGlkZW50aWZpZXIpOworICAgICAgICAgICAgRVhD
RVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWhhc1Byb3BlcnR5KTsKKyAgICAg
ICAgICAgIGlmIChoYXNQcm9wZXJ0eSkKKyAgICAgICAgICAgICAgICBwdXNoRGlyZWN0KGV4ZWMs
IGtleXMsIGpzT3duZWRTdHJpbmcoZXhlYywgaWRlbnRpZmllci5zdHJpbmcoKSkpOworICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBUbyBlbnN1cmUgdGhlIG9yZGVyIGRlZmluZWQgaW4gdGhlIHNwZWMgKDkuMS4x
MiksIHdlIGFwcGVuZCBzeW1ib2xzIGF0IHRoZSBsYXN0IGVsZW1lbnRzIG9mIGtleXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlOYW1lQXJyYXkuaAppbmRl
eCBhN2FmZTc4ZjZkZmMxNjU3ZjQ3MDNhZmViNGI3MjA0NDE0MjZiMDNiLi4zODI1OTIxNGFjMzZi
Y2U2MTI0NWU3Zjc2NTFkYTI5NDFjNjA0MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmgKQEAgLTQ3LDE1ICs0NywxMSBAQCBjbGFz
cyBQcm9wZXJ0eU5hbWVBcnJheURhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxQcm9wZXJ0eU5hbWVB
cnJheURhdGE+IHsKIC8vIEZJWE1FOiBSZW5hbWUgdG8gUHJvcGVydHlOYW1lQXJyYXlCdWlsZGVy
LgogY2xhc3MgUHJvcGVydHlOYW1lQXJyYXkgewogcHVibGljOgotICAgIFByb3BlcnR5TmFtZUFy
cmF5KFZNKiB2bSwgUHJvcGVydHlOYW1lTW9kZSBtb2RlKQorICAgIFByb3BlcnR5TmFtZUFycmF5
KFZNKiB2bSwgUHJvcGVydHlOYW1lTW9kZSBwcm9wZXJ0eU5hbWVNb2RlLCBQcml2YXRlU3ltYm9s
TW9kZSBwcml2YXRlU3ltYm9sTW9kZSkKICAgICAgICAgOiBtX2RhdGEoUHJvcGVydHlOYW1lQXJy
YXlEYXRhOjpjcmVhdGUoKSkKICAgICAgICAgLCBtX3ZtKHZtKQotICAgICAgICAsIG1fbW9kZSht
b2RlKQotICAgIHsKLSAgICB9Ci0KLSAgICBQcm9wZXJ0eU5hbWVBcnJheShFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZU1vZGUgbW9kZSkKLSAgICAgICAgOiBQcm9wZXJ0eU5hbWVBcnJheSgm
ZXhlYy0+dm0oKSwgbW9kZSkKKyAgICAgICAgLCBtX3Byb3BlcnR5TmFtZU1vZGUocHJvcGVydHlO
YW1lTW9kZSkKKyAgICAgICAgLCBtX3ByaXZhdGVTeW1ib2xNb2RlKHByaXZhdGVTeW1ib2xNb2Rl
KQogICAgIHsKICAgICB9CiAKQEAgLTgzLDE3ICs3OSwyMSBAQCBjbGFzcyBQcm9wZXJ0eU5hbWVB
cnJheSB7CiAgICAgY29uc3RfaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2RhdGEt
PnByb3BlcnR5TmFtZVZlY3RvcigpLmJlZ2luKCk7IH0KICAgICBjb25zdF9pdGVyYXRvciBlbmQo
KSBjb25zdCB7IHJldHVybiBtX2RhdGEtPnByb3BlcnR5TmFtZVZlY3RvcigpLmVuZCgpOyB9CiAK
LSAgICBQcm9wZXJ0eU5hbWVNb2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBtX21vZGU7IH0KICAg
ICBib29sIGluY2x1ZGVTeW1ib2xQcm9wZXJ0aWVzKCkgY29uc3Q7CiAgICAgYm9vbCBpbmNsdWRl
U3RyaW5nUHJvcGVydGllcygpIGNvbnN0OwogCisgICAgUHJvcGVydHlOYW1lTW9kZSBwcm9wZXJ0
eU5hbWVNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0eU5hbWVNb2RlOyB9CisgICAgUHJp
dmF0ZVN5bWJvbE1vZGUgcHJpdmF0ZVN5bWJvbE1vZGUoKSBjb25zdCB7IHJldHVybiBtX3ByaXZh
dGVTeW1ib2xNb2RlOyB9CisKIHByaXZhdGU6CisgICAgdm9pZCBhZGRVbmNoZWNrZWRJbnRlcm5h
bChVbmlxdWVkU3RyaW5nSW1wbCopOwogICAgIGJvb2wgaXNVaWRNYXRjaGVkVG9UeXBlTW9kZShV
bmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcik7CiAKICAgICBSZWZQdHI8UHJvcGVydHlOYW1l
QXJyYXlEYXRhPiBtX2RhdGE7CiAgICAgSGFzaFNldDxVbmlxdWVkU3RyaW5nSW1wbCo+IG1fc2V0
OwogICAgIFZNKiBtX3ZtOwotICAgIFByb3BlcnR5TmFtZU1vZGUgbV9tb2RlOworICAgIFByb3Bl
cnR5TmFtZU1vZGUgbV9wcm9wZXJ0eU5hbWVNb2RlOworICAgIFByaXZhdGVTeW1ib2xNb2RlIG1f
cHJpdmF0ZVN5bWJvbE1vZGU7CiB9OwogCiBBTFdBWVNfSU5MSU5FIHZvaWQgUHJvcGVydHlOYW1l
QXJyYXk6OmFkZChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpAQCAtMTAxLDExICsxMDEs
MTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllcikKICAgICBhZGQoaWRlbnRpZmllci5pbXBsKCkpOwogfQogCitB
TFdBWVNfSU5MSU5FIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tlZEludGVybmFs
KFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudGlmaWVyKQoreworICAgIG1fZGF0YS0+cHJvcGVydHlO
YW1lVmVjdG9yKCkuYXBwZW5kKElkZW50aWZpZXI6OmZyb21VaWQobV92bSwgaWRlbnRpZmllcikp
OworfQorCiBBTFdBWVNfSU5MSU5FIHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZFVuY2hlY2tl
ZChVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcikKIHsKICAgICBpZiAoIWlzVWlkTWF0Y2hl
ZFRvVHlwZU1vZGUoaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2RhdGEtPnBy
b3BlcnR5TmFtZVZlY3RvcigpLmFwcGVuZChJZGVudGlmaWVyOjpmcm9tVWlkKG1fdm0sIGlkZW50
aWZpZXIpKTsKKyAgICBhZGRVbmNoZWNrZWRJbnRlcm5hbChpZGVudGlmaWVyKTsKIH0KIAogQUxX
QVlTX0lOTElORSB2b2lkIFByb3BlcnR5TmFtZUFycmF5OjphZGQoVW5pcXVlZFN0cmluZ0ltcGwq
IGlkZW50aWZpZXIpCkBAIC0xMjksMjQgKzEzNCwyOSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgUHJv
cGVydHlOYW1lQXJyYXk6OmFkZChVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcikKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhZGRVbmNoZWNrZWQoaWRlbnRpZmllcik7Cisg
ICAgYWRkVW5jaGVja2VkSW50ZXJuYWwoaWRlbnRpZmllcik7CiB9CiAKIEFMV0FZU19JTkxJTkUg
Ym9vbCBQcm9wZXJ0eU5hbWVBcnJheTo6aXNVaWRNYXRjaGVkVG9UeXBlTW9kZShVbmlxdWVkU3Ry
aW5nSW1wbCogaWRlbnRpZmllcikKIHsKLSAgICBpZiAoaWRlbnRpZmllci0+aXNTeW1ib2woKSkK
LSAgICAgICAgcmV0dXJuIGluY2x1ZGVTeW1ib2xQcm9wZXJ0aWVzKCk7CisgICAgaWYgKGlkZW50
aWZpZXItPmlzU3ltYm9sKCkpIHsKKyAgICAgICAgaWYgKCFpbmNsdWRlU3ltYm9sUHJvcGVydGll
cygpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoTElLRUxZKG1fcHJp
dmF0ZVN5bWJvbE1vZGUgPT0gUHJpdmF0ZVN5bWJvbE1vZGU6OkluY2x1ZGUpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8U3ltYm9sSW1wbCo+
KGlkZW50aWZpZXIpLT5pc1ByaXZhdGUoKTsKKyAgICB9CiAgICAgcmV0dXJuIGluY2x1ZGVTdHJp
bmdQcm9wZXJ0aWVzKCk7CiB9CiAKIEFMV0FZU19JTkxJTkUgYm9vbCBQcm9wZXJ0eU5hbWVBcnJh
eTo6aW5jbHVkZVN5bWJvbFByb3BlcnRpZXMoKSBjb25zdAogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2RlPjo6dHlwZT4obV9tb2Rl
KSAmIHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0
eXBlPihQcm9wZXJ0eU5hbWVNb2RlOjpTeW1ib2xzKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KG1fcHJvcGVydHlO
YW1lTW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVN
b2RlPjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3ltYm9scyk7CiB9CiAKIEFMV0FZU19JTkxJ
TkUgYm9vbCBQcm9wZXJ0eU5hbWVBcnJheTo6aW5jbHVkZVN0cmluZ1Byb3BlcnRpZXMoKSBjb25z
dAogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0
eU5hbWVNb2RlPjo6dHlwZT4obV9tb2RlKSAmIHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190
eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1l
TW9kZT46OnR5cGU+KG1fcHJvcGVydHlOYW1lTW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVy
bHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2RlPjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3Ry
aW5ncyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCmluZGV4IDkyMzFiMGUxMDRiMTcxYjg0ZjZiNjQ3ZGQ3
MDNkNjhiOWJmM2NiMDIuLjA3YmVjMDliMWFhMDRhODMwZDdjYWE4NGM0NmI2ZWRkYWI2NzZhMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKQEAg
LTkxMSw3ICs5MTEsNyBAQCB2b2lkIFByb3h5T2JqZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JgogICAgIEpTVmFsdWUgYXJy
YXlMaWtlT2JqZWN0ID0gY2FsbChleGVjLCBvd25LZXlzTWV0aG9kLCBjYWxsVHlwZSwgY2FsbERh
dGEsIGhhbmRsZXIsIGFyZ3VtZW50cyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKIAotICAgIFByb3BlcnR5TmFtZU1vZGUgcHJvcGVydHlOYW1lTW9kZSA9IHRyYXBS
ZXN1bHQubW9kZSgpOworICAgIFByb3BlcnR5TmFtZU1vZGUgcHJvcGVydHlOYW1lTW9kZSA9IHRy
YXBSZXN1bHQucHJvcGVydHlOYW1lTW9kZSgpOwogICAgIFJ1bnRpbWVUeXBlTWFzayByZXN1bHRG
aWx0ZXIgPSAwOwogICAgIHN3aXRjaCAocHJvcGVydHlOYW1lTW9kZSkgewogICAgIGNhc2UgUHJv
cGVydHlOYW1lTW9kZTo6U3ltYm9sczoKQEAgLTk0OSw3ICs5NDksNyBAQCB2b2lkIFByb3h5T2Jq
ZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JgogICAgIGJvb2wgdGFyZ2V0SXNFeGVuc2libGUgPSB0YXJnZXQtPmlzRXh0ZW5z
aWJsZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0g
ICAgUHJvcGVydHlOYW1lQXJyYXkgdGFyZ2V0S2V5cygmdm0sIHByb3BlcnR5TmFtZU1vZGUpOwor
ICAgIFByb3BlcnR5TmFtZUFycmF5IHRhcmdldEtleXMoJnZtLCBwcm9wZXJ0eU5hbWVNb2RlLCB0
cmFwUmVzdWx0LnByaXZhdGVTeW1ib2xNb2RlKCkpOwogICAgIHRhcmdldC0+bWV0aG9kVGFibGUo
dm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCwgZXhlYywgdGFyZ2V0S2V5cywgZW51bWVy
YXRpb25Nb2RlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogICAg
IFZlY3RvcjxVbmlxdWVkU3RyaW5nSW1wbCo+IHRhcmdldENvbmZpZ3VyYWJsZUtleXM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydFJlY29yZC5oCmluZGV4IGUx
YjA2OGE0M2FmNjYwNTRiOTdhYzlkODZkMTQ0Zjg2YTBiMTE3NGYuLmViYTk4NzYwZjE1NDcwZGJh
NjVmMjg4ZWFlNGZiMDhmMWJmNWQ4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29udmVydFJlY29yZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydFJlY29yZC5oCkBAIC04NSw3ICs4NSw3IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIEssIHR5cGVuYW1lIFY+IHN0cnVjdCBDb252ZXJ0ZXI8SURMUmVjb3JkPEssIFY+PiA6IERl
ZmF1bHRDb252CiAgICAgICAgIFJldHVyblR5cGUgcmVzdWx0OwogICAgIAogICAgICAgICAvLyA0
LiBMZXQga2V5cyBiZSA/IE8uW1tPd25Qcm9wZXJ0eUtleXNdXSgpLgotICAgICAgICBKU0M6OlBy
b3BlcnR5TmFtZUFycmF5IGtleXMoJnZtLCBKU0M6OlByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3Mp
OworICAgICAgICBKU0M6OlByb3BlcnR5TmFtZUFycmF5IGtleXMoJnZtLCBKU0M6OlByb3BlcnR5
TmFtZU1vZGU6OlN0cmluZ3MsIEpTQzo6UHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAg
ICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3Qs
ICZzdGF0ZSwga2V5cywgSlNDOjpFbnVtZXJhdGlvbk1vZGUoKSk7CiAKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGMzZTA2MzE1OGVmZTdmZTZm
MzdhZjI4NjEyMDlkZjU0ZDIxZTI0YzEuLjNjMThhNTE1NjE4NGU0OTdhZWJiZTAyODNiMWI3NjBi
M2I1NzVjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmNwcApAQCAtMTQ5MCw3ICsxNDkwLDcgQEAgU2VyaWFsaXphdGlvblJl
dHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAg
ICAgICAgICAgICAgaW5kZXhTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAg
IGxlbmd0aFN0YWNrLnJlbW92ZUxhc3QoKTsKIAotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0
eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MpKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJv
cGVydHlOYW1lQXJyYXkoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3lt
Ym9sTW9kZTo6RXhjbHVkZSkpOwogICAgICAgICAgICAgICAgICAgICBhcnJheS0+bWV0aG9kVGFi
bGUodm0pLT5nZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXMoYXJyYXksIG1fZXhlYywgcHJvcGVy
dHlTdGFjay5sYXN0KCksIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAgICAgICAgICAgICAgICAg
aWYgKHByb3BlcnR5U3RhY2subGFzdCgpLnNpemUoKSkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgd3JpdGUoTm9uSW5kZXhQcm9wZXJ0aWVzVGFnKTsKQEAgLTE1NDAsNyArMTU0MCw3IEBAIFNl
cmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUg
aW4pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBTZXJpYWxpemF0aW9uUmV0dXJuQ29kZTo6
RGF0YUNsb25lRXJyb3I7CiAgICAgICAgICAgICAgICAgaW5wdXRPYmplY3RTdGFjay5hcHBlbmQo
aW5PYmplY3QpOwogICAgICAgICAgICAgICAgIGluZGV4U3RhY2suYXBwZW5kKDApOwotICAgICAg
ICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KG1fZXhlYywg
UHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncykpOworICAgICAgICAgICAgICAgIHByb3BlcnR5U3Rh
Y2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
cywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICBpbk9iamVj
dC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGluT2JqZWN0LCBtX2V4ZWMs
IHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBvYmplY3RTdGFydFZpc2l0TWVtYmVyOgpAQCAtMTYwOCw3ICsxNjA4LDcg
QEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJpYWxpemVyOjpzZXJpYWxpemUoSlNW
YWx1ZSBpbikKICAgICAgICAgICAgICAgICAgICAgbWFwSXRlcmF0b3JTdGFjay5yZW1vdmVMYXN0
KCk7CiAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBpbnB1dE9iamVjdFN0
YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGpzRHluYW1pY0Rvd25jYXN0
PEpTTWFwKj4odm0sIG9iamVjdCkpOwotICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eVN0YWNr
LmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmlu
Z3MpKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlO
YW1lQXJyYXkoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9k
ZTo6RXhjbHVkZSkpOwogICAgICAgICAgICAgICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIG1fZXhlYywgcHJvcGVydHlTdGFjay5sYXN0
KCksIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAgICAgICAgICAgICAgICAgd3JpdGUoTm9uTWFw
UHJvcGVydGllc1RhZyk7CiAgICAgICAgICAgICAgICAgICAgIGluZGV4U3RhY2suYXBwZW5kKDAp
OwpAQCAtMTY1Miw3ICsxNjUyLDcgQEAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgQ2xvbmVTZXJp
YWxpemVyOjpzZXJpYWxpemUoSlNWYWx1ZSBpbikKICAgICAgICAgICAgICAgICAgICAgc2V0SXRl
cmF0b3JTdGFjay5yZW1vdmVMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBv
YmplY3QgPSBpbnB1dE9iamVjdFN0YWNrLmxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgQVNT
RVJUKGpzRHluYW1pY0Rvd25jYXN0PEpTU2V0Kj4odm0sIG9iamVjdCkpOwotICAgICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFBy
b3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpKTsKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlT
dGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSkpOwogICAgICAgICAgICAgICAgICAgICBv
YmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIG1fZXhl
YywgcHJvcGVydHlTdGFjay5sYXN0KCksIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgd3JpdGUoTm9uU2V0UHJvcGVydGllc1RhZyk7CiAgICAgICAgICAgICAgICAgICAg
IGluZGV4U3RhY2suYXBwZW5kKDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L05QX2pzb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAK
aW5kZXggZWY4YTQyYzYyNzA3ODQ0NTliNDRkMzQ0NGQwYzM0MDgyMzU4MTdmNC4uMTJiYjllNTQ4
MDNmY2VlODI1Y2Q0ZTJlZjdhNzk2YzUzZTUxMDg1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBf
anNvYmplY3QuY3BwCkBAIC00ODQsNyArNDg0LDcgQEAgYm9vbCBfTlBOX0VudW1lcmF0ZShOUFAs
IE5QT2JqZWN0KiBvLCBOUElkZW50aWZpZXIqKiBpZGVudGlmaWVyLCB1aW50MzJfdCogY291bnQK
ICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUodm0pOwogCiAgICAgICAg
IEV4ZWNTdGF0ZSogZXhlYyA9IGdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICBQ
cm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MpOworICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZ2bSwgUHJv
cGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogCiAg
ICAgICAgIG9iai0+aW1wLT5tZXRob2RUYWJsZSh2bSktPmdldFByb3BlcnR5TmFtZXMob2JqLT5p
bXAsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICAgICAgdW5z
aWduZWQgc2l6ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihwcm9wZXJ0eU5hbWVzLnNpemUoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
UEpTT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05QSlNPYmplY3QuY3BwCmluZGV4IGYzZjc5ZjRjZmEzN2YyNGQwMzQxZTliZmFjYWRjZDg2NmM3
NjI0N2EuLjhkMGExNDVhOGI1MDg1ZmM3ZTY1OTBiZjk3NDBiZjYxNWNlNDMxNzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QSlNP
YmplY3QuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgYm9vbCBOUEpTT2JqZWN0OjplbnVtZXJhdGUo
TlBJZGVudGlmaWVyKiogaWRlbnRpZmllcnMsIHVpbnQzMl90KiBpZGVudGlmaWVyQ291bnQKICAg
ICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIEpTTG9ja0hvbGRlciBsb2NrKHZtKTsKIAotICAg
IFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6
U3RyaW5ncyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3Bl
cnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBt
X2pzT2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldFByb3BlcnR5TmFtZXMobV9qc09iamVjdC5n
ZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkpOwogCiAgICAgTlBJ
ZGVudGlmaWVyKiBuYW1lSWRlbnRpZmllcnMgPSBucG5NZW1OZXdBcnJheTxOUElkZW50aWZpZXI+
KHByb3BlcnR5TmFtZXMuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eS5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFuY2VQ
cm94eS5tbQppbmRleCAyZjYwZjM4OTQxYTUwZWQ5N2I2MWNkMGJhYzVjOTEyN2E1ZmYwN2VlLi45
OTg0MTUxZmNjZDk4YTM3NDJlZjhlODJhNjVmOTc4ZjdmMjFlM2NiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNl
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9Ib3N0ZWQvTmV0
c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCkBAIC0xMjc2LDcgKzEyNzYsNyBAQCBib29sIE5l
dHNjYXBlUGx1Z2luSW5zdGFuY2VQcm94eTo6ZW51bWVyYXRlKHVpbnQzMl90IG9iamVjdElELCBk
YXRhX3QmIHJlc3VsdERhdAogCiAgICAgRXhlY1N0YXRlKiBleGVjID0gZnJhbWUtPnNjcmlwdCgp
Lmdsb2JhbE9iamVjdChwbHVnaW5Xb3JsZCgpKS0+Z2xvYmFsRXhlYygpOwogIAotICAgIFByb3Bl
cnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5n
cyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFt
ZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBvYmplY3Qt
Pm1ldGhvZFRhYmxlKHZtKS0+Z2V0UHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIHByb3BlcnR5
TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKIAogICAgIFJldGFpblB0cjxOU011dGFibGVBcnJh
eSo+IGFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE5NGYy
Mzg3ZjkyZGQ4MjAxNmVmMDc0YTRkYzNlMzk4NGVlOGNjODcuLmE2NDNkYTkwYzg1MzNjM2NjMTAw
ZWFmMjFmNTQ4ZmQyYzllYTQ1ZDkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTctMDktMTMgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgW0pTQ10gQWRkIFByaXZh
dGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfSBmb3IgUHJvcGVydHlOYW1lQXJyYXkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njg2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5j
aG1hcmtzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanM6IEFkZGVkLgorICAgICAg
ICAodGVzdCk6CisKKzIwMTctMDktMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFp
bC5jb20+CisKICAgICAgICAgW0pTQ10gRml4IEFycmF5IGFsbG9jYXRpb24gaW4gT2JqZWN0Lmtl
eXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Njgy
NgogCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9vYmplY3QtZ2V0LW93bi1w
cm9wZXJ0eS1zeW1ib2xzLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWdldC1v
d24tcHJvcGVydHktc3ltYm9scy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzU2YWNiM2RjOWFmYzFjNjgzMTQy
YTZjMDU4NDY5ZTM5ZDZjMTEwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3Mvb2JqZWN0LWdldC1vd24tcHJvcGVydHktc3ltYm9scy5qcwpAQCAtMCwwICsxLDEzIEBA
Cit2YXIgb2JqZWN0ID0ge307Citmb3IgKHZhciBpID0gMDsgaSA8IDFlMzsgKytpKSB7CisgICAg
b2JqZWN0W1N5bWJvbChpICsgJ3Byb3AnKV0gPSBpOworfQorCitmdW5jdGlvbiB0ZXN0KG9iamVj
dCkKK3sKKyAgICByZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmplY3QpOwor
fQorbm9JbmxpbmUodGVzdCk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWUzOyArK2kpCisgICAg
dGVzdChvYmplY3QpOwo=
</data>
<flag name="review"
          id="340766"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>320754</attachid>
            <date>2017-09-14 03:35:26 -0700</date>
            <delta_ts>2017-09-14 04:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176867-20170914193525.patch</filename>
            <type>text/plain</type>
            <size>37299</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ZDQxYzZiZTgyZmRkMDFlM2IzMDc3ZjJkZGQ2NzRmZmZhNTkwZTE1Li5mNzJmM2FiYTM4ZTE5N2U5
YmVlOGE2OTYzOWM5M2RmZjU3MzBmOWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1OSBAQAorMjAxNy0wOS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4
Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICBXZSByYXJlbHkgcmVxdWlyZSBwcml2YXRlIHN5bWJvbHMgd2hlbiBl
bnVtZXJhdGluZyBwcm9wZXJ0eSBuYW1lcy4KKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIFByaXZh
dGVTeW1ib2xNb2RlOjp7SW5jbHVkZSxFeGNsdWRlfS4gSWYgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4
Y2x1ZGUKKyAgICAgICAgaXMgc3BlY2lmaWVkLCBQcm9wZXJ0eU5hbWVBcnJheSBkb2VzIG5vdCBp
bmNsdWRlIHByaXZhdGUgc3ltYm9scy4KKyAgICAgICAgVGhpcyByZW1vdmVzIG1hbnkgYWQtaG9j
IGBJZGVudGlmaWVyOjppc1ByaXZhdGVOYW1lKClgIGluIGVudW1lcmF0aW9uIG9wZXJhdGlvbnMu
CisKKyAgICAgICAgT25lIGFkZGl0aW9uYWwgZ29vZCB0aGluZyBpcyB0aGF0IHdlIGRvIG5vdCBu
ZWVkIHRvIGZpbHRlciBwcml2YXRlIHN5bWJvbHMgb3V0IGZyb20gUHJvcGVydHlOYW1lQXJyYXku
CisgICAgICAgIEl0IGFsbG93cyB1cyB0byB1c2UgT2JqZWN0LmtleXMoKSdzIGZhc3QgcGF0aCBm
b3IgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scy4KKworICAgICAgICBvYmplY3QtZ2V0LW93
bi1wcm9wZXJ0eS1zeW1ib2xzICAgICAgICAgICAgICAgIDQ4LjYyNzUrLTEuMDAyMSAgICAgXiAg
ICAgMzguMTg0NistMS43OTM0ICAgICAgICBeIGRlZmluaXRlbHkgMS4yNzM1eCBmYXN0ZXIKKwor
ICAgICAgICAqIEFQSS9KU09iamVjdFJlZi5jcHA6CisgICAgICAgIChKU09iamVjdENvcHlQcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OmpzVG9JbnNwZWN0b3JWYWx1ZSk6CisgICAgICAgICogYnl0ZWNvZGUvT2Jq
ZWN0QWxsb2NhdGlvblByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6T2JqZWN0QWxsb2NhdGlvblBy
b2ZpbGU6OnBvc3NpYmxlRGVmYXVsdFByb3BlcnR5Q291bnQpOgorICAgICAgICAqIHJ1bnRpbWUv
RW51bWVyYXRpb25Nb2RlLmg6CisgICAgICAgICogcnVudGltZS9JbnRsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6c3VwcG9ydGVkTG9jYWxlcyk6CisgICAgICAgICogcnVudGltZS9KU09OT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKToKKyAgICAg
ICAgKEpTQzo6U3RyaW5naWZpZXI6OkhvbGRlcjo6YXBwZW5kTmV4dFByb3BlcnR5KToKKyAgICAg
ICAgKEpTQzo6V2Fsa2VyOjp3YWxrKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1l
RW51bWVyYXRvci5jcHA6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lRW51bWVyYXRvcjo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oOgor
ICAgICAgICAoSlNDOjpwcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKToKKyAgICAgICAgKiBydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0b3JH
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKToKKyAgICAgICAgKEpTQzo6b2JqZWN0Q29uc3RydWN0
b3JBc3NpZ24pOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvclZhbHVlcyk6CisgICAg
ICAgIChKU0M6OmRlZmluZVByb3BlcnRpZXMpOgorICAgICAgICAoSlNDOjpzZXRJbnRlZ3JpdHlM
ZXZlbCk6CisgICAgICAgIChKU0M6OnRlc3RJbnRlZ3JpdHlMZXZlbCk6CisgICAgICAgIChKU0M6
Om93blByb3BlcnR5S2V5cyk6CisgICAgICAgICogcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
OgorICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6UHJvcGVydHlOYW1lQXJyYXkpOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6cHJvcGVydHlOYW1lTW9kZSBjb25zdCk6
CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5Ojpwcml2YXRlU3ltYm9sTW9kZSBjb25z
dCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjphZGRVbmNoZWNrZWRJbnRlcm5h
bCk6CisgICAgICAgIChKU0M6OlByb3BlcnR5TmFtZUFycmF5OjphZGRVbmNoZWNrZWQpOgorICAg
ICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKToKKyAgICAgICAgKEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXk6OmlzVWlkTWF0Y2hlZFRvVHlwZU1vZGUpOgorICAgICAgICAoSlNDOjpQcm9w
ZXJ0eU5hbWVBcnJheTo6aW5jbHVkZVN5bWJvbFByb3BlcnRpZXMgY29uc3QpOgorICAgICAgICAo
SlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6aW5jbHVkZVN0cmluZ1Byb3BlcnRpZXMgY29uc3QpOgor
ICAgICAgICAoSlNDOjpQcm9wZXJ0eU5hbWVBcnJheTo6bW9kZSBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogcnVudGltZS9Qcm94eU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OlByb3h5T2Jq
ZWN0OjpwZXJmb3JtR2V0T3duUHJvcGVydHlOYW1lcyk6CisKIDIwMTctMDktMTMgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGxpbmcgb3V0IHIyMjE4MzI6IFJl
Z3Jlc3NlcyBTcGVlZG9tZXRlciBieSB+NCUgYW5kIERyb21hZW8gQ1NTIFlVSSBieSB+MjAlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IDg3M2ZkMDA1YTUwY2VjZDhmMjc0MmViMWIxNzE0ZGVjM2QzYWNiNmQuLmQ3
ZmVmNjJjOWI4MGFjOGIyNGEzZTc2MGIxYmM4MzdkNDMxZjMyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNy0wOS0xNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgUHJpdmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4
Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdl
aW5pZy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydFJlY29yZC5oOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZSk6CisgICAgICAgICogYnJpZGdlL05Q
X2pzb2JqZWN0LmNwcDoKKyAgICAgICAgKF9OUE5fRW51bWVyYXRlKToKKwogMjAxNy0wOS0xNCAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFRpbWVsaW5lIHNob3VsZCBzaG93IHdoZW4gZXZlbnRzIHByZXZlbnREZWZhdWx0KCkg
d2FzIGNhbGxlZCBvbiBhbiBldmVudCBvciBub3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2Q3ZGM5NTAyMzA0NjI3
YmIwMjk4YTQ2NzJmMDcyNWYwNWJlMDU2NC4uODEzYTUxNjlhMzZjNGMyMmYxMzg1ZTQ0MTNmMzIy
OTZhMjU3MDM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wOS0xNCAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQgUHJp
dmF0ZVN5bWJvbE1vZGU6OntJbmNsdWRlLEV4Y2x1ZGV9IGZvciBQcm9wZXJ0eU5hbWVBcnJheQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2ODY3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBKU09i
amVjdDo6ZW51bWVyYXRlKToKKwogMjAxNy0wOS0xNCAgTWF1cmVlbiBEYXVtICA8bWRhdW1AYXBw
bGUuY29tPgogCiAgICAgICAgIEludHJvZHVjZSB0aGUgb3B0aW9uIHRvIG1hcmsgYW4gSFRNTCBl
bGVtZW50IGFzIGhhdmluZyBBdXRvRmlsbCBhdmFpbGFibGUuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFu
Z2VMb2cKaW5kZXggMmI3ZDExZjVmOGIwMTU0ZTlhMmI2YTUyOWE3NGNkY2I5MDU4MGMzZi4uNjg3
MTg0ZWY1MmI2NDA3MDlmYjRiZTRhNGZmZTg5YmM5ZjA0MjA3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTE0ICBZdXN1a2UgU3V6dWtpICA8
dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBQcml2YXRlU3ltYm9s
TW9kZTo6e0luY2x1ZGUsRXhjbHVkZX0gZm9yIFByb3BlcnR5TmFtZUFycmF5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4NjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2Nh
cGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdp
bkluc3RhbmNlUHJveHk6OmVudW1lcmF0ZSk6CisKIDIwMTctMDktMTMgIEFuZHkgRXN0ZXMgIDxh
ZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtDRl0gVXBzdHJlYW0gQ0ZOZXR3b3JrLXJlbGF0
ZWQgV2ViS2l0U3lzdGVtSW50ZXJmYWNlIGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU09iamVjdFJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTT2JqZWN0UmVmLmNwcAppbmRleCA3MDJjODIzNTg2M2ZiZTVjM2Y3MjQ0ZmU2NzEyYmI3
NGY2N2FjZTNlLi4yNDliNTU0ZDNiMGJmNDlmZDFjYjM5YzI5ZmRkNTEyMjc5Y2ZhZmFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTT2JqZWN0UmVmLmNwcApAQCAtNjQ3LDcgKzY0Nyw3
IEBAIEpTUHJvcGVydHlOYW1lQXJyYXlSZWYgSlNPYmplY3RDb3B5UHJvcGVydHlOYW1lcyhKU0Nv
bnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBvCiAKICAgICBKU09iamVjdCoganNPYmplY3QgPSB0
b0pTKG9iamVjdCk7CiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBwcm9wZXJ0eU5hbWVzID0g
bmV3IE9wYXF1ZUpTUHJvcGVydHlOYW1lQXJyYXkodm0pOwotICAgIFByb3BlcnR5TmFtZUFycmF5
IGFycmF5KHZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICBQcm9wZXJ0eU5hbWVB
cnJheSBhcnJheSh2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1v
ZGU6OkV4Y2x1ZGUpOwogICAgIGpzT2JqZWN0LT5tZXRob2RUYWJsZSgqdm0pLT5nZXRQcm9wZXJ0
eU5hbWVzKGpzT2JqZWN0LCBleGVjLCBhcnJheSwgRW51bWVyYXRpb25Nb2RlKCkpOwogCiAgICAg
c2l6ZV90IHNpemUgPSBhcnJheS5zaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Jp
bmRpbmdzL1NjcmlwdFZhbHVlLmNwcAppbmRleCAwZjE1YWU3ZDYyOWRiMDYxOTM3ZDFiOGFlMjk4
NDc0M2UyNTA1NjRmLi5kMDA3MGVjNmY5YmI0MmIwN2FlZWY4MzA5NzI0NzE5MmQ1MGQwNmZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKQEAg
LTc5LDcgKzc5LDcgQEAgc3RhdGljIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4ganNUb0luc3BlY3Rv
clZhbHVlKEV4ZWNTdGF0ZSYgc2NyaXB0U3RhdGUsIEpTVmFsdWUKICAgICAgICAgfQogICAgICAg
ICBhdXRvIGluc3BlY3Rvck9iamVjdCA9IEluc3BlY3Rvck9iamVjdDo6Y3JlYXRlKCk7CiAgICAg
ICAgIGF1dG8mIG9iamVjdCA9ICp2YWx1ZS5nZXRPYmplY3QoKTsKLSAgICAgICAgUHJvcGVydHlO
YW1lQXJyYXkgcHJvcGVydHlOYW1lcygmc2NyaXB0U3RhdGUsIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MpOworICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKCZzY3JpcHRT
dGF0ZS52bSgpLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6
RXhjbHVkZSk7CiAgICAgICAgIG9iamVjdC5tZXRob2RUYWJsZSgpLT5nZXRPd25Qcm9wZXJ0eU5h
bWVzKCZvYmplY3QsICZzY3JpcHRTdGF0ZSwgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2Rl
KCkpOwogICAgICAgICBmb3IgKGF1dG8mIG5hbWUgOiBwcm9wZXJ0eU5hbWVzKSB7CiAgICAgICAg
ICAgICBhdXRvIGluc3BlY3RvclZhbHVlID0ganNUb0luc3BlY3RvclZhbHVlKHNjcmlwdFN0YXRl
LCBvYmplY3QuZ2V0KCZzY3JpcHRTdGF0ZSwgbmFtZSksIG1heERlcHRoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PYmplY3RBbGxvY2F0aW9uUHJvZmlsZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxl
LmgKaW5kZXggMzAxYTM1ODBjNTE5NWZlZWVhNTFkZjA0NzI1NjExYTUxYmM4ZDllOC4uZDk4NjVm
NTFlMjRjZTA5MTE4ZjU0MDkyYjA5MWExYjNhYjhhYzUxNCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09iamVjdEFsbG9jYXRpb25Qcm9maWxlLmgKQEAg
LTEzMiw3ICsxMzIsNyBAQCBjbGFzcyBPYmplY3RBbGxvY2F0aW9uUHJvZmlsZSB7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKIAogICAgICAgICBzaXplX3QgY291bnQgPSAwOwotICAgICAgICBQcm9w
ZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3NBbmRTeW1ib2xzKTsKKyAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1l
QXJyYXkoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5
bWJvbE1vZGU6OkluY2x1ZGUpOwogICAgICAgICBwcm90b3R5cGUtPnN0cnVjdHVyZSgpLT5nZXRQ
cm9wZXJ0eU5hbWVzRnJvbVN0cnVjdHVyZSh2bSwgcHJvcGVydHlOYW1lQXJyYXksIEVudW1lcmF0
aW9uTW9kZSgpKTsKICAgICAgICAgUHJvcGVydHlOYW1lQXJyYXlEYXRhOjpQcm9wZXJ0eU5hbWVW
ZWN0b3ImIHByb3BlcnR5TmFtZVZlY3RvciA9IHByb3BlcnR5TmFtZUFycmF5LmRhdGEoKS0+cHJv
cGVydHlOYW1lVmVjdG9yKCk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcGVy
dHlOYW1lVmVjdG9yLnNpemUoKTsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FbnVtZXJhdGlvbk1vZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0VudW1lcmF0aW9uTW9kZS5oCmluZGV4IDdhYmJlZDJlZDkwMDA4YTkzZDE1N2IzMjZl
NjczMGZkYmY2ZTNmZDYuLjMxNzk4Zjk0NmZiMzQyYzlmNDYwZmI4NDVmYmIzOWYzZWIzYmEwMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9k
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0VudW1lcmF0aW9uTW9kZS5o
CkBAIC0zMyw2ICszMywxMSBAQCBlbnVtIGNsYXNzIFByb3BlcnR5TmFtZU1vZGUgewogICAgIFN0
cmluZ3NBbmRTeW1ib2xzID0gU3ltYm9scyB8IFN0cmluZ3MsCiB9OwogCitlbnVtIGNsYXNzIFBy
aXZhdGVTeW1ib2xNb2RlIHsKKyAgICBJbmNsdWRlLAorICAgIEV4Y2x1ZGUKK307CisKIGVudW0g
Y2xhc3MgRG9udEVudW1Qcm9wZXJ0aWVzTW9kZSB7CiAgICAgSW5jbHVkZSwKICAgICBFeGNsdWRl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDI1
ZDIxZjJlZTVjZTNjNzY3MjMxNmFhZjZmN2EwMzVkNmEyMWY5ODEuLjczMGVlODgwYjExZWRiNmJl
NTcwODFlMTczMGEwN2FmODBmYmM0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0ludGxPYmplY3QuY3BwCkBAIC04MzAsNyArODMwLDcgQEAgSlNWYWx1ZSBzdXBwb3J0ZWRM
b2NhbGVzKEV4ZWNTdGF0ZSYgc3RhdGUsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgYXZhaWxhYmxl
TG9jYWwKICAgICAgICAgOiBsb29rdXBTdXBwb3J0ZWRMb2NhbGVzKHN0YXRlLCBhdmFpbGFibGVM
b2NhbGVzLCByZXF1ZXN0ZWRMb2NhbGVzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBKU1ZhbHVlKCkpOwogCi0gICAgUHJvcGVydHlOYW1lQXJyYXkga2V5cygmc3RhdGUsIFByb3Bl
cnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5TmFtZUFycmF5IGtleXMoJnZtLCBQ
cm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAg
ICAgc3VwcG9ydGVkTG9jYWxlcy0+Z2V0T3duUHJvcGVydHlOYW1lcyhzdXBwb3J0ZWRMb2NhbGVz
LCAmc3RhdGUsIGtleXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09OT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT05PYmplY3QuY3BwCmluZGV4IDBjN2YzZDE5M2I3NmUxOTViZTA2MDk0MGE5ZWZhZTcyMDIz
MTBmZTQuLmVhNjg1MDcyMDZiZGYxMDY5MTM5OTMwMDk2MjRjMjczZjQ1ZTlkZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCkBAIC0yMjQsNyArMjI0
LDcgQEAgU3RyaW5naWZpZXI6OlN0cmluZ2lmaWVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTG9j
YWw8VW5rbm93bj4mIHJlcGxhY2VyLCBjb25zdAogICAgIDogbV9leGVjKGV4ZWMpCiAgICAgLCBt
X3JlcGxhY2VyKHJlcGxhY2VyKQogICAgICwgbV91c2luZ0FycmF5UmVwbGFjZXIoZmFsc2UpCi0g
ICAgLCBtX2FycmF5UmVwbGFjZXJQcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MpCisgICAgLCBtX2FycmF5UmVwbGFjZXJQcm9wZXJ0eU5hbWVzKCZleGVjLT52bSgp
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSkK
ICAgICAsIG1fcmVwbGFjZXJDYWxsVHlwZShDYWxsVHlwZTo6Tm9uZSkKIHsKICAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwpAQCAtNDg0LDcgKzQ4NCw3IEBAIGJvb2wgU3RyaW5naWZpZXI6OkhvbGRl
cjo6YXBwZW5kTmV4dFByb3BlcnR5KFN0cmluZ2lmaWVyJiBzdHJpbmdpZmllciwgU3RyaW5nQnVp
CiAgICAgICAgICAgICBpZiAoc3RyaW5naWZpZXIubV91c2luZ0FycmF5UmVwbGFjZXIpCiAgICAg
ICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzID0gc3RyaW5naWZpZXIubV9hcnJheVJlcGxhY2Vy
UHJvcGVydHlOYW1lcy5kYXRhKCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBQcm9wZXJ0eU5hbWVBcnJheSBvYmplY3RQcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFt
ZU1vZGU6OlN0cmluZ3MpOworICAgICAgICAgICAgICAgIFByb3BlcnR5TmFtZUFycmF5IG9iamVj
dFByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQcml2YXRlU3lt
Ym9sTW9kZTo6RXhjbHVkZSk7CiAgICAgICAgICAgICAgICAgbV9vYmplY3QtPm1ldGhvZFRhYmxl
KHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhtX29iamVjdC5nZXQoKSwgZXhlYywgb2JqZWN0UHJv
cGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAgICAgICAgICAgICBtX3Byb3BlcnR5TmFt
ZXMgPSBvYmplY3RQcm9wZXJ0eU5hbWVzLnJlbGVhc2VEYXRhKCk7CkBAIC03MDUsNyArNzA1LDcg
QEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdWUgdW5maWx0ZXJlZCkK
ICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoaW5WYWx1ZSk7CiAg
ICAgICAgICAgICAgICAgb2JqZWN0U3RhY2sucHVzaChvYmplY3QpOwogICAgICAgICAgICAgICAg
IGluZGV4U3RhY2suYXBwZW5kKDApOwotICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBw
ZW5kKFByb3BlcnR5TmFtZUFycmF5KG1fZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncykp
OworICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5
KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1
ZGUpKTsKICAgICAgICAgICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJv
cGVydHlOYW1lcyhvYmplY3QsIG1fZXhlYywgcHJvcGVydHlTdGFjay5sYXN0KCksIEVudW1lcmF0
aW9uTW9kZSgpKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAKaW5kZXggNWY4YjBiM2Y3MWUy
YjNmMTIwMGUwNDRjYzMyODdmNDRiNWIzOGNjNS4uODJiYjBkYzMzZDhhNzUxMDI2MzY0MjBiY2M5
MTI0MDVmM2ExYjBkYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCkBAIC0zNyw3ICszNyw3IEBAIGNv
bnN0IENsYXNzSW5mbyBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3I6OnNfaW5mbyA9IHsgIkpTUHJv
cGVydHlOYW1lRW51bWVyYXRvciIsCiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIEpTUHJvcGVy
dHlOYW1lRW51bWVyYXRvcjo6Y3JlYXRlKFZNJiB2bSkKIHsKICAgICBpZiAoIXZtLmVtcHR5UHJv
cGVydHlOYW1lRW51bWVyYXRvci5nZXQoKSkgewotICAgICAgICBQcm9wZXJ0eU5hbWVBcnJheSBw
cm9wZXJ0eU5hbWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgICAgIFBy
b3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgICAgIHZtLmVtcHR5UHJvcGVy
dHlOYW1lRW51bWVyYXRvciA9IFN0cm9uZzxKU0NlbGw+KHZtLCBjcmVhdGUodm0sIDAsIDAsIDAs
IFdURk1vdmUocHJvcGVydHlOYW1lcykpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzQ2FzdDxKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IqPih2bS5lbXB0eVByb3BlcnR5TmFtZUVudW1lcmF0b3IuZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVFbnVtZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUVudW1lcmF0b3IuaAppbmRleCAxNDU1NTdhN2MxNjE2YWE1NTlmOWY3NDAwNWFkYzk5
ZmNjYzI0YmNhLi5kNDAzMjM4ODY4YTE5ODNlM2YxNTU1YWIwMDA4MzgwYmYwNjdlYmQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuaApAQCAtMTEzLDcgKzExMyw3IEBAIGlubGluZSBKU1Byb3BlcnR5TmFtZUVu
dW1lcmF0b3IqIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
CiAKICAgICB1aW50MzJfdCBudW1iZXJTdHJ1Y3R1cmVQcm9wZXJ0aWVzID0gMDsKIAotICAgIFBy
b3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3Ry
aW5ncyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5
TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKIAogICAgIGlm
IChzdHJ1Y3R1cmUtPmNhbkFjY2Vzc1Byb3BlcnRpZXNRdWlja2x5Rm9yRW51bWVyYXRpb24oKSAm
JiBpbmRleGVkTGVuZ3RoID09IGJhc2UtPmdldEFycmF5TGVuZ3RoKCkpIHsKICAgICAgICAgYmFz
ZS0+bWV0aG9kVGFibGUodm0pLT5nZXRTdHJ1Y3R1cmVQcm9wZXJ0eU5hbWVzKGJhc2UsIGV4ZWMs
IHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAppbmRleCA3YjBkNzBkNDI5
MGNmMjkwYjg4ODA3ZGQxY2ExNTY0ODM0MmFiMGEzLi40ZWM2NGQzYmUwZTE4OWEzNzI0NjExZjQy
Y2RkODk5N2Y0MjViZTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0yMTQsNyArMjE0LDcgQEAgSlNWYWx1ZSBvYmpl
Y3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCogb2IKIHsKICAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0
aWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3NBbmRTeW1ib2xzKTsKKyAgICBQcm9w
ZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0Fu
ZFN5bWJvbHMsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICBvYmplY3QtPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4ZWMsIHByb3BlcnRpZXMs
IEVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIApAQCAtMzE2LDcgKzMxNiw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JBc3NpZ24oRXhlY1N0
YXRlKiBleGVjKQogICAgICAgICBKU09iamVjdCogc291cmNlID0gc291cmNlVmFsdWUudG9PYmpl
Y3QoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAKLSAg
ICAgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2Rl
OjpTdHJpbmdzQW5kU3ltYm9scyk7CisgICAgICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRp
ZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5bWJv
bE1vZGU6OkV4Y2x1ZGUpOwogICAgICAgICBzb3VyY2UtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3du
UHJvcGVydHlOYW1lcyhzb3VyY2UsIGV4ZWMsIHByb3BlcnRpZXMsIEVudW1lcmF0aW9uTW9kZShE
b250RW51bVByb3BlcnRpZXNNb2RlOjpJbmNsdWRlKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7CiAKQEAgLTM1OCw3ICszNTgsOCBAQCBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yQXNzaWduKEV4ZWNTdGF0ZSogZXhlYykKICAg
ICAgICAgaWYgKGZvdW5kU3ltYm9sKSB7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAw
OyBqIDwgbnVtUHJvcGVydGllczsgaisrKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYg
cHJvcGVydHlOYW1lID0gcHJvcGVydGllc1tqXTsKLSAgICAgICAgICAgICAgICBpZiAocHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkgJiYgIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpIHsKKyAg
ICAgICAgICAgICAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKTsKICAgICAgICAg
ICAgICAgICAgICAgYXNzaWduKHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMzgy
LDcgKzM4Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0
b3JWYWx1ZXMoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTQXJyYXkqIHZhbHVlcyA9IGNvbnN0cnVj
dEVtcHR5QXJyYXkoZXhlYywgbnVsbHB0cik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoZXhlYywgUHJvcGVy
dHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGllcygm
dm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRl
KTsKICAgICB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyh0YXJn
ZXQsIGV4ZWMsIHByb3BlcnRpZXMsIEVudW1lcmF0aW9uTW9kZShEb250RW51bVByb3BlcnRpZXNN
b2RlOjpJbmNsdWRlKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIApA
QCAtNTQzLDcgKzU0NCw3IEBAIHN0YXRpYyBKU1ZhbHVlIGRlZmluZVByb3BlcnRpZXMoRXhlY1N0
YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBKU09iamVjdCogcHJvCiAgICAgVk0mIHZtID0g
ZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1v
ZGU6OlN0cmluZ3NBbmRTeW1ib2xzKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5h
bWVzKCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMsIFByaXZhdGVTeW1i
b2xNb2RlOjpFeGNsdWRlKTsKICAgICBhc09iamVjdChwcm9wZXJ0aWVzKS0+bWV0aG9kVGFibGUo
dm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGFzT2JqZWN0KHByb3BlcnRpZXMpLCBleGVjLCBwcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoRG9udEVudW1Qcm9wZXJ0aWVzTW9kZTo6RXhjbHVk
ZSkpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgc2l6ZV90IG51
bVByb3BlcnRpZXMgPSBwcm9wZXJ0eU5hbWVzLnNpemUoKTsKQEAgLTU2OSw5ICs1NzAsOSBAQCBz
dGF0aWMgSlNWYWx1ZSBkZWZpbmVQcm9wZXJ0aWVzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IG9iamVjdCwgSlNPYmplY3QqIHBybwogICAgICAgICB9CiAgICAgfQogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJv
cGVydHlOYW1lID0gcHJvcGVydHlOYW1lc1tpXTsKLSAgICAgICAgaWYgKHByb3BlcnR5TmFtZS5p
c1ByaXZhdGVOYW1lKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byYgcHJv
cGVydHlOYW1lID0gcHJvcGVydHlOYW1lc1tpXTsKKyAgICAgICAgQVNTRVJUKCFwcm9wZXJ0eU5h
bWUuaXNQcml2YXRlTmFtZSgpKTsKKwogICAgICAgICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+
ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Jz
W2ldLCB0cnVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICB9CkBAIC02MjksMTUgKzYzMCwxNCBAQCBib29sIHNldEludGVncml0eUxldmVsKEV4ZWNTdGF0
ZSogZXhlYywgVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgIGlmIChVTkxJS0VMWSghc3Vj
Y2VzcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFByb3BlcnR5TmFtZUFycmF5IHBy
b3BlcnRpZXMoZXhlYywgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAg
IFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpOwogICAgIG9iamVjdC0+
bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgZXhlYywgcHJvcGVy
dGllcywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGllc01vZGU6OkluY2x1ZGUpKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAKICAgICBQcm9wZXJ0eU5h
bWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcHJvcGVydGllcy5lbmQoKTsKICAgICBmb3Ig
KFByb3BlcnR5TmFtZUFycmF5Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gcHJvcGVydGllcy5iZWdp
bigpOyBpdGVyICE9IGVuZDsgKytpdGVyKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gKml0ZXI7Ci0gICAgICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKQot
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8mIHByb3BlcnR5TmFtZSA9ICppdGVy
OworICAgICAgICBBU1NFUlQoIXByb3BlcnR5TmFtZS5pc1ByaXZhdGVOYW1lKCkpOwogCiAgICAg
ICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjOwogICAgICAgICBpZiAobGV2ZWwgPT0gSW50ZWdy
aXR5TGV2ZWw6OlNlYWxlZCkKQEAgLTY3NywxNiArNjc3LDE1IEBAIGJvb2wgdGVzdEludGVncml0
eUxldmVsKEV4ZWNTdGF0ZSogZXhlYywgVk0mIHZtLCBKU09iamVjdCogb2JqZWN0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyA2LiBMZXQga2V5cyBiZSA/IE8uW1tPd25Qcm9wZXJ0
eUtleXNdXSgpLgotICAgIFByb3BlcnR5TmFtZUFycmF5IGtleXMoZXhlYywgUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5nc0FuZFN5bWJvbHMpOworICAgIFByb3BlcnR5TmFtZUFycmF5IGtleXMoJnZt
LCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scywgUHJpdmF0ZVN5bWJvbE1vZGU6
OkV4Y2x1ZGUpOwogICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5nZXRPd25Qcm9wZXJ0eU5h
bWVzKG9iamVjdCwgZXhlYywga2V5cywgRW51bWVyYXRpb25Nb2RlKERvbnRFbnVtUHJvcGVydGll
c01vZGU6OkluY2x1ZGUpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwog
CiAgICAgLy8gNy4gRm9yIGVhY2ggZWxlbWVudCBrIG9mIGtleXMsIGRvCiAgICAgUHJvcGVydHlO
YW1lQXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGtleXMuZW5kKCk7CiAgICAgZm9yIChQcm9w
ZXJ0eU5hbWVBcnJheTo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGtleXMuYmVnaW4oKTsgaXRlciAh
PSBlbmQ7ICsraXRlcikgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9ICppdGVy
OwotICAgICAgICBpZiAocHJvcGVydHlOYW1lLmlzUHJpdmF0ZU5hbWUoKSkKLSAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICBhdXRvJiBwcm9wZXJ0eU5hbWUgPSAqaXRlcjsKKyAgICAgICAg
QVNTRVJUKCFwcm9wZXJ0eU5hbWUuaXNQcml2YXRlTmFtZSgpKTsKIAogICAgICAgICAvLyBhLiBM
ZXQgY3VycmVudERlc2MgYmUgPyBPLltbR2V0T3duUHJvcGVydHldXShrKQogICAgICAgICBQcm9w
ZXJ0eURlc2NyaXB0b3IgZGVzYzsKQEAgLTgzNiw3ICs4MzUsNyBAQCBKU0FycmF5KiBvd25Qcm9w
ZXJ0eUtleXMoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogb2JqZWN0LCBQcm9wZXJ0eU5hbWVN
b2RlIHBybwogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIFByb3BlcnR5TmFtZUFycmF5IHByb3BlcnRpZXMo
ZXhlYywgcHJvcGVydHlOYW1lTW9kZSk7CisgICAgUHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydGll
cygmdm0sIHByb3BlcnR5TmFtZU1vZGUsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAg
ICBvYmplY3QtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIGV4
ZWMsIHByb3BlcnRpZXMsIEVudW1lcmF0aW9uTW9kZShkb250RW51bVByb3BlcnRpZXNNb2RlKSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAKQEAgLTg1NCwxOCAr
ODUzLDI2IEBAIEpTQXJyYXkqIG93blByb3BlcnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2Jq
ZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGUgcHJvCiAKICAgICAvLyBJZiAhbXVzdEZpbHRl
clByb3BlcnR5IGFuZCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzIG1vZGUsIHdlIGRvIG5vdCBu
ZWVkIHRvIGZpbHRlciBvdXQgYW55IGVudHJpZXMgaW4gUHJvcGVydHlOYW1lQXJyYXkuCiAgICAg
Ly8gV2UgY2FuIHVzZSBmYXN0IGFsbG9jYXRpb24gYW5kIGluaXRpYWxpemF0aW9uLgotICAgIGlm
ICghbXVzdEZpbHRlclByb3BlcnR5ICYmIHByb3BlcnR5TmFtZU1vZGUgPT0gUHJvcGVydHlOYW1l
TW9kZTo6U3RyaW5ncyAmJiBwcm9wZXJ0aWVzLnNpemUoKSA8IE1JTl9TUEFSU0VfQVJSQVlfSU5E
RVgpIHsKLSAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpOwotICAgICAgICBpZiAoTElLRUxZKCFnbG9iYWxPYmplY3QtPmlzSGF2aW5nQUJhZFRp
bWUoKSkpIHsKLSAgICAgICAgICAgIHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5z
aXplKCk7Ci0gICAgICAgICAgICBKU0FycmF5KiBrZXlzID0gSlNBcnJheTo6Y3JlYXRlKHZtLCBn
bG9iYWxPYmplY3QtPmFycmF5U3RydWN0dXJlRm9ySW5kZXhpbmdUeXBlRHVyaW5nQWxsb2NhdGlv
bihBcnJheVdpdGhDb250aWd1b3VzKSwgbnVtUHJvcGVydGllcyk7Ci0gICAgICAgICAgICBXcml0
ZUJhcnJpZXI8VW5rbm93bj4qIGJ1ZmZlciA9IGtleXMtPmJ1dHRlcmZseSgpLT5jb250aWd1b3Vz
KCkuZGF0YSgpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1Qcm9wZXJ0
aWVzOyBpKyspIHsKLSAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJv
cGVydGllc1tpXTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoIWlkZW50aWZpZXIuaXNTeW1ib2wo
KSk7Ci0gICAgICAgICAgICAgICAgYnVmZmVyW2ldLnNldCh2bSwga2V5cywganNPd25lZFN0cmlu
Zygmdm0sIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKKyAgICBpZiAocHJvcGVydHlOYW1lTW9kZSAh
PSBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzQW5kU3ltYm9scykgeworICAgICAgICBBU1NFUlQo
cHJvcGVydHlOYW1lTW9kZSA9PSBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzIHx8IHByb3BlcnR5
TmFtZU1vZGUgPT0gUHJvcGVydHlOYW1lTW9kZTo6U3ltYm9scyk7CisgICAgICAgIGlmICghbXVz
dEZpbHRlclByb3BlcnR5ICYmIHByb3BlcnRpZXMuc2l6ZSgpIDwgTUlOX1NQQVJTRV9BUlJBWV9J
TkRFWCkgeworICAgICAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpOworICAgICAgICAgICAgaWYgKExJS0VMWSghZ2xvYmFsT2JqZWN0LT5pc0hh
dmluZ0FCYWRUaW1lKCkpKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IG51bVByb3BlcnRpZXMg
PSBwcm9wZXJ0aWVzLnNpemUoKTsKKyAgICAgICAgICAgICAgICBKU0FycmF5KiBrZXlzID0gSlNB
cnJheTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QtPm9yaWdpbmFsQXJyYXlTdHJ1Y3R1cmVGb3JJ
bmRleGluZ1R5cGUoQXJyYXlXaXRoQ29udGlndW91cyksIG51bVByb3BlcnRpZXMpOworICAgICAg
ICAgICAgICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogYnVmZmVyID0ga2V5cy0+YnV0dGVyZmx5
KCktPmNvbnRpZ3VvdXMoKS5kYXRhKCk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
YXV0byYgaWRlbnRpZmllciA9IHByb3BlcnRpZXNbaV07CisgICAgICAgICAgICAgICAgICAgIGlm
IChwcm9wZXJ0eU5hbWVNb2RlID09IFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaWRlbnRpZmllci5pc1N5bWJvbCgpKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXS5zZXQodm0sIGtleXMsIGpzT3duZWRTdHJpbmco
JnZtLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoaWRlbnRpZmllci5pc1N5bWJvbCgpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcltpXS5zZXQodm0sIGtleXMsIFN5bWJvbDo6
Y3JlYXRlKHZtLCBzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSkp
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHJldHVybiBrZXlzOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIGtleXM7
CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTg5NywxMyArOTA0LDEyIEBAIEpTQXJyYXkqIG93blBy
b3BlcnR5S2V5cyhFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFt
ZU1vZGUgcHJvCiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsg
aSsrKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGllc1tp
XTsKICAgICAgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzU3ltYm9sKCkpOwotICAgICAgICAg
ICAgaWYgKCFpZGVudGlmaWVyLmlzUHJpdmF0ZU5hbWUoKSkgewotICAgICAgICAgICAgICAgIGJv
b2wgaGFzUHJvcGVydHkgPSBmaWx0ZXJQcm9wZXJ0eUlmTmVlZGVkKGlkZW50aWZpZXIpOwotICAg
ICAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFoYXNQ
cm9wZXJ0eSk7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KQotICAgICAgICAgICAg
ICAgICAgICBwdXNoRGlyZWN0KGV4ZWMsIGtleXMsIFN5bWJvbDo6Y3JlYXRlKHZtLCBzdGF0aWNf
Y2FzdDxTeW1ib2xJbXBsJj4oKmlkZW50aWZpZXIuaW1wbCgpKSkpOwotICAgICAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAgICAgICAgfQorICAg
ICAgICAgICAgQVNTRVJUKCFpZGVudGlmaWVyLmlzUHJpdmF0ZU5hbWUoKSk7CisgICAgICAgICAg
ICBib29sIGhhc1Byb3BlcnR5ID0gZmlsdGVyUHJvcGVydHlJZk5lZWRlZChpZGVudGlmaWVyKTsK
KyAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFoYXNQ
cm9wZXJ0eSk7CisgICAgICAgICAgICBpZiAoaGFzUHJvcGVydHkpCisgICAgICAgICAgICAgICAg
cHVzaERpcmVjdChleGVjLCBrZXlzLCBTeW1ib2w6OmNyZWF0ZSh2bSwgc3RhdGljX2Nhc3Q8U3lt
Ym9sSW1wbCY+KCppZGVudGlmaWVyLmltcGwoKSkpKTsKKyAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTkxMywxNSArOTE5LDE3IEBAIEpTQXJyYXkqIG93blByb3BlcnR5S2V5cyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBvYmplY3QsIFByb3BlcnR5TmFtZU1vZGUgcHJvCiAgICAgICAg
IHNpemVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zaXplKCk7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbnVtUHJvcGVydGllczsgaSsrKSB7CiAgICAgICAgICAgICBjb25z
dCBhdXRvJiBpZGVudGlmaWVyID0gcHJvcGVydGllc1tpXTsKLSAgICAgICAgICAgIGlmIChpZGVu
dGlmaWVyLmlzU3ltYm9sKCkgJiYgIWlkZW50aWZpZXIuaXNQcml2YXRlTmFtZSgpKQorICAgICAg
ICAgICAgaWYgKGlkZW50aWZpZXIuaXNTeW1ib2woKSkgeworICAgICAgICAgICAgICAgIEFTU0VS
VCghaWRlbnRpZmllci5pc1ByaXZhdGVOYW1lKCkpOwogICAgICAgICAgICAgICAgIHByb3BlcnR5
U3ltYm9scy5hcHBlbmQoaWRlbnRpZmllcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBib29sIGhhc1Byb3BlcnR5ID0gZmlsdGVyUHJvcGVydHlJZk5lZWRlZChpZGVudGlm
aWVyKTsKLSAgICAgICAgICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24o
KSB8fCAhaGFzUHJvcGVydHkpOwotICAgICAgICAgICAgICAgIGlmIChoYXNQcm9wZXJ0eSkKLSAg
ICAgICAgICAgICAgICAgICAgcHVzaERpcmVjdChleGVjLCBrZXlzLCBqc093bmVkU3RyaW5nKGV4
ZWMsIGlkZW50aWZpZXIuc3RyaW5nKCkpKTsKLSAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eSA9IGZpbHRlclByb3BlcnR5
SWZOZWVkZWQoaWRlbnRpZmllcik7CisgICAgICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFzY29w
ZS5leGNlcHRpb24oKSB8fCAhaGFzUHJvcGVydHkpOworICAgICAgICAgICAgaWYgKGhhc1Byb3Bl
cnR5KQorICAgICAgICAgICAgICAgIHB1c2hEaXJlY3QoZXhlYywga2V5cywganNPd25lZFN0cmlu
ZyhleGVjLCBpZGVudGlmaWVyLnN0cmluZygpKSk7CisgICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFRvIGVuc3Vy
ZSB0aGUgb3JkZXIgZGVmaW5lZCBpbiB0aGUgc3BlYyAoOS4xLjEyKSwgd2UgYXBwZW5kIHN5bWJv
bHMgYXQgdGhlIGxhc3QgZWxlbWVudHMgb2Yga2V5cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5TmFtZUFycmF5LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Qcm9wZXJ0eU5hbWVBcnJheS5oCmluZGV4IGE3YWZlNzhmNmRmYzE2NTdm
NDcwM2FmZWI0YjcyMDQ0MTQyNmIwM2IuLjVlOTNiNzlhYmY1NjAyMzRlYWU4YmY0YTllNzIwMTUw
ZTdlMTRhZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3Bl
cnR5TmFtZUFycmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVy
dHlOYW1lQXJyYXkuaApAQCAtNDcsMTUgKzQ3LDExIEBAIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5
RGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFByb3BlcnR5TmFtZUFycmF5RGF0YT4gewogLy8gRklY
TUU6IFJlbmFtZSB0byBQcm9wZXJ0eU5hbWVBcnJheUJ1aWxkZXIuCiBjbGFzcyBQcm9wZXJ0eU5h
bWVBcnJheSB7CiBwdWJsaWM6Ci0gICAgUHJvcGVydHlOYW1lQXJyYXkoVk0qIHZtLCBQcm9wZXJ0
eU5hbWVNb2RlIG1vZGUpCisgICAgUHJvcGVydHlOYW1lQXJyYXkoVk0qIHZtLCBQcm9wZXJ0eU5h
bWVNb2RlIHByb3BlcnR5TmFtZU1vZGUsIFByaXZhdGVTeW1ib2xNb2RlIHByaXZhdGVTeW1ib2xN
b2RlKQogICAgICAgICA6IG1fZGF0YShQcm9wZXJ0eU5hbWVBcnJheURhdGE6OmNyZWF0ZSgpKQog
ICAgICAgICAsIG1fdm0odm0pCi0gICAgICAgICwgbV9tb2RlKG1vZGUpCi0gICAgewotICAgIH0K
LQotICAgIFByb3BlcnR5TmFtZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lTW9k
ZSBtb2RlKQotICAgICAgICA6IFByb3BlcnR5TmFtZUFycmF5KCZleGVjLT52bSgpLCBtb2RlKQor
ICAgICAgICAsIG1fcHJvcGVydHlOYW1lTW9kZShwcm9wZXJ0eU5hbWVNb2RlKQorICAgICAgICAs
IG1fcHJpdmF0ZVN5bWJvbE1vZGUocHJpdmF0ZVN5bWJvbE1vZGUpCiAgICAgewogICAgIH0KIApA
QCAtODMsMTcgKzc5LDIxIEBAIGNsYXNzIFByb3BlcnR5TmFtZUFycmF5IHsKICAgICBjb25zdF9p
dGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9y
KCkuYmVnaW4oKTsgfQogICAgIGNvbnN0X2l0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCkuZW5kKCk7IH0KIAotICAgIFByb3BlcnR5TmFtZU1v
ZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW9kZTsgfQogICAgIGJvb2wgaW5jbHVkZVN5bWJv
bFByb3BlcnRpZXMoKSBjb25zdDsKICAgICBib29sIGluY2x1ZGVTdHJpbmdQcm9wZXJ0aWVzKCkg
Y29uc3Q7CiAKKyAgICBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUoKSBjb25zdCB7
IHJldHVybiBtX3Byb3BlcnR5TmFtZU1vZGU7IH0KKyAgICBQcml2YXRlU3ltYm9sTW9kZSBwcml2
YXRlU3ltYm9sTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpdmF0ZVN5bWJvbE1vZGU7IH0KKwog
cHJpdmF0ZToKKyAgICB2b2lkIGFkZFVuY2hlY2tlZEludGVybmFsKFVuaXF1ZWRTdHJpbmdJbXBs
Kik7CiAgICAgYm9vbCBpc1VpZE1hdGNoZWRUb1R5cGVNb2RlKFVuaXF1ZWRTdHJpbmdJbXBsKiBp
ZGVudGlmaWVyKTsKIAogICAgIFJlZlB0cjxQcm9wZXJ0eU5hbWVBcnJheURhdGE+IG1fZGF0YTsK
ICAgICBIYXNoU2V0PFVuaXF1ZWRTdHJpbmdJbXBsKj4gbV9zZXQ7CiAgICAgVk0qIG1fdm07Ci0g
ICAgUHJvcGVydHlOYW1lTW9kZSBtX21vZGU7CisgICAgUHJvcGVydHlOYW1lTW9kZSBtX3Byb3Bl
cnR5TmFtZU1vZGU7CisgICAgUHJpdmF0ZVN5bWJvbE1vZGUgbV9wcml2YXRlU3ltYm9sTW9kZTsK
IH07CiAKIEFMV0FZU19JTkxJTkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkKGNvbnN0IElk
ZW50aWZpZXImIGlkZW50aWZpZXIpCkBAIC0xMDEsMTEgKzEwMSwxNiBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgUHJvcGVydHlOYW1lQXJyYXk6OmFkZChjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVy
KQogICAgIGFkZChpZGVudGlmaWVyLmltcGwoKSk7CiB9CiAKK0FMV0FZU19JTkxJTkUgdm9pZCBQ
cm9wZXJ0eU5hbWVBcnJheTo6YWRkVW5jaGVja2VkSW50ZXJuYWwoVW5pcXVlZFN0cmluZ0ltcGwq
IGlkZW50aWZpZXIpCit7CisgICAgbV9kYXRhLT5wcm9wZXJ0eU5hbWVWZWN0b3IoKS5hcHBlbmQo
SWRlbnRpZmllcjo6ZnJvbVVpZChtX3ZtLCBpZGVudGlmaWVyKSk7Cit9CisKIEFMV0FZU19JTkxJ
TkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRkVW5jaGVja2VkKFVuaXF1ZWRTdHJpbmdJbXBs
KiBpZGVudGlmaWVyKQogewogICAgIGlmICghaXNVaWRNYXRjaGVkVG9UeXBlTW9kZShpZGVudGlm
aWVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fZGF0YS0+cHJvcGVydHlOYW1lVmVjdG9yKCku
YXBwZW5kKElkZW50aWZpZXI6OmZyb21VaWQobV92bSwgaWRlbnRpZmllcikpOworICAgIGFkZFVu
Y2hlY2tlZEludGVybmFsKGlkZW50aWZpZXIpOwogfQogCiBBTFdBWVNfSU5MSU5FIHZvaWQgUHJv
cGVydHlOYW1lQXJyYXk6OmFkZChVbmlxdWVkU3RyaW5nSW1wbCogaWRlbnRpZmllcikKQEAgLTEy
OSwyNCArMTM0LDI5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBQcm9wZXJ0eU5hbWVBcnJheTo6YWRk
KFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGFkZFVuY2hlY2tlZChpZGVudGlmaWVyKTsKKyAgICBhZGRVbmNoZWNrZWRJbnRl
cm5hbChpZGVudGlmaWVyKTsKIH0KIAogQUxXQVlTX0lOTElORSBib29sIFByb3BlcnR5TmFtZUFy
cmF5Ojppc1VpZE1hdGNoZWRUb1R5cGVNb2RlKFVuaXF1ZWRTdHJpbmdJbXBsKiBpZGVudGlmaWVy
KQogewotICAgIGlmIChpZGVudGlmaWVyLT5pc1N5bWJvbCgpKQotICAgICAgICByZXR1cm4gaW5j
bHVkZVN5bWJvbFByb3BlcnRpZXMoKTsKKyAgICBpZiAoaWRlbnRpZmllci0+aXNTeW1ib2woKSkg
eworICAgICAgICBpZiAoIWluY2x1ZGVTeW1ib2xQcm9wZXJ0aWVzKCkpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChVTkxJS0VMWShtX3ByaXZhdGVTeW1ib2xNb2RlID09
IFByaXZhdGVTeW1ib2xNb2RlOjpJbmNsdWRlKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICByZXR1cm4gIXN0YXRpY19jYXN0PFN5bWJvbEltcGwqPihpZGVudGlmaWVyKS0+aXNQ
cml2YXRlKCk7CisgICAgfQogICAgIHJldHVybiBpbmNsdWRlU3RyaW5nUHJvcGVydGllcygpOwog
fQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlOYW1lQXJyYXk6OmluY2x1ZGVTeW1ib2xQ
cm9wZXJ0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5
aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KG1fbW9kZSkgJiBzdGF0aWNfY2FzdDxz
dGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVNb2RlPjo6dHlwZT4oUHJvcGVydHlOYW1l
TW9kZTo6U3ltYm9scyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHN0ZDo6dW5kZXJseWluZ190
eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihtX3Byb3BlcnR5TmFtZU1vZGUpICYgc3RhdGlj
X2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+KFByb3Bl
cnR5TmFtZU1vZGU6OlN5bWJvbHMpOwogfQogCiBBTFdBWVNfSU5MSU5FIGJvb2wgUHJvcGVydHlO
YW1lQXJyYXk6OmluY2x1ZGVTdHJpbmdQcm9wZXJ0aWVzKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVydHlOYW1lTW9kZT46OnR5cGU+
KG1fbW9kZSkgJiBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZTxQcm9wZXJ0eU5hbWVN
b2RlPjo6dHlwZT4oUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncyk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPFByb3BlcnR5TmFtZU1vZGU+Ojp0eXBlPihtX3By
b3BlcnR5TmFtZU1vZGUpICYgc3RhdGljX2Nhc3Q8c3RkOjp1bmRlcmx5aW5nX3R5cGU8UHJvcGVy
dHlOYW1lTW9kZT46OnR5cGU+KFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1Byb3h5T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3h5T2Jq
ZWN0LmNwcAppbmRleCA5MjMxYjBlMTA0YjE3MWI4NGY2YjY0N2RkNzAzZDY4YjliZjNjYjAyLi4w
N2JlYzA5YjFhYTA0YTgzMGQ3Y2FhODRjNDZiNmVkZGFiNjc2YTEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm94eU9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJveHlPYmplY3QuY3BwCkBAIC05MTEsNyArOTExLDcgQEAg
dm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYKICAgICBKU1ZhbHVlIGFycmF5TGlrZU9iamVjdCA9IGNh
bGwoZXhlYywgb3duS2V5c01ldGhvZCwgY2FsbFR5cGUsIGNhbGxEYXRhLCBoYW5kbGVyLCBhcmd1
bWVudHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICBQ
cm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUgPSB0cmFwUmVzdWx0Lm1vZGUoKTsKKyAg
ICBQcm9wZXJ0eU5hbWVNb2RlIHByb3BlcnR5TmFtZU1vZGUgPSB0cmFwUmVzdWx0LnByb3BlcnR5
TmFtZU1vZGUoKTsKICAgICBSdW50aW1lVHlwZU1hc2sgcmVzdWx0RmlsdGVyID0gMDsKICAgICBz
d2l0Y2ggKHByb3BlcnR5TmFtZU1vZGUpIHsKICAgICBjYXNlIFByb3BlcnR5TmFtZU1vZGU6OlN5
bWJvbHM6CkBAIC05NDksNyArOTQ5LDcgQEAgdm9pZCBQcm94eU9iamVjdDo6cGVyZm9ybUdldE93
blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYKICAgICBi
b29sIHRhcmdldElzRXhlbnNpYmxlID0gdGFyZ2V0LT5pc0V4dGVuc2libGUoZXhlYyk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIFByb3BlcnR5TmFtZUFy
cmF5IHRhcmdldEtleXMoJnZtLCBwcm9wZXJ0eU5hbWVNb2RlKTsKKyAgICBQcm9wZXJ0eU5hbWVB
cnJheSB0YXJnZXRLZXlzKCZ2bSwgcHJvcGVydHlOYW1lTW9kZSwgdHJhcFJlc3VsdC5wcml2YXRl
U3ltYm9sTW9kZSgpKTsKICAgICB0YXJnZXQtPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVy
dHlOYW1lcyh0YXJnZXQsIGV4ZWMsIHRhcmdldEtleXMsIGVudW1lcmF0aW9uTW9kZSk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICBWZWN0b3I8VW5pcXVlZFN0
cmluZ0ltcGwqPiB0YXJnZXRDb25maWd1cmFibGVLZXlzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UmVjb3JkLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRSZWNvcmQuaAppbmRleCBlMWIwNjhhNDNhZjY2MDU0Yjk3
YWM5ZDg2ZDE0NGY4NmEwYjExNzRmLi5lYmE5ODc2MGYxNTQ3MGRiYTY1ZjI4OGVhZTRmYjA4ZjFi
ZjVkODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnRSZWNvcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRS
ZWNvcmQuaApAQCAtODUsNyArODUsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBLLCB0eXBlbmFtZSBW
PiBzdHJ1Y3QgQ29udmVydGVyPElETFJlY29yZDxLLCBWPj4gOiBEZWZhdWx0Q29udgogICAgICAg
ICBSZXR1cm5UeXBlIHJlc3VsdDsKICAgICAKICAgICAgICAgLy8gNC4gTGV0IGtleXMgYmUgPyBP
LltbT3duUHJvcGVydHlLZXlzXV0oKS4KLSAgICAgICAgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSBr
ZXlzKCZ2bSwgSlNDOjpQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAgSlNDOjpQ
cm9wZXJ0eU5hbWVBcnJheSBrZXlzKCZ2bSwgSlNDOjpQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdz
LCBKU0M6OlByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKICAgICAgICAgb2JqZWN0LT5tZXRo
b2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCAmc3RhdGUsIGtleXMsIEpT
Qzo6RW51bWVyYXRpb25Nb2RlKCkpOwogCiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcAppbmRleCBjM2UwNjMxNThlZmU3ZmU2ZjM3YWYyODYxMjA5ZGY1NGQy
MWUyNGMxLi4zYzE4YTUxNTYxODRlNDk3YWViYmUwMjgzYjFiNzYwYjNiNTc1YzQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKQEAgLTE0OTAsNyArMTQ5MCw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2Vy
aWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIGluZGV4
U3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBsZW5ndGhTdGFjay5yZW1v
dmVMYXN0KCk7CiAKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJv
cGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAg
ICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2
bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUp
KTsKICAgICAgICAgICAgICAgICAgICAgYXJyYXktPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duTm9u
SW5kZXhQcm9wZXJ0eU5hbWVzKGFycmF5LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBF
bnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVN0YWNr
Lmxhc3QoKS5zaXplKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbkluZGV4
UHJvcGVydGllc1RhZyk7CkBAIC0xNTQwLDcgKzE1NDAsNyBAQCBTZXJpYWxpemF0aW9uUmV0dXJu
Q29kZSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShKU1ZhbHVlIGluKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gU2VyaWFsaXphdGlvblJldHVybkNvZGU6OkRhdGFDbG9uZUVycm9yOwog
ICAgICAgICAgICAgICAgIGlucHV0T2JqZWN0U3RhY2suYXBwZW5kKGluT2JqZWN0KTsKICAgICAg
ICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKLSAgICAgICAgICAgICAgICBwcm9wZXJ0
eVN0YWNrLmFwcGVuZChQcm9wZXJ0eU5hbWVBcnJheShtX2V4ZWMsIFByb3BlcnR5TmFtZU1vZGU6
OlN0cmluZ3MpKTsKKyAgICAgICAgICAgICAgICBwcm9wZXJ0eVN0YWNrLmFwcGVuZChQcm9wZXJ0
eU5hbWVBcnJheSgmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MsIFByaXZhdGVTeW1ib2xN
b2RlOjpFeGNsdWRlKSk7CiAgICAgICAgICAgICAgICAgaW5PYmplY3QtPm1ldGhvZFRhYmxlKHZt
KS0+Z2V0T3duUHJvcGVydHlOYW1lcyhpbk9iamVjdCwgbV9leGVjLCBwcm9wZXJ0eVN0YWNrLmxh
c3QoKSwgRW51bWVyYXRpb25Nb2RlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgb2Jq
ZWN0U3RhcnRWaXNpdE1lbWJlcjoKQEAgLTE2MDgsNyArMTYwOCw3IEBAIFNlcmlhbGl6YXRpb25S
ZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKEpTVmFsdWUgaW4pCiAgICAgICAg
ICAgICAgICAgICAgIG1hcEl0ZXJhdG9yU3RhY2sucmVtb3ZlTGFzdCgpOwogICAgICAgICAgICAg
ICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRPYmplY3RTdGFjay5sYXN0KCk7CiAgICAg
ICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNEb3duY2FzdDxKU01hcCo+KHZtLCBvYmpl
Y3QpKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlTdGFjay5hcHBlbmQoUHJvcGVydHlO
YW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKSk7CisgICAgICAgICAg
ICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3BlcnR5TmFtZUFycmF5KCZ2bSwgUHJv
cGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJvbE1vZGU6OkV4Y2x1ZGUpKTsKICAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSktPmdldE93blByb3BlcnR5
TmFtZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2subGFzdCgpLCBFbnVtZXJhdGlvbk1v
ZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5vbk1hcFByb3BlcnRpZXNUYWcpOwog
ICAgICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVuZCgwKTsKQEAgLTE2NTIsNyArMTY1
Miw3IEBAIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXpl
KEpTVmFsdWUgaW4pCiAgICAgICAgICAgICAgICAgICAgIHNldEl0ZXJhdG9yU3RhY2sucmVtb3Zl
TGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gaW5wdXRPYmpl
Y3RTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChqc0R5bmFtaWNEb3du
Y2FzdDxKU1NldCo+KHZtLCBvYmplY3QpKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlT
dGFjay5hcHBlbmQoUHJvcGVydHlOYW1lQXJyYXkobV9leGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpT
dHJpbmdzKSk7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5U3RhY2suYXBwZW5kKFByb3Bl
cnR5TmFtZUFycmF5KCZ2bSwgUHJvcGVydHlOYW1lTW9kZTo6U3RyaW5ncywgUHJpdmF0ZVN5bWJv
bE1vZGU6OkV4Y2x1ZGUpKTsKICAgICAgICAgICAgICAgICAgICAgb2JqZWN0LT5tZXRob2RUYWJs
ZSh2bSktPmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBtX2V4ZWMsIHByb3BlcnR5U3RhY2su
bGFzdCgpLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgICAgICAgICAgICAgIHdyaXRlKE5v
blNldFByb3BlcnRpZXNUYWcpOwogICAgICAgICAgICAgICAgICAgICBpbmRleFN0YWNrLmFwcGVu
ZCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvTlBfanNvYmplY3QuY3BwCmluZGV4IGVmOGE0MmM2Mjcw
Nzg0NDU5YjQ0ZDM0NDRkMGMzNDA4MjM1ODE3ZjQuLjEyYmI5ZTU0ODAzZmNlZTgyNWNkNGUyZWY3
YTc5NmM1M2U1MTA4NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9OUF9qc29i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL05QX2pzb2JqZWN0LmNwcApAQCAt
NDg0LDcgKzQ4NCw3IEBAIGJvb2wgX05QTl9FbnVtZXJhdGUoTlBQLCBOUE9iamVjdCogbywgTlBJ
ZGVudGlmaWVyKiogaWRlbnRpZmllciwgdWludDMyX3QqIGNvdW50CiAgICAgICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKIAogICAgICAgICBFeGVjU3RhdGUqIGV4ZWMg
PSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAgUHJvcGVydHlOYW1lQXJyYXkg
cHJvcGVydHlOYW1lcyhleGVjLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzKTsKKyAgICAgICAg
UHJvcGVydHlOYW1lQXJyYXkgcHJvcGVydHlOYW1lcygmdm0sIFByb3BlcnR5TmFtZU1vZGU6OlN0
cmluZ3MsIFByaXZhdGVTeW1ib2xNb2RlOjpFeGNsdWRlKTsKIAogICAgICAgICBvYmotPmltcC0+
bWV0aG9kVGFibGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG9iai0+aW1wLCBleGVjLCBwcm9wZXJ0
eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUoKSk7CiAgICAgICAgIHVuc2lnbmVkIHNpemUgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4ocHJvcGVydHlOYW1lcy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApp
bmRleCBmM2Y3OWY0Y2ZhMzdmMjRkMDM0MWU5YmZhY2FkY2Q4NjZjNzYyNDdhLi44ZDBhMTQ1YThi
NTA4NWZjN2U2NTkwYmY5NzQwYmY2MTVjZTQzMTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUEpTT2JqZWN0LmNwcApAQCAtMjUz
LDcgKzI1Myw3IEBAIGJvb2wgTlBKU09iamVjdDo6ZW51bWVyYXRlKE5QSWRlbnRpZmllcioqIGlk
ZW50aWZpZXJzLCB1aW50MzJfdCogaWRlbnRpZmllckNvdW50CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBKU0xvY2tIb2xkZXIgbG9jayh2bSk7CiAKLSAgICBQcm9wZXJ0eU5hbWVBcnJh
eSBwcm9wZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFBy
b3BlcnR5TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJp
bmdzLCBQcml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgbV9qc09iamVjdC0+bWV0aG9k
VGFibGUodm0pLT5nZXRQcm9wZXJ0eU5hbWVzKG1fanNPYmplY3QuZ2V0KCksIGV4ZWMsIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSgpKTsKIAogICAgIE5QSWRlbnRpZmllciogbmFtZUlk
ZW50aWZpZXJzID0gbnBuTWVtTmV3QXJyYXk8TlBJZGVudGlmaWVyPihwcm9wZXJ0eU5hbWVzLnNp
emUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL0hvc3Rl
ZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkluc3RhbmNlUHJveHkubW0KaW5kZXggMmY2
MGYzODk0MWE1MGVkOTdiNjFjZDBiYWM1YzkxMjdhNWZmMDdlZS4uOTk4NDE1MWZjY2Q5OGEzNzQy
ZWY4ZTgyYTY1Zjk3OGY3ZjIxZTNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5JbnN0YW5jZVByb3h5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSW5zdGFu
Y2VQcm94eS5tbQpAQCAtMTI3Niw3ICsxMjc2LDcgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHk6OmVudW1lcmF0ZSh1aW50MzJfdCBvYmplY3RJRCwgZGF0YV90JiByZXN1bHREYXQK
IAogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IGZyYW1lLT5zY3JpcHQoKS5nbG9iYWxPYmplY3QocGx1
Z2luV29ybGQoKSktPmdsb2JhbEV4ZWMoKTsKICAKLSAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9w
ZXJ0eU5hbWVzKGV4ZWMsIFByb3BlcnR5TmFtZU1vZGU6OlN0cmluZ3MpOworICAgIFByb3BlcnR5
TmFtZUFycmF5IHByb3BlcnR5TmFtZXMoJnZtLCBQcm9wZXJ0eU5hbWVNb2RlOjpTdHJpbmdzLCBQ
cml2YXRlU3ltYm9sTW9kZTo6RXhjbHVkZSk7CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSh2bSkt
PmdldFByb3BlcnR5TmFtZXMob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlv
bk1vZGUoKSk7CiAKICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXkqPiBhcnJheSA9IGFkb3B0
TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9D
aGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCAwOTI4YWMzNjVjNzc3YzJiZGQxODAy
NjkwN2Q2NjMxZTFkYTJkMGUwLi42YzMwNjQxNTgzNGI2ZTk5M2EzN2FmNTdjZjViMzFkMjljM2Q3
OWZlIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTA5LTE0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50
ZWFAZ21haWwuY29tPgorCisgICAgICAgIFtKU0NdIEFkZCBQcml2YXRlU3ltYm9sTW9kZTo6e0lu
Y2x1ZGUsRXhjbHVkZX0gZm9yIFByb3BlcnR5TmFtZUFycmF5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzY4NjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgorCisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL29iamVjdC1nZXQtb3du
LXByb3BlcnR5LXN5bWJvbHMuanM6IEFkZGVkLgorICAgICAgICAodGVzdCk6CisKIDIwMTctMDkt
MTMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJvbGxpbmcgb3V0
IHIyMjE4MzI6IFJlZ3Jlc3NlcyBTcGVlZG9tZXRlciBieSB+NCUgYW5kIERyb21hZW8gQ1NTIFlV
SSBieSB+MjAlLgpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvb2JqZWN0LWdl
dC1vd24tcHJvcGVydHktc3ltYm9scy5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL29iamVj
dC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM1NmFjYjNkYzlhZmMx
YzY4MzE0MmE2YzA1ODQ2OWUzOWQ2YzExMAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWlj
cm9iZW5jaG1hcmtzL29iamVjdC1nZXQtb3duLXByb3BlcnR5LXN5bWJvbHMuanMKQEAgLTAsMCAr
MSwxMyBAQAordmFyIG9iamVjdCA9IHt9OworZm9yICh2YXIgaSA9IDA7IGkgPCAxZTM7ICsraSkg
eworICAgIG9iamVjdFtTeW1ib2woaSArICdwcm9wJyldID0gaTsKK30KKworZnVuY3Rpb24gdGVz
dChvYmplY3QpCit7CisgICAgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2Jq
ZWN0KTsKK30KK25vSW5saW5lKHRlc3QpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlMzsgKytp
KQorICAgIHRlc3Qob2JqZWN0KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>