<?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>205673</bug_id>
          
          <creation_ts>2020-01-01 06:01:39 -0800</creation_ts>
          <short_desc>Make SelectorCompiler interface use CompiledSelector type</short_desc>
          <delta_ts>2020-01-01 13:24:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602068</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-01 06:01:39 -0800</bug_when>
    <thetext>Simplify the clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602069</commentid>
    <comment_count>1</comment_count>
      <attachid>386578</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-01 06:30:10 -0800</bug_when>
    <thetext>Created attachment 386578
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602091</commentid>
    <comment_count>2</comment_count>
      <attachid>386585</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-01-01 12:07:03 -0800</bug_when>
    <thetext>Created attachment 386585
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602101</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-01 13:04:50 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386585:

highlight/highlight-world-leak.html bug 205643 (author: megan_gardner@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602104</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-01 13:05:01 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386585:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602108</commentid>
    <comment_count>5</comment_count>
      <attachid>386585</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-01 13:23:01 -0800</bug_when>
    <thetext>Comment on attachment 386585
patch

Clearing flags on attachment: 386585

Committed r253971: &lt;https://trac.webkit.org/changeset/253971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602109</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-01 13:23:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602110</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-01 13:24:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58263519&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386578</attachid>
            <date>2020-01-01 06:30:10 -0800</date>
            <delta_ts>2020-01-01 12:07:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>selectordata-compiledselector.patch</filename>
            <type>text/plain</type>
            <size>20882</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTFmNDVmZGEwMi4uMTY3ODYyYTUwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wMS0wMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWFrZSBTZWxlY3RvckNvbXBpbGVyIGludGVyZmFjZSB1c2UgQ29tcGlsZWRT
ZWxlY3RvciB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3RvckNvbXBpbGVyIGludGVyZmFjZSBpcyBjdXJyZW50bHkgcmF0aGVyIGxvdy1s
ZXZlbCwgdGFraW5nIHZvaWQqIGNvZGUgcmVmZXJlbmNlcy4KKyAgICAgICAgRXhwYW5kIHVzZSBv
ZiBDb21waWxlZFNlbGVjdG9yIHR5cGUgdG8gc2ltcGxpZnkgY2xpZW50cy4KKworICAgICAgICAq
IGNzc2ppdC9Db21waWxlZFNlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDb21waWxlZFNl
bGVjdG9yOjp3YXNVc2VkKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpjb21waWxlU2VsZWN0b3IpOgor
CisgICAgICAgIEdlbmVyYXRlIGNvZGUgZGlyZWN0b3J5IHRvIGEgQ29tcGlsZWRTZWxlY3Rvci4K
KworICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVj
a2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cXVlcnlT
ZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCk6CisKKyAg
ICAgICAgVGFrZSBDb21waWxlZFNlbGVjdG9yLgorCisgICAgICAgICogZG9tL1NlbGVjdG9yUXVl
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRh
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGls
ZWRTaW1wbGVTZWxlY3RvckNoZWNrZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29u
dGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRl
Q29tcGlsZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvckRhdGFMaXN0Ojpjb21waWxlU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjppc0Nv
bXBpbGVkU2VsZWN0b3IpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpTZWxlY3RvckRhdGE6OlNlbGVj
dG9yRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpT
ZWxlY3RvckRhdGE6On5TZWxlY3RvckRhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
U2VsZWN0b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRhOjpjb21waWxlZFNlbGVjdG9yVXNlZCBjb25z
dCk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVwbGFjZSBTZWxlY3RvckRhdGEgZmllbGRzIHdpdGgg
YSBDb21waWxlZFNlbGVjdG9yIG1lbWJlci4KKworICAgICAgICAqIHN0eWxlL0VsZW1lbnRSdWxl
Q29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6cnVsZU1hdGNoZXMpOgorCiAyMDE5LTEyLTMxICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBTdHlsZVJ1bGUgYWNjZXNzb3IgaW4gUnVsZURhdGEgc2hv
dWxkIHJldHVybiBhIGNvbnN0IHJlZmVyZW5jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9Db21waWxl
ZFNlbGVjdG9yLmgKaW5kZXggYzYxNDk1MDU2ZDQuLjFjNmExM2MwODE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvQ29tcGlsZWRTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9Db21waWxlZFNlbGVjdG9yLmgKQEAgLTMwLDkgKzMwLDExIEBACiAjaW5jbHVk
ZSAiQ1NTUHRyVGFnLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvTWFjcm9Bc3NlbWJsZXJD
b2RlUmVmLmg+CiAKKyNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcgMAorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWVudW0gY2xhc3MgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyB7
CitlbnVtIGNsYXNzIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgOiB1aW50OF90IHsKICAgICBO
b3RDb21waWxlZCwKICAgICBDYW5ub3RDb21waWxlLAogICAgIFNpbXBsZVNlbGVjdG9yQ2hlY2tl
ciwKQEAgLTQzLDggKzQ1LDEyIEBAIHN0cnVjdCBDb21waWxlZFNlbGVjdG9yIHsKICAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1
cyBzdGF0dXMgeyBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCB9OwogICAg
IEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENTU1NlbGVjdG9yUHRyVGFnPiBjb2RlUmVmOwor
CiAjaWYgZGVmaW5lZChDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORykgJiYgQ1NTX1NFTEVDVE9S
X0pJVF9QUk9GSUxJTkcKICAgICB1bnNpZ25lZCB1c2VDb3VudCB7IDAgfTsKKyAgICB2b2lkIHdh
c1VzZWQoKSB7ICsrdXNlQ291bnQ7IH0KKyNlbHNlCisgICAgdm9pZCB3YXNVc2VkKCkgeyB9CiAj
ZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNv
bXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApp
bmRleCBmMmNhZGZhZDA2My4uNWJhYTA2OWU3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQv
U2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTM5NiwxMiArMzk2LDE5IEBAIHN0YXRpYyBGdW5jdGlv
blR5cGUgY29uc3RydWN0RnJhZ21lbnRzKGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWN0b3Is
IFNlbGVjdG9yCiAKIHN0YXRpYyB2b2lkIGNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbihT
ZWxlY3RvckZyYWdtZW50TGlzdCYgc2VsZWN0b3JGcmFnbWVudHMsIHVuc2lnbmVkIGxldmVsID0g
MCk7CiAKLVNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsZVNlbGVjdG9yKGNvbnN0IENT
U1NlbGVjdG9yKiBsYXN0U2VsZWN0b3IsIFNlbGVjdG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQs
IEpTQzo6TWFjcm9Bc3NlbWJsZXJDb2RlUmVmPENTU1NlbGVjdG9yUHRyVGFnPiYgY29kZVJlZikK
K3ZvaWQgY29tcGlsZVNlbGVjdG9yKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3Is
IGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvciwgU2VsZWN0b3JDb250ZXh0IHNlbGVjdG9yQ29u
dGV4dCkKIHsKLSAgICBpZiAoIUpTQzo6Vk06OmNhblVzZUpJVCgpKQotICAgICAgICByZXR1cm4g
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Q2Fubm90Q29tcGlsZTsKLSAgICBTZWxlY3RvckNv
ZGVHZW5lcmF0b3IgY29kZUdlbmVyYXRvcihsYXN0U2VsZWN0b3IsIHNlbGVjdG9yQ29udGV4dCk7
Ci0gICAgcmV0dXJuIGNvZGVHZW5lcmF0b3IuY29tcGlsZShjb2RlUmVmKTsKKyAgICBBU1NFUlQo
Y29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90
Q29tcGlsZWQpOworCisgICAgaWYgKCFKU0M6OlZNOjpjYW5Vc2VKSVQoKSkgeworICAgICAgICBj
b21waWxlZFNlbGVjdG9yLnN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OkNhbm5v
dENvbXBpbGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yIGNvZGVHZW5lcmF0b3Ioc2VsZWN0b3IsIHNlbGVjdG9yQ29udGV4dCk7CisgICAg
Y29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPSBjb2RlR2VuZXJhdG9yLmNvbXBpbGUoY29tcGlsZWRT
ZWxlY3Rvci5jb2RlUmVmKTsKKworICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyAh
PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCk7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgRnJhZ21lbnRSZWxhdGlvbiBmcmFnbWVudFJlbGF0aW9uRm9yU2VsZWN0b3JSZWxhdGlv
bihDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIHJlbGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2pp
dC9TZWxlY3RvckNvbXBpbGVyLmgKaW5kZXggOGZhOTQ5OWU5YmYuLjBmZWRhNGJhYjgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKQEAgLTMwLDggKzMwLDYgQEAK
ICNpbmNsdWRlICJDb21waWxlZFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2Vy
LmgiCiAKLSNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcgMAotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENTU1NlbGVjdG9yOwpAQCAtNTMsMzAgKzUxLDMwIEBAIHR5cGVk
ZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyKShjb25zdCBF
bGVtZW50Kik7CiB0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tl
cldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbnQqLCBTZWxlY3RvckNoZWNrZXI6OkNo
ZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7CiB0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxl
Y3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbnQqLCBj
b25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCopOwogCi1TZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9y
Q29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJUYWc+JiBv
dXRwdXRDb2RlUmVmKTsKK3ZvaWQgY29tcGlsZVNlbGVjdG9yKENvbXBpbGVkU2VsZWN0b3ImLCBj
b25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCk7CiAKLWlubGluZSBSdWxlQ29sbGVj
dG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXJGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1cyBjb21waWxhdGlvblN0YXR1cykKK2lubGluZSBSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihDb21w
aWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQogewotICAgIEFTU0VSVF9VTlVTRUQoY29t
cGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAgcmV0dXJuIFdURjo6dW50YWdDRnVu
Y3Rpb25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciwgQ1NTU2VsZWN0b3JQ
dHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICBBU1NFUlQoY29tcGlsZWRTZWxlY3Rvci5z
dGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2Vy
KTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxSdWxlQ29sbGVjdG9yU2ltcGxl
U2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2Rl
UmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5saW5lIFF1ZXJ5U2VsZWN0
b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tl
ckZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3Rh
dHVzIGNvbXBpbGF0aW9uU3RhdHVzKQoraW5saW5lIFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3Rv
ckNoZWNrZXIgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKENvbXBp
bGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjb21w
aWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKTsKLSAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5j
dGlvblB0cjxRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0
clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0
YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIp
OworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXIsIENTU1NlbGVjdG9yUHRyVGFnPihjb21waWxlZFNlbGVjdG9yLmNvZGVS
ZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQogCi1pbmxpbmUgUnVsZUNvbGxlY3Rv
clNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgcnVsZUNvbGxlY3RvclNlbGVjdG9y
Q2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2b2lkKiBleGVjdXRhYmxlQWRkcmVz
cywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cykKK2lubGluZSBS
dWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBydWxlQ29sbGVj
dG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KENvbXBpbGVkU2Vs
ZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCiB7Ci0gICAgQVNTRVJUX1VOVVNFRChjb21waWxhdGlv
blN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6
U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgcmV0dXJuIFdURjo6dW50
YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQsIENTU1NlbGVjdG9yUHRyVGFnPihleGVjdXRhYmxlQWRkcmVzcyk7CisgICAgQVNTRVJU
KGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOworICAgIHJldHVybiBXVEY6OnVudGFn
Q0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250
ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5l
eGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5j
dGlvbldpdGhDaGVja2luZ0NvbnRleHQodm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCitpbmxpbmUgUXVlcnlTZWxlY3Rv
clNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgcXVlcnlTZWxlY3RvclNlbGVjdG9y
Q2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChDb21waWxlZFNlbGVjdG9yJiBjb21w
aWxlZFNlbGVjdG9yKQogewotICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0dXMsIGNv
bXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9u
UHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NT
ZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEFTU0VSVChjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0
cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCwgQ1NTU2Vs
ZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFk
ZHJlc3MoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGlsZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCAyMTA5Y2U0YTIyOC4uNjI0ZGU0MDUwNTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgU2VsZWN0
b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRhTGlzdChjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVj
dG9yTGlzdCkKIAogICAgIG1fc2VsZWN0b3JzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2VsZWN0
b3JDb3VudCk7CiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBzZWxlY3Rv
ckxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0
KHNlbGVjdG9yKSkKLSAgICAgICAgbV9zZWxlY3RvcnMudW5jaGVja2VkQXBwZW5kKFNlbGVjdG9y
RGF0YShzZWxlY3RvcikpOworICAgICAgICBtX3NlbGVjdG9ycy51bmNoZWNrZWRBcHBlbmQoeyBz
ZWxlY3RvciB9KTsKIAogICAgIGlmIChzZWxlY3RvckNvdW50ID09IDEpIHsKICAgICAgICAgY29u
c3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yID0gKm1fc2VsZWN0b3JzLmZpcnN0KCkuc2VsZWN0b3I7
CkBAIC00MDUsMTEgKzQwNSw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBTZWxlY3RvclF1ZXJ5VHJh
aXQ+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZUNvbXBpbGVk
U2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5lck5vZGUmIHNlYXJjaFJvb3ROb2Rl
LCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHNl
bGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVyeVRyYWl0OjpPdXRwdXRUeXBlJiBv
dXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhKSBjb25zdAogewogICAgIGZv
ciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdF9jYXN0PENvbnRhaW5l
ck5vZGUmPihzZWFyY2hSb290Tm9kZSkpKSB7Ci0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJ
TkcKLSAgICAgICAgc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3JVc2VkKCk7Ci0jZWxzZQot
ICAgICAgICBVTlVTRURfUEFSQU0oc2VsZWN0b3JEYXRhKTsKLSNlbmRpZgorICAgICAgICBzZWxl
Y3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CisKICAgICAgICAgaWYgKHNlbGVj
dG9yQ2hlY2tlcigmZWxlbWVudCkpIHsKICAgICAgICAgICAgIFNlbGVjdG9yUXVlcnlUcmFpdDo6
YXBwZW5kT3V0cHV0Rm9yRWxlbWVudChvdXRwdXQsICZlbGVtZW50KTsKICAgICAgICAgICAgIGlm
IChTZWxlY3RvclF1ZXJ5VHJhaXQ6OnNob3VsZE9ubHlNYXRjaEZpcnN0RWxlbWVudCkKQEAgLTQy
NSwxMSArNDIyLDggQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1
dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0MKICAgICBjaGVja2luZ0NvbnRl
eHQuc2NvcGUgPSByb290Tm9kZS5pc0RvY3VtZW50Tm9kZSgpID8gbnVsbHB0ciA6ICZyb290Tm9k
ZTsKIAogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50cyhjb25zdF9j
YXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290Tm9kZSkpKSB7Ci0jaWYgQ1NTX1NFTEVDVE9S
X0pJVF9QUk9GSUxJTkcKLSAgICAgICAgc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3JVc2Vk
KCk7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oc2VsZWN0b3JEYXRhKTsKLSNlbmRpZgor
ICAgICAgICBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7CisKICAgICAg
ICAgaWYgKHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5nQ29udGV4dCkpIHsKICAg
ICAgICAgICAgIFNlbGVjdG9yUXVlcnlUcmFpdDo6YXBwZW5kT3V0cHV0Rm9yRWxlbWVudChvdXRw
dXQsICZlbGVtZW50KTsKICAgICAgICAgICAgIGlmIChTZWxlY3RvclF1ZXJ5VHJhaXQ6OnNob3Vs
ZE9ubHlNYXRjaEZpcnN0RWxlbWVudCkKQEAgLTQ0NSwxNyArNDM5LDE1IEBAIEFMV0FZU19JTkxJ
TkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTaW5nbGVNdWx0aVNlbGVj
dG9yRGF0YShjb25zCiAgICAgY2hlY2tpbmdDb250ZXh0LnNjb3BlID0gcm9vdE5vZGUuaXNEb2N1
bWVudE5vZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CiAgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0X2Nhc3Q8Q29udGFpbmVyTm9kZSY+KHJvb3ROb2Rl
KSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBzZWxlY3RvciA6IG1fc2VsZWN0b3JzKSB7Ci0jaWYg
Q1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAgICAgIHNlbGVjdG9yLmNvbXBpbGVk
U2VsZWN0b3JVc2VkKCk7Ci0jZW5kaWYKKyAgICAgICAgICAgIHNlbGVjdG9yLmNvbXBpbGVkU2Vs
ZWN0b3Iud2FzVXNlZCgpOworCiAgICAgICAgICAgICBib29sIG1hdGNoZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gc2VsZWN0b3IuY29tcGls
ZWRTZWxlY3RvckNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgICAgICAg
ICBpZiAoc2VsZWN0b3IuY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzZWxl
Y3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0
b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yLmNvbXBp
bGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9y
LnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNr
ZXIpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29t
cGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxlY3Rv
ci5jb21waWxlZFNlbGVjdG9yKTsKICAgICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JD
aGVja2VyKCZlbGVtZW50KTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUKHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAg
ICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3Rv
clNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yQ2hlY2tlciwgc2VsZWN0b3IuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICAgICAgICAg
IEFTU0VSVChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKKyAgICAg
ICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5
U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQoc2VsZWN0
b3IuY29tcGlsZWRTZWxlY3Rvcik7CiAgICAgICAgICAgICAgICAgbWF0Y2hlZCA9IHNlbGVjdG9y
Q2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5nQ29udGV4dCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAobWF0Y2hlZCkgewpAQCAtNDY4LDIxICs0NjAsMTYgQEAgQUxXQVlTX0lOTElO
RSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRpU2VsZWN0
b3JEYXRhKGNvbnMKICAgICB9CiB9CiAKLXN0YXRpYyBib29sIGlzQ29tcGlsZWRTZWxlY3RvcihT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQotewotICAgIHJldHVy
biBjb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVT
ZWxlY3RvckNoZWNrZXIgfHwgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlv
blN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDsKLX0KLQogYm9vbCBT
ZWxlY3RvckRhdGFMaXN0Ojpjb21waWxlU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxl
Y3RvckRhdGEpCiB7Ci0gICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyAhPSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCkKLSAgICAgICAgcmV0dXJuIGlz
Q29tcGlsZWRTZWxlY3RvcihzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgIGF1
dG8mIGNvbXBpbGVkU2VsZWN0b3IgPSBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3RvcjsKKyAg
ICAKKyAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlv
blN0YXR1czo6Tm90Q29tcGlsZWQpCisgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVT
ZWxlY3Rvcihjb21waWxlZFNlbGVjdG9yLCBzZWxlY3RvckRhdGEuc2VsZWN0b3IsIFNlbGVjdG9y
Q29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UXVlcnlTZWxlY3Rvcik7CiAKLSAgICBzZWxlY3Rv
ckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPSBTZWxlY3RvckNvbXBpbGVyOjpjb21waWxlU2VsZWN0
b3Ioc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvbnRl
eHQ6OlF1ZXJ5U2VsZWN0b3IsIHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZik7
Ci0gICAgcmV0dXJuIGlzQ29tcGlsZWRTZWxlY3RvcihzZWxlY3RvckRhdGEuY29tcGlsYXRpb25T
dGF0dXMpOworICAgIHJldHVybiBjb21waWxlZFNlbGVjdG9yLnN0YXR1cyAhPSBTZWxlY3RvckNv
bXBpbGF0aW9uU3RhdHVzOjpDYW5ub3RDb21waWxlOwogfQogCi0KICNlbmRpZiAvLyBFTkFCTEUo
Q1NTX1NFTEVDVE9SX0pJVCkKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFNlbGVjdG9yUXVlcnlUcmFp
dD4KQEAgLTUxMCw3ICs0OTcsNyBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlz
dDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICB7
CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAgICAgIGNvbnN0IFNlbGVjdG9yRGF0
YSYgc2VsZWN0b3JEYXRhID0gbV9zZWxlY3RvcnMuZmlyc3QoKTsKLSAgICAgICAgQVNTRVJUKHNl
bGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpOb3RDb21waWxlZCk7CisgICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxl
Y3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGlsZWQpOwog
ICAgICAgICBBU1NFUlQobV9tYXRjaFR5cGUgPT0gQ29tcGlsYWJsZVNpbmdsZSB8fCBtX21hdGNo
VHlwZSA9PSBDb21waWxhYmxlU2luZ2xlV2l0aFJvb3RGaWx0ZXIpOwogICAgICAgICBpZiAoY29t
cGlsZVNlbGVjdG9yKHNlbGVjdG9yRGF0YSkpIHsKICAgICAgICAgICAgIGlmIChtX21hdGNoVHlw
ZSA9PSBDb21waWxhYmxlU2luZ2xlKSB7CkBAIC01NDEsMTMgKzUyOCwxMiBAQCBBTFdBWVNfSU5M
SU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9k
ZSwgdHlwZW5hbWUgUwogICAgICAgICB7CiAgICAgICAgIENvbXBpbGVkU2luZ2xlQ2FzZToKICAg
ICAgICAgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEgPSBtX3NlbGVjdG9ycy5maXJz
dCgpOwotICAgICAgICB2b2lkKiBjb21waWxlZFNlbGVjdG9yQ2hlY2tlciA9IHNlbGVjdG9yRGF0
YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKLSAg
ICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgICAgIFNlbGVj
dG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29tcGls
YXRpb25TdGF0dXMpOworICAgICAgICBpZiAoc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3Iu
c3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tl
cikgeworICAgICAgICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVy
OjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oc2VsZWN0b3JEYXRh
LmNvbXBpbGVkU2VsZWN0b3IpOwogICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlUcmFpdD4oKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3Rv
ckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JD
b21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0g
ICAgICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpx
dWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNv
bXBpbGVkU2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOwor
ICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9
PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0KTsKKyAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21w
aWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29u
dGV4dChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvcik7CiAgICAgICAgICAgICBleGVjdXRl
Q29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PFNlbGVjdG9yUXVlcnlU
cmFpdD4ocm9vdE5vZGUsICpzZWFyY2hSb290Tm9kZSwgc2VsZWN0b3JDaGVja2VyLCBvdXRwdXQs
IHNlbGVjdG9yRGF0YSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaAppbmRleCA4NDY4ZWQ2MTc1OC4uOGVlZjcyZTJhZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NlbGVjdG9yUXVlcnkuaApAQCAtNTAsMjUgKzUwLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBzdHJ1Y3QgU2VsZWN0b3JEYXRhIHsKLSAgICAgICAgU2VsZWN0b3JEYXRhKGNvbnN0
IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKLSAgICAgICAgICAgIDogc2VsZWN0b3Ioc2VsZWN0b3Ip
Ci0gICAgICAgIHsKLSAgICAgICAgfQotCiAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxl
Y3RvcjsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICAgICAgbXV0YWJsZSBKU0M6
Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxDU1NTZWxlY3RvclB0clRhZz4gY29tcGlsZWRTZWxlY3Rv
ckNvZGVSZWY7Ci0gICAgICAgIG11dGFibGUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21w
aWxhdGlvblN0YXR1cyB7IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6Ok5vdENvbXBpbGVkIH07
Ci0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAgflNlbGVjdG9yRGF0YSgp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjb21waWxlZFNlbGVjdG9yQ29kZVJlZi5jb2Rl
KCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkKLSAgICAgICAgICAgICAgICBkYXRhTG9nRigiU2VsZWN0
b3JEYXRhIGNvbXBpbGVkIHNlbGVjdG9yICVkIFwiJXNcIlxuIiwgbV9jb21waWxlZFNlbGVjdG9y
VXNlQ291bnQsIHNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgfQotICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY29tcGlsZWRTZWxlY3RvclVzZUNvdW50
IHsgMCB9OwotICAgICAgICB2b2lkIGNvbXBpbGVkU2VsZWN0b3JVc2VkKCkgY29uc3QgeyBtX2Nv
bXBpbGVkU2VsZWN0b3JVc2VDb3VudCsrOyB9CisgICAgICAgIG11dGFibGUgQ29tcGlsZWRTZWxl
Y3RvciBjb21waWxlZFNlbGVjdG9yIHsgfTsKICNlbmRpZgotI2VuZGlmIC8vIEVOQUJMRShDU1Nf
U0VMRUNUT1JfSklUKQogICAgIH07CiAKICAgICBib29sIHNlbGVjdG9yTWF0Y2hlcyhjb25zdCBT
ZWxlY3RvckRhdGEmLCBFbGVtZW50JiwgY29uc3QgQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCmlu
ZGV4IDFhMWFmMWUwZjA0Li4yNjc4MDJiZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDQ5LDIxICs0NDksMTcgQEAgaW5saW5lIGJv
b2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxl
RGF0YSwgdW5zaWduZWQKIAogI2lmIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgIGF1dG8m
IGNvbXBpbGVkU2VsZWN0b3IgPSBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yKCk7Ci0gICAgdm9p
ZCogY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29k
ZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgaWYgKCFjb21waWxlZFNlbGVjdG9yQ2hlY2tl
ciAmJiBjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpOb3RDb21waWxlZCkgewotICAgICAgICBjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9IFNlbGVj
dG9yQ29tcGlsZXI6OmNvbXBpbGVTZWxlY3RvcihydWxlRGF0YS5zZWxlY3RvcigpLCBTZWxlY3Rv
ckNvbXBpbGVyOjpTZWxlY3RvckNvbnRleHQ6OlJ1bGVDb2xsZWN0b3IsIGNvbXBpbGVkU2VsZWN0
b3IuY29kZVJlZik7CiAKLSAgICAgICAgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBjb21waWxl
ZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgfQorICAg
IGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpOb3RDb21waWxlZCkKKyAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6Y29tcGlsZVNlbGVjdG9y
KGNvbXBpbGVkU2VsZWN0b3IsIHJ1bGVEYXRhLnNlbGVjdG9yKCksIFNlbGVjdG9yQ29tcGlsZXI6
OlNlbGVjdG9yQ29udGV4dDo6UnVsZUNvbGxlY3Rvcik7CisKKyAgICBpZiAoY29tcGlsZWRTZWxl
Y3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyKSB7CisgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCi0gICAgaWYg
KGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyICYmIGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNl
bGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAg
ICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JT
aW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgY29t
cGlsZWRTZWxlY3Rvci5zdGF0dXMpOworICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNl
bGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlv
bihjb21waWxlZFNlbGVjdG9yKTsKICNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAogICAgICAgICB1
bnNpZ25lZCBpZ25vcmVTcGVjaWZpY2l0eTsKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSgh
c2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KCksICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1
ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSwgIldoZW4gbWF0Y2hp
bmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIgY29tcGlsZSBhIHNlbGVjdG9yIGNo
ZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5ub3QgbWF0Y2ggYW55dGhpbmcuIik7
Ci0jZW5kaWYKLSNpZiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJTElORwotICAgICAgICBydWxlRGF0
YS5jb21waWxlZFNlbGVjdG9yVXNlZCgpOwogI2VuZGlmCiAgICAgICAgIGJvb2wgc2VsZWN0b3JN
YXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KCksICZzcGVjaWZpY2l0eSk7CiAKQEAg
LTQ4MywxNCArNDc5LDEwIEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxl
TWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkCiAKICAgICBib29sIHNl
bGVjdG9yTWF0Y2hlczsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKLSAgICBpZiAoY29t
cGlsZWRTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iu
c3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhD
aGVja2luZ0NvbnRleHQpOworICAgIGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
KSB7CisgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOwogCi0gICAgICAgIGF1dG8g
c2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9y
Q2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tl
ciwgY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMpOwotCi0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9G
SUxJTkcKLSAgICAgICAgY29tcGlsZWRTZWxlY3Rvci51c2VDb3VudCsrOwotI2VuZGlmCisgICAg
ICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3Rv
clNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVj
dG9yKTsKICAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50
KCksICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOwogICAgIH0gZWxzZQogI2VuZGlmIC8vIEVOQUJM
RShDU1NfU0VMRUNUT1JfSklUKQo=
</data>
<flag name="review"
          id="402357"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386585</attachid>
            <date>2020-01-01 12:07:03 -0800</date>
            <delta_ts>2020-01-01 13:23:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>selectordata-compiledselector-2.patch</filename>
            <type>text/plain</type>
            <size>21302</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3MTFmNDVmZGEwMi4uMjM2ZWQ3MzQ0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAyMC0wMS0wMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgTWFrZSBTZWxlY3RvckNvbXBpbGVyIGludGVyZmFjZSB1c2UgQ29tcGlsZWRT
ZWxlY3RvciB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAg
IFNlbGVjdG9yQ29tcGlsZXIgaW50ZXJmYWNlIGlzIGN1cnJlbnRseSByYXRoZXIgbG93LWxldmVs
LCB0YWtpbmcgdm9pZCogY29kZSByZWZlcmVuY2VzLgorICAgICAgICBFeHBhbmQgdXNlIG9mIENv
bXBpbGVkU2VsZWN0b3IgdHlwZSB0byBzaW1wbGlmeSBjbGllbnRzLgorCisgICAgICAgICogY3Nz
aml0L0NvbXBpbGVkU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBpbGVkU2VsZWN0
b3I6Ondhc1VzZWQpOgorICAgICAgICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVTZWxlY3Rvcik6CisKKyAg
ICAgICAgR2VuZXJhdGUgY29kZSBkaXJlY3RvcnkgdG8gYSBDb21waWxlZFNlbGVjdG9yLgorCisg
ICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2lt
cGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JD
b21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVj
dG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KToKKworICAgICAg
ICBUYWtlIENvbXBpbGVkU2VsZWN0b3IuCisKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpTZWxlY3RvckRhdGFMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNp
bXBsZVNlbGVjdG9yQ2hlY2tlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRh
dGFMaXN0OjpleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21w
aWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNl
bGVjdG9yRGF0YUxpc3Q6OmNvbXBpbGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpleGVjdXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29tcGls
ZWRTZWxlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OlNlbGVjdG9yRGF0YTo6U2VsZWN0b3JE
YXRhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OlNlbGVj
dG9yRGF0YTo6flNlbGVjdG9yRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RvckRhdGFMaXN0OjpTZWxlY3RvckRhdGE6OmNvbXBpbGVkU2VsZWN0b3JVc2VkIGNvbnN0KTog
RGVsZXRlZC4KKworICAgICAgICBSZXBsYWNlIFNlbGVjdG9yRGF0YSBmaWVsZHMgd2l0aCBhIENv
bXBpbGVkU2VsZWN0b3IgbWVtYmVyLgorCisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRSdWxlQ29sbGVjdG9y
OjpydWxlTWF0Y2hlcyk6CisKIDIwMTktMTItMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFN0eWxlUnVsZSBhY2Nlc3NvciBpbiBSdWxlRGF0YSBzaG91bGQg
cmV0dXJuIGEgY29uc3QgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvQ29tcGlsZWRTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L0NvbXBpbGVkU2Vs
ZWN0b3IuaAppbmRleCBjNjE0OTUwNTZkNC4uNWU2MTcxOWE5NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9Db21waWxlZFNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3Nzaml0L0NvbXBpbGVkU2VsZWN0b3IuaApAQCAtMjgsMTEgKzI4LDE0IEBACiAjaWYgRU5BQkxF
KENTU19TRUxFQ1RPUl9KSVQpCiAKICNpbmNsdWRlICJDU1NQdHJUYWcuaCIKKyNpbmNsdWRlICJD
U1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL01hY3JvQXNzZW1ibGVyQ29k
ZVJlZi5oPgogCisjZGVmaW5lIENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HIDAKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1lbnVtIGNsYXNzIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgewor
ZW51bSBjbGFzcyBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIDogdWludDhfdCB7CiAgICAgTm90
Q29tcGlsZWQsCiAgICAgQ2Fubm90Q29tcGlsZSwKICAgICBTaW1wbGVTZWxlY3RvckNoZWNrZXIs
CkBAIC00Myw4ICs0NiwxOSBAQCBzdHJ1Y3QgQ29tcGlsZWRTZWxlY3RvciB7CiAgICAgV1RGX01B
S0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwogICAgIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMg
c3RhdHVzIHsgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGlsZWQgfTsKICAgICBK
U0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxDU1NTZWxlY3RvclB0clRhZz4gY29kZVJlZjsKKwog
I2lmIGRlZmluZWQoQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcpICYmIENTU19TRUxFQ1RPUl9K
SVRfUFJPRklMSU5HCiAgICAgdW5zaWduZWQgdXNlQ291bnQgeyAwIH07CisgICAgY29uc3QgQ1NT
U2VsZWN0b3IqIHNlbGVjdG9yIHsgbnVsbHB0ciB9OworICAgIHZvaWQgd2FzVXNlZCgpIHsgKyt1
c2VDb3VudDsgfQorCisgICAgfkNvbXBpbGVkU2VsZWN0b3IoKQorICAgIHsKKyAgICAgICAgaWYg
KGNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpCisgICAgICAgICAgICBkYXRhTG9n
RigiQ29tcGlsZWRTZWxlY3RvciAlZCBcIiVzXCJcbiIsIHVzZUNvdW50LCBzZWxlY3Rvci0+c2Vs
ZWN0b3JUZXh0KCkudXRmOCgpLmRhdGEoKSk7CisgICAgfQorI2Vsc2UKKyAgICB2b2lkIHdhc1Vz
ZWQoKSB7IH0KICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwCmluZGV4IGYyY2FkZmFkMDYzLi5iYjVmMTRkZDEyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcApAQCAtMzk2LDEyICszOTYsMjMgQEAgc3Rh
dGljIEZ1bmN0aW9uVHlwZSBjb25zdHJ1Y3RGcmFnbWVudHMoY29uc3QgQ1NTU2VsZWN0b3IqIHJv
b3RTZWxlY3RvciwgU2VsZWN0b3IKIAogc3RhdGljIHZvaWQgY29tcHV0ZUJhY2t0cmFja2luZ0lu
Zm9ybWF0aW9uKFNlbGVjdG9yRnJhZ21lbnRMaXN0JiBzZWxlY3RvckZyYWdtZW50cywgdW5zaWdu
ZWQgbGV2ZWwgPSAwKTsKIAotU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxlU2VsZWN0
b3IoY29uc3QgQ1NTU2VsZWN0b3IqIGxhc3RTZWxlY3RvciwgU2VsZWN0b3JDb250ZXh0IHNlbGVj
dG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8Q1NTU2VsZWN0b3JQdHJUYWc+
JiBjb2RlUmVmKQordm9pZCBjb21waWxlU2VsZWN0b3IoQ29tcGlsZWRTZWxlY3RvciYgY29tcGls
ZWRTZWxlY3RvciwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yLCBTZWxlY3RvckNvbnRleHQg
c2VsZWN0b3JDb250ZXh0KQogewotICAgIGlmICghSlNDOjpWTTo6Y2FuVXNlSklUKCkpCi0gICAg
ICAgIHJldHVybiBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpDYW5ub3RDb21waWxlOwotICAg
IFNlbGVjdG9yQ29kZUdlbmVyYXRvciBjb2RlR2VuZXJhdG9yKGxhc3RTZWxlY3Rvciwgc2VsZWN0
b3JDb250ZXh0KTsKLSAgICByZXR1cm4gY29kZUdlbmVyYXRvci5jb21waWxlKGNvZGVSZWYpOwor
ICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9u
U3RhdHVzOjpOb3RDb21waWxlZCk7CisKKyAgICBpZiAoIUpTQzo6Vk06OmNhblVzZUpJVCgpKSB7
CisgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6Q2Fubm90Q29tcGlsZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBT
ZWxlY3RvckNvZGVHZW5lcmF0b3IgY29kZUdlbmVyYXRvcihzZWxlY3Rvciwgc2VsZWN0b3JDb250
ZXh0KTsKKyAgICBjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9IGNvZGVHZW5lcmF0b3IuY29tcGls
ZShjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYpOworCisjaWYgZGVmaW5lZChDU1NfU0VMRUNUT1Jf
SklUX1BST0ZJTElORykgJiYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKKyAgICBjb21waWxl
ZFNlbGVjdG9yLnNlbGVjdG9yID0gc2VsZWN0b3I7CisjZW5kaWYKKworICAgIEFTU0VSVChjb21w
aWxlZFNlbGVjdG9yLnN0YXR1cyAhPSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21w
aWxlZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRnJhZ21lbnRSZWxhdGlvbiBmcmFnbWVudFJlbGF0
aW9uRm9yU2VsZWN0b3JSZWxhdGlvbihDU1NTZWxlY3Rvcjo6UmVsYXRpb25UeXBlIHJlbGF0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKaW5kZXggOGZhOTQ5OWU5
YmYuLjBmZWRhNGJhYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0
b3JDb21waWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVy
LmgKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJDb21waWxlZFNlbGVjdG9yLmgiCiAjaW5j
bHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAKLSNkZWZpbmUgQ1NTX1NFTEVDVE9SX0pJVF9QUk9G
SUxJTkcgMAotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1NlbGVjdG9yOwpAQCAt
NTMsMzAgKzUxLDMwIEBAIHR5cGVkZWYgdW5zaWduZWQgKCpRdWVyeVNlbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyKShjb25zdCBFbGVtZW50Kik7CiB0eXBlZGVmIHVuc2lnbmVkICgqUnVsZUNv
bGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbnQq
LCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4dCosIHVuc2lnbmVkKik7CiB0eXBlZGVm
IHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRl
eHQpKGNvbnN0IEVsZW1lbnQqLCBjb25zdCBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4
dCopOwogCi1TZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBD
U1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWY8
Q1NTU2VsZWN0b3JQdHJUYWc+JiBvdXRwdXRDb2RlUmVmKTsKK3ZvaWQgY29tcGlsZVNlbGVjdG9y
KENvbXBpbGVkU2VsZWN0b3ImLCBjb25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29udGV4dCk7
CiAKLWlubGluZSBSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHJ1bGVDb2xsZWN0
b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbih2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywg
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cykKK2lubGluZSBSdWxl
Q29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyIHJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3Rv
ckNoZWNrZXJGdW5jdGlvbihDb21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQogewot
ICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09
IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0gICAg
cmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9y
Q2hlY2tlciwgQ1NTU2VsZWN0b3JQdHJUYWc+KGV4ZWN1dGFibGVBZGRyZXNzKTsKKyAgICBBU1NF
UlQoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6
U2ltcGxlU2VsZWN0b3JDaGVja2VyKTsKKyAgICByZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0
cjxSdWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4o
Y29tcGlsZWRTZWxlY3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0K
IAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKHZvaWQqIGV4ZWN1dGFibGVBZGRyZXNzLCBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQoraW5saW5lIFF1ZXJ5
U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIgcXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9y
Q2hlY2tlckZ1bmN0aW9uKENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCiB7Ci0g
ICAgQVNTRVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0g
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKTsKLSAgICBy
ZXR1cm4gV1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyLCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEFTU0VS
VChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpT
aW1wbGVTZWxlY3RvckNoZWNrZXIpOworICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRy
PFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXIsIENTU1NlbGVjdG9yUHRyVGFnPihj
b21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCkpOwogfQog
Ci1pbmxpbmUgUnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQg
cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2
b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxh
dGlvblN0YXR1cykKK2lubGluZSBSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNr
aW5nQ29udGV4dCBydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tp
bmdDb250ZXh0KENvbXBpbGVkU2VsZWN0b3ImIGNvbXBpbGVkU2VsZWN0b3IpCiB7Ci0gICAgQVNT
RVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1cywgY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7
Ci0gICAgcmV0dXJuIFdURjo6dW50YWdDRnVuY3Rpb25QdHI8UnVsZUNvbGxlY3RvclNlbGVjdG9y
Q2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQsIENTU1NlbGVjdG9yUHRyVGFnPihleGVjdXRhYmxl
QWRkcmVzcyk7CisgICAgQVNTRVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwor
ICAgIHJldHVybiBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3RvckNo
ZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oY29tcGlsZWRTZWxl
Y3Rvci5jb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKIH0KIAotaW5saW5lIFF1
ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0IHF1ZXJ5U2VsZWN0
b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQodm9pZCogZXhlY3V0
YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMp
CitpbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQg
cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChD
b21waWxlZFNlbGVjdG9yJiBjb21waWxlZFNlbGVjdG9yKQogewotICAgIEFTU0VSVF9VTlVTRUQo
Y29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRp
b25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgIHJldHVy
biBXVEY6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRo
Q2hlY2tpbmdDb250ZXh0LCBDU1NTZWxlY3RvclB0clRhZz4oZXhlY3V0YWJsZUFkZHJlc3MpOwor
ICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9u
U3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKKyAgICByZXR1cm4g
V1RGOjp1bnRhZ0NGdW5jdGlvblB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENo
ZWNraW5nQ29udGV4dCwgQ1NTU2VsZWN0b3JQdHJUYWc+KGNvbXBpbGVkU2VsZWN0b3IuY29kZVJl
Zi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVj
dG9yQ29tcGlsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCAyMTA5Y2U0
YTIyOC4uNjI0ZGU0MDUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAg
LTgzLDcgKzgzLDcgQEAgU2VsZWN0b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRhTGlzdChjb25zdCBD
U1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKIAogICAgIG1fc2VsZWN0b3JzLnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc2VsZWN0b3JDb3VudCk7CiAgICAgZm9yIChjb25zdCBDU1NTZWxlY3Rv
ciogc2VsZWN0b3IgPSBzZWxlY3Rvckxpc3QuZmlyc3QoKTsgc2VsZWN0b3I7IHNlbGVjdG9yID0g
Q1NTU2VsZWN0b3JMaXN0OjpuZXh0KHNlbGVjdG9yKSkKLSAgICAgICAgbV9zZWxlY3RvcnMudW5j
aGVja2VkQXBwZW5kKFNlbGVjdG9yRGF0YShzZWxlY3RvcikpOworICAgICAgICBtX3NlbGVjdG9y
cy51bmNoZWNrZWRBcHBlbmQoeyBzZWxlY3RvciB9KTsKIAogICAgIGlmIChzZWxlY3RvckNvdW50
ID09IDEpIHsKICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yID0gKm1fc2VsZWN0
b3JzLmZpcnN0KCkuc2VsZWN0b3I7CkBAIC00MDUsMTEgKzQwNSw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBTZWxlY3RvclF1ZXJ5VHJhaXQ+CiBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRh
TGlzdDo6ZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyKGNvbnN0IENvbnRhaW5l
ck5vZGUmIHNlYXJjaFJvb3ROb2RlLCBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2lt
cGxlU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciwgdHlwZW5hbWUgU2VsZWN0b3JRdWVy
eVRyYWl0OjpPdXRwdXRUeXBlJiBvdXRwdXQsIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1lbnREZXNjZW5kYW50
cyhjb25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290Tm9kZSkpKSB7Ci0jaWYgQ1NT
X1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAgc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2Vs
ZWN0b3JVc2VkKCk7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oc2VsZWN0b3JEYXRhKTsK
LSNlbmRpZgorICAgICAgICBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci53YXNVc2VkKCk7
CisKICAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCkpIHsKICAgICAgICAgICAg
IFNlbGVjdG9yUXVlcnlUcmFpdDo6YXBwZW5kT3V0cHV0Rm9yRWxlbWVudChvdXRwdXQsICZlbGVt
ZW50KTsKICAgICAgICAgICAgIGlmIChTZWxlY3RvclF1ZXJ5VHJhaXQ6OnNob3VsZE9ubHlNYXRj
aEZpcnN0RWxlbWVudCkKQEAgLTQyNSwxMSArNDIyLDggQEAgQUxXQVlTX0lOTElORSB2b2lkIFNl
bGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2lu
Z0MKICAgICBjaGVja2luZ0NvbnRleHQuc2NvcGUgPSByb290Tm9kZS5pc0RvY3VtZW50Tm9kZSgp
ID8gbnVsbHB0ciA6ICZyb290Tm9kZTsKIAogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IGVsZW1l
bnREZXNjZW5kYW50cyhjb25zdF9jYXN0PENvbnRhaW5lck5vZGUmPihzZWFyY2hSb290Tm9kZSkp
KSB7Ci0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAgc2VsZWN0b3JEYXRh
LmNvbXBpbGVkU2VsZWN0b3JVc2VkKCk7Ci0jZWxzZQotICAgICAgICBVTlVTRURfUEFSQU0oc2Vs
ZWN0b3JEYXRhKTsKLSNlbmRpZgorICAgICAgICBzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rv
ci53YXNVc2VkKCk7CisKICAgICAgICAgaWYgKHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNo
ZWNraW5nQ29udGV4dCkpIHsKICAgICAgICAgICAgIFNlbGVjdG9yUXVlcnlUcmFpdDo6YXBwZW5k
T3V0cHV0Rm9yRWxlbWVudChvdXRwdXQsICZlbGVtZW50KTsKICAgICAgICAgICAgIGlmIChTZWxl
Y3RvclF1ZXJ5VHJhaXQ6OnNob3VsZE9ubHlNYXRjaEZpcnN0RWxlbWVudCkKQEAgLTQ0NSwxNyAr
NDM5LDE1IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlQ29t
cGlsZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YShjb25zCiAgICAgY2hlY2tpbmdDb250ZXh0LnNj
b3BlID0gcm9vdE5vZGUuaXNEb2N1bWVudE5vZGUoKSA/IG51bGxwdHIgOiAmcm9vdE5vZGU7CiAg
ICAgZm9yIChhdXRvJiBlbGVtZW50IDogZWxlbWVudERlc2NlbmRhbnRzKGNvbnN0X2Nhc3Q8Q29u
dGFpbmVyTm9kZSY+KHJvb3ROb2RlKSkpIHsKICAgICAgICAgZm9yIChhdXRvJiBzZWxlY3RvciA6
IG1fc2VsZWN0b3JzKSB7Ci0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAg
ICAgIHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3JVc2VkKCk7Ci0jZW5kaWYKKyAgICAgICAgICAg
IHNlbGVjdG9yLmNvbXBpbGVkU2VsZWN0b3Iud2FzVXNlZCgpOworCiAgICAgICAgICAgICBib29s
IG1hdGNoZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVj
a2VyID0gc2VsZWN0b3IuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCk7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0b3IuY29tcGlsYXRpb25TdGF0dXMgPT0g
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVy
eVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxlY3RvckNo
ZWNrZXIsIHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgIGlmIChzZWxl
Y3Rvci5jb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVz
OjpTaW1wbGVTZWxlY3RvckNoZWNrZXIpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9y
Q2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNo
ZWNrZXJGdW5jdGlvbihzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yKTsKICAgICAgICAgICAgICAg
ICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KTsKICAgICAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVzID09
IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0Nv
bnRleHQpOwotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JD
b21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgc2VsZWN0b3IuY29tcGlsYXRpb25TdGF0
dXMpOworICAgICAgICAgICAgICAgIEFTU0VSVChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yLnN0
YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hl
Y2tpbmdDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNl
bGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhD
aGVja2luZ0NvbnRleHQoc2VsZWN0b3IuY29tcGlsZWRTZWxlY3Rvcik7CiAgICAgICAgICAgICAg
ICAgbWF0Y2hlZCA9IHNlbGVjdG9yQ2hlY2tlcigmZWxlbWVudCwgJmNoZWNraW5nQ29udGV4dCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAobWF0Y2hlZCkgewpAQCAtNDY4LDIxICs0
NjAsMTYgQEAgQUxXQVlTX0lOTElORSB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21w
aWxlZFNpbmdsZU11bHRpU2VsZWN0b3JEYXRhKGNvbnMKICAgICB9CiB9CiAKLXN0YXRpYyBib29s
IGlzQ29tcGlsZWRTZWxlY3RvcihTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9u
U3RhdHVzKQotewotICAgIHJldHVybiBjb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNvbXBp
bGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIgfHwgY29tcGlsYXRpb25TdGF0dXMg
PT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5n
Q29udGV4dDsKLX0KLQogYm9vbCBTZWxlY3RvckRhdGFMaXN0Ojpjb21waWxlU2VsZWN0b3IoY29u
c3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRhdGEpCiB7Ci0gICAgaWYgKHNlbGVjdG9yRGF0YS5j
b21waWxhdGlvblN0YXR1cyAhPSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxl
ZCkKLSAgICAgICAgcmV0dXJuIGlzQ29tcGlsZWRTZWxlY3RvcihzZWxlY3RvckRhdGEuY29tcGls
YXRpb25TdGF0dXMpOworICAgIGF1dG8mIGNvbXBpbGVkU2VsZWN0b3IgPSBzZWxlY3RvckRhdGEu
Y29tcGlsZWRTZWxlY3RvcjsKKyAgICAKKyAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMg
PT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6Tm90Q29tcGlsZWQpCisgICAgICAgIFNlbGVj
dG9yQ29tcGlsZXI6OmNvbXBpbGVTZWxlY3Rvcihjb21waWxlZFNlbGVjdG9yLCBzZWxlY3RvckRh
dGEuc2VsZWN0b3IsIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UXVlcnlTZWxl
Y3Rvcik7CiAKLSAgICBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPSBTZWxlY3RvckNv
bXBpbGVyOjpjb21waWxlU2VsZWN0b3Ioc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBTZWxlY3RvckNv
bXBpbGVyOjpTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IsIHNlbGVjdG9yRGF0YS5jb21w
aWxlZFNlbGVjdG9yQ29kZVJlZik7Ci0gICAgcmV0dXJuIGlzQ29tcGlsZWRTZWxlY3RvcihzZWxl
Y3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgIHJldHVybiBjb21waWxlZFNlbGVjdG9y
LnN0YXR1cyAhPSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpDYW5ub3RDb21waWxlOwogfQog
Ci0KICNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkKIAogdGVtcGxhdGUgPHR5cGVu
YW1lIFNlbGVjdG9yUXVlcnlUcmFpdD4KQEAgLTUxMCw3ICs0OTcsNyBAQCBBTFdBWVNfSU5MSU5F
IHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwg
dHlwZW5hbWUgUwogICAgICAgICB7CiAjaWYgRU5BQkxFKENTU19TRUxFQ1RPUl9KSVQpCiAgICAg
ICAgIGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhID0gbV9zZWxlY3RvcnMuZmlyc3Qo
KTsKLSAgICAgICAgQVNTRVJUKHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCk7CisgICAgICAgIEFTU0VSVChzZWxl
Y3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6Tm90Q29tcGlsZWQpOwogICAgICAgICBBU1NFUlQobV9tYXRjaFR5cGUgPT0gQ29tcGls
YWJsZVNpbmdsZSB8fCBtX21hdGNoVHlwZSA9PSBDb21waWxhYmxlU2luZ2xlV2l0aFJvb3RGaWx0
ZXIpOwogICAgICAgICBpZiAoY29tcGlsZVNlbGVjdG9yKHNlbGVjdG9yRGF0YSkpIHsKICAgICAg
ICAgICAgIGlmIChtX21hdGNoVHlwZSA9PSBDb21waWxhYmxlU2luZ2xlKSB7CkBAIC01NDEsMTMg
KzUyOCwxMiBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShD
b250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICB7CiAgICAgICAgIENv
bXBpbGVkU2luZ2xlQ2FzZToKICAgICAgICAgY29uc3QgU2VsZWN0b3JEYXRhJiBzZWxlY3RvckRh
dGEgPSBtX3NlbGVjdG9ycy5maXJzdCgpOwotICAgICAgICB2b2lkKiBjb21waWxlZFNlbGVjdG9y
Q2hlY2tlciA9IHNlbGVjdG9yRGF0YS5jb21waWxlZFNlbGVjdG9yQ29kZVJlZi5jb2RlKCkuZXhl
Y3V0YWJsZUFkZHJlc3MoKTsKLSAgICAgICAgaWYgKHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0
YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTaW1wbGVTZWxlY3RvckNoZWNrZXIp
IHsKLSAgICAgICAgICAgIFNlbGVjdG9yQ29tcGlsZXI6OlF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxl
Y3RvckNoZWNrZXIgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxl
Y3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
LCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICBpZiAoc2VsZWN0b3JE
YXRhLmNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgeworICAgICAgICAgICAgYXV0byBzZWxlY3RvckNoZWNr
ZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2Vy
RnVuY3Rpb24oc2VsZWN0b3JEYXRhLmNvbXBpbGVkU2VsZWN0b3IpOwogICAgICAgICAgICAgZXhl
Y3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlUcmFpdD4oKnNl
YXJjaFJvb3ROb2RlLCBzZWxlY3RvckNoZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsYXRp
b25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dCk7Ci0gICAgICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNl
bGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIg
PSBTZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25X
aXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEu
Y29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yRGF0YS5jb21w
aWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKKyAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3RvckRhdGEuY29tcGlsZWRTZWxlY3Rvcik7
CiAgICAgICAgICAgICBleGVjdXRlQ29tcGlsZWRTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdD
b250ZXh0PFNlbGVjdG9yUXVlcnlUcmFpdD4ocm9vdE5vZGUsICpzZWFyY2hSb290Tm9kZSwgc2Vs
ZWN0b3JDaGVja2VyLCBvdXRwdXQsIHNlbGVjdG9yRGF0YSk7CiAgICAgICAgIH0KICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaAppbmRleCA4NDY4ZWQ2MTc1OC4uOGVl
ZjcyZTJhZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaApAQCAtNTAsMjUgKzUwLDEw
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBzdHJ1Y3QgU2VsZWN0b3JEYXRhIHsKLSAgICAg
ICAgU2VsZWN0b3JEYXRhKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKLSAgICAgICAgICAg
IDogc2VsZWN0b3Ioc2VsZWN0b3IpCi0gICAgICAgIHsKLSAgICAgICAgfQotCiAgICAgICAgIGNv
bnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICNpZiBFTkFCTEUoQ1NTX1NFTEVDVE9SX0pJVCkK
LSAgICAgICAgbXV0YWJsZSBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZjxDU1NTZWxlY3RvclB0
clRhZz4gY29tcGlsZWRTZWxlY3RvckNvZGVSZWY7Ci0gICAgICAgIG11dGFibGUgU2VsZWN0b3JD
b21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cyB7IFNlbGVjdG9yQ29tcGlsYXRpb25T
dGF0dXM6Ok5vdENvbXBpbGVkIH07Ci0jaWYgQ1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAg
ICAgICAgflNlbGVjdG9yRGF0YSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjb21waWxl
ZFNlbGVjdG9yQ29kZVJlZi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKSkKLSAgICAgICAgICAg
ICAgICBkYXRhTG9nRigiU2VsZWN0b3JEYXRhIGNvbXBpbGVkIHNlbGVjdG9yICVkIFwiJXNcIlxu
IiwgbV9jb21waWxlZFNlbGVjdG9yVXNlQ291bnQsIHNlbGVjdG9yLT5zZWxlY3RvclRleHQoKS51
dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgfQotICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY29t
cGlsZWRTZWxlY3RvclVzZUNvdW50IHsgMCB9OwotICAgICAgICB2b2lkIGNvbXBpbGVkU2VsZWN0
b3JVc2VkKCkgY29uc3QgeyBtX2NvbXBpbGVkU2VsZWN0b3JVc2VDb3VudCsrOyB9CisgICAgICAg
IG11dGFibGUgQ29tcGlsZWRTZWxlY3RvciBjb21waWxlZFNlbGVjdG9yIHsgfTsKICNlbmRpZgot
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQogICAgIH07CiAKICAgICBib29sIHNl
bGVjdG9yTWF0Y2hlcyhjb25zdCBTZWxlY3RvckRhdGEmLCBFbGVtZW50JiwgY29uc3QgQ29udGFp
bmVyTm9kZSYgcm9vdE5vZGUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVu
dFJ1bGVDb2xsZWN0b3IuY3BwCmluZGV4IDFhMWFmMWUwZjA0Li4yNjc4MDJiZDU4MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcApAQCAtNDQ5LDIx
ICs0NDksMTcgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVz
KGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKIAogI2lmIEVOQUJMRShDU1NfU0VM
RUNUT1JfSklUKQogICAgIGF1dG8mIGNvbXBpbGVkU2VsZWN0b3IgPSBydWxlRGF0YS5jb21waWxl
ZFNlbGVjdG9yKCk7Ci0gICAgdm9pZCogY29tcGlsZWRTZWxlY3RvckNoZWNrZXIgPSBjb21waWxl
ZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVBZGRyZXNzKCk7Ci0gICAgaWYgKCFj
b21waWxlZFNlbGVjdG9yQ2hlY2tlciAmJiBjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCkgewotICAgICAgICBjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9IFNlbGVjdG9yQ29tcGlsZXI6OmNvbXBpbGVTZWxlY3RvcihydWxlRGF0
YS5zZWxlY3RvcigpLCBTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvbnRleHQ6OlJ1bGVDb2xs
ZWN0b3IsIGNvbXBpbGVkU2VsZWN0b3IuY29kZVJlZik7CiAKLSAgICAgICAgY29tcGlsZWRTZWxl
Y3RvckNoZWNrZXIgPSBjb21waWxlZFNlbGVjdG9yLmNvZGVSZWYuY29kZSgpLmV4ZWN1dGFibGVB
ZGRyZXNzKCk7Ci0gICAgfQorICAgIGlmIChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBTZWxl
Y3RvckNvbXBpbGF0aW9uU3RhdHVzOjpOb3RDb21waWxlZCkKKyAgICAgICAgU2VsZWN0b3JDb21w
aWxlcjo6Y29tcGlsZVNlbGVjdG9yKGNvbXBpbGVkU2VsZWN0b3IsIHJ1bGVEYXRhLnNlbGVjdG9y
KCksIFNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29udGV4dDo6UnVsZUNvbGxlY3Rvcik7CisK
KyAgICBpZiAoY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0
YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7CisgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iu
d2FzVXNlZCgpOwogCi0gICAgaWYgKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyICYmIGNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVj
dG9yQ2hlY2tlcikgewotICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29t
cGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihjb21waWxl
ZFNlbGVjdG9yQ2hlY2tlciwgY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMpOworICAgICAgICBhdXRv
IHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnJ1bGVDb2xsZWN0b3JTaW1wbGVT
ZWxlY3RvckNoZWNrZXJGdW5jdGlvbihjb21waWxlZFNlbGVjdG9yKTsKICNpZiAhQVNTRVJUX01T
R19ESVNBQkxFRAogICAgICAgICB1bnNpZ25lZCBpZ25vcmVTcGVjaWZpY2l0eTsKICAgICAgICAg
QVNTRVJUX1dJVEhfTUVTU0FHRSghc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KCksICZpZ25vcmVT
cGVjaWZpY2l0eSkgfHwgbV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1ZG9JZCA9PSBQc2V1ZG9J
ZDo6Tm9uZSwgIldoZW4gbWF0Y2hpbmcgcHNldWRvIGVsZW1lbnRzLCB3ZSBzaG91bGQgbmV2ZXIg
Y29tcGlsZSBhIHNlbGVjdG9yIGNoZWNrZXIgd2l0aG91dCBjb250ZXh0IHVubGVzcyBpdCBjYW5u
b3QgbWF0Y2ggYW55dGhpbmcuIik7Ci0jZW5kaWYKLSNpZiBDU1NfU0VMRUNUT1JfSklUX1BST0ZJ
TElORwotICAgICAgICBydWxlRGF0YS5jb21waWxlZFNlbGVjdG9yVXNlZCgpOwogI2VuZGlmCiAg
ICAgICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KCks
ICZzcGVjaWZpY2l0eSk7CiAKQEAgLTQ4MywxNCArNDc5LDEwIEBAIGlubGluZSBib29sIEVsZW1l
bnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVu
c2lnbmVkCiAKICAgICBib29sIHNlbGVjdG9yTWF0Y2hlczsKICNpZiBFTkFCTEUoQ1NTX1NFTEVD
VE9SX0pJVCkKLSAgICBpZiAoY29tcGlsZWRTZWxlY3RvckNoZWNrZXIpIHsKLSAgICAgICAgQVNT
RVJUKGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6
OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQpOworICAgIGlmIChjb21waWxlZFNl
bGVjdG9yLnN0YXR1cyA9PSBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNr
ZXJXaXRoQ2hlY2tpbmdDb250ZXh0KSB7CisgICAgICAgIGNvbXBpbGVkU2VsZWN0b3Iud2FzVXNl
ZCgpOwogCi0gICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6
cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChj
b21waWxlZFNlbGVjdG9yQ2hlY2tlciwgY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMpOwotCi0jaWYg
Q1NTX1NFTEVDVE9SX0pJVF9QUk9GSUxJTkcKLSAgICAgICAgY29tcGlsZWRTZWxlY3Rvci51c2VD
b3VudCsrOwotI2VuZGlmCisgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JD
b21waWxlcjo6cnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5n
Q29udGV4dChjb21waWxlZFNlbGVjdG9yKTsKICAgICAgICAgc2VsZWN0b3JNYXRjaGVzID0gc2Vs
ZWN0b3JDaGVja2VyKCZlbGVtZW50KCksICZjb250ZXh0LCAmc3BlY2lmaWNpdHkpOwogICAgIH0g
ZWxzZQogI2VuZGlmIC8vIEVOQUJMRShDU1NfU0VMRUNUT1JfSklUKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>