<?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>162880</bug_id>
          
          <creation_ts>2016-10-03 15:23:30 -0700</creation_ts>
          <short_desc>Add Display P3 ColorSpace</short_desc>
          <delta_ts>2016-10-05 23:53:37 -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>REOPENED</bug_status>
          <resolution></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>
          <dependson>162998</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ossy</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235945</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-10-03 15:23:30 -0700</bug_when>
    <thetext>Add Display P3 ColorSpace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235946</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-10-03 15:24:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/28598564&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235947</commentid>
    <comment_count>2</comment_count>
      <attachid>290528</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-10-03 15:28:05 -0700</bug_when>
    <thetext>Created attachment 290528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235948</commentid>
    <comment_count>3</comment_count>
      <attachid>290528</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-03 15:30:51 -0700</bug_when>
    <thetext>Comment on attachment 290528
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:100
&gt; +    static CGColorSpaceRef displayP3Space = deviceRGBColorSpaceRef();

Do we really want to use device here, or fall back to sRGB?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235951</commentid>
    <comment_count>4</comment_count>
      <attachid>290529</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-10-03 15:39:54 -0700</bug_when>
    <thetext>Created attachment 290529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236899</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-10-05 22:18:49 -0700</bug_when>
    <thetext>Committed r206845: &lt;http://trac.webkit.org/changeset/206845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236905</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-05 23:06:41 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Committed r206845: &lt;http://trac.webkit.org/changeset/206845&gt;

It broke the El Capitan build,see build.webkit.org for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1236921</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-05 23:53:37 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 162998</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290528</attachid>
            <date>2016-10-03 15:28:05 -0700</date>
            <delta_ts>2016-10-03 15:29:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162880-20161003152456.patch</filename>
            <type>text/plain</type>
            <size>3452</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNlMzAyNmZkNGRmZTE0
MjM2ZjU4YjZkODdmOGVlYWYxZDFkNTliZi4uZmY1M2M4NWQ5MzU4YTI3Njg0ZjhhNDUzYTNjMmZm
NDAyNDVmMmI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE2LTEwLTAzICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAorICAgICAgICBBZGQgRGlzcGxheSBQMyBDb2xv
clNwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NjI4ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NTk4NTY0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBDb2xvclNwYWNlIGZv
ciBEaXNwbGF5IFAzLgorCisgICAgICAgIFRoaXMgd2lsbCBiZSB0ZXN0ZWQgb25jZSB0aGUgQ29s
b3IgY2xhc3MgY2FuIGNyZWF0ZQorICAgICAgICBvYmplY3RzIHRoYXQgcmVmZXJlbmNlIG90aGVy
IGNvbG9yIHNwYWNlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2Uu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpkaXNwbGF5UDNDb2xvclNwYWNlUmVmKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FjaGVkQ0dDb2xvclNwYWNlKToKKworMjAxNi0xMC0wMyAgRGVhbiBKYWNrc29uICA8ZGlu
b0BhcHBsZS5jb20+CisKICAgICAgICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIGV4dGVu
ZGVkIGNvbG9ycyB0byBXZWJDb3JlOjpDb2xvcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYyODc4CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODU5
NjQxMz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
U3BhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9yU3BhY2UuaApp
bmRleCA3NjIyYzQ3YjIwNmUwNmYyYTJlYWFjM2EzYzE1NmJjZmM0ZDU3NmFhLi5lMTJjNDBhZGNh
MWUyNDdlOTY3ZmY2MjEzMzYwZTMwOWY1NzAxMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvclNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3JTcGFjZS5oCkBAIC0zMSw3ICszMSw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGVudW0gQ29sb3JTcGFjZSB7CiAgICAgQ29sb3JTcGFjZURldmljZVJHQiwKICAg
ICBDb2xvclNwYWNlU1JHQiwKLSAgICBDb2xvclNwYWNlTGluZWFyUkdCCisgICAgQ29sb3JTcGFj
ZUxpbmVhclJHQiwKKyAgICBDb2xvclNwYWNlRGlzcGxheVAzCiB9OwogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IDNhNjYzZjUwYzhmOTZhZDBkNzc2
OGVlZmViMzBhYzk2Njg2YWRiMTUuLmM2MWE4OGQ4NGE4OGFkYjhkYTIxNTJmN2MwODI4MWUwZTc2
YTQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTkyLDYgKzkyLDE2IEBAIENHQ29sb3JTcGFj
ZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpCiAgICAgcmV0dXJuIHNSR0JTcGFjZTsKIH0KIAorQ0dD
b2xvclNwYWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKQoreworI2lmIFBMQVRGT1JNKElP
UykgfHwgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDExMDApCisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBkaXNwbGF5UDNTcGFjZSA9IENH
Q29sb3JTcGFjZUNyZWF0ZVdpdGhOYW1lKGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMpOworI2Vsc2UK
KyAgICBzdGF0aWMgQ0dDb2xvclNwYWNlUmVmIGRpc3BsYXlQM1NwYWNlID0gZGV2aWNlUkdCQ29s
b3JTcGFjZVJlZigpOworI2VuZGlmCisgICAgcmV0dXJuIGRpc3BsYXlQM1NwYWNlOworfQorCiAj
aWYgUExBVEZPUk0oV0lOKQogQ0dDb2xvclNwYWNlUmVmIGxpbmVhclJHQkNvbG9yU3BhY2VSZWYo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dy
YXBoaWNzQ29udGV4dENHLmgKaW5kZXggNGI4ODAxNjc1N2QxYmUxYmU3OGRmMTE5NThjMjU5YmYy
ZGI5ODhkZC4uZTZmMTUyNjA4NDNiYzNlNzU1NTNhYzVlOGMxOGJkNGQ2NTlmODJmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ0dDb2xv
clNwYWNlUmVmIGRldmljZVJHQkNvbG9yU3BhY2VSZWYoKTsKIFdFQkNPUkVfRVhQT1JUIENHQ29s
b3JTcGFjZVJlZiBzUkdCQ29sb3JTcGFjZVJlZigpOworV0VCQ09SRV9FWFBPUlQgQ0dDb2xvclNw
YWNlUmVmIGRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKTsKIENHQ29sb3JTcGFjZVJlZiBsaW5lYXJS
R0JDb2xvclNwYWNlUmVmKCk7CiAKIGlubGluZSBDR0FmZmluZVRyYW5zZm9ybSBnZXRVc2VyVG9C
YXNlQ1RNKENHQ29udGV4dFJlZiBjb250ZXh0KQpAQCAtNTAsNiArNTEsOCBAQCBzdGF0aWMgaW5s
aW5lIENHQ29sb3JTcGFjZVJlZiBjYWNoZWRDR0NvbG9yU3BhY2UoQ29sb3JTcGFjZSBjb2xvclNw
YWNlKQogICAgICAgICByZXR1cm4gc1JHQkNvbG9yU3BhY2VSZWYoKTsKICAgICBjYXNlIENvbG9y
U3BhY2VMaW5lYXJSR0I6CiAgICAgICAgIHJldHVybiBsaW5lYXJSR0JDb2xvclNwYWNlUmVmKCk7
CisgICAgY2FzZSBDb2xvclNwYWNlRGlzcGxheVAzOgorICAgICAgICByZXR1cm4gZGlzcGxheVAz
Q29sb3JTcGFjZVJlZigpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gZGV2aWNlUkdCQ29sb3JTcGFjZVJlZigpOwo=
</data>
<flag name="review"
          id="313704"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>290529</attachid>
            <date>2016-10-03 15:39:54 -0700</date>
            <delta_ts>2016-10-03 15:40:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-162880-20161003153645.patch</filename>
            <type>text/plain</type>
            <size>33244</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4MTUyMTQyNWEyYTQ1
NGYzNjQxYzRhMmE2NWE5MzRjNmVmOTE4YS4uNzNlMzAyNmZkNGRmZTE0MjM2ZjU4YjZkODdmOGVl
YWYxZDFkNTliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE2LTEwLTAzICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcHJlbGltaW5hcnkgc3Vw
cG9ydCBmb3IgZXh0ZW5kZWQgY29sb3JzIHRvIFdlYkNvcmU6OkNvbG9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjI4NzgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzI4NTk2NDEzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhbiBFeHRlbmRlZENvbG9yIGNsYXNzIHRoYXQgd2lsbCBob2xkIHRo
ZSBkYXRhIG5lY2Vzc2FyeQorICAgICAgICBmb3Igd2lkZXItdGhhbi1zUkdCIChhbmQgbW9yZSBw
cmVjaXNlKSBjb2xvcnMuIEluIG9yZGVyIHRvCisgICAgICAgIGF2b2lkIGluY3JlYXNpbmcgdGhl
IHNpemUgb2YgQ29sb3IsIGltcGxlbWVudCBhIHRhZ2dlZAorICAgICAgICBwb2ludGVyIHRoYXQg
aXMgZWl0aGVyIHJlZmVyZW5jaW5nIGFuIEV4dGVuZGVkQ29sb3IsIG9yCisgICAgICAgIGlzIGEg
NjQtYml0IG51bWJlciB3aXRoIHRoZSB0b3AgMzItYml0cyBiZWluZyB0aGUgUkdCQSwgYW5kCisg
ICAgICAgIHRoZSBib3R0b20gMiBiaXRzIGluZGljYXRpbmcgYW4gaW52YWxpZCBSR0JBIG9yIGEg
dmFsaWQgUkdCQSwKKyAgICAgICAgcGx1cyB0aGUgdGFnLgorCisgICAgICAgIEFkZCBjb3B5IGNv
bnN0cnVjdG9ycyBhbmQgb3BlcmF0b3I9IHNvIHRoYXQgdGhlIG5ldyBDb2xvciBvYmplY3RzCisg
ICAgICAgIGFyZSBjb3JyZWN0bHkgY29waWVkLgorCisgICAgICAgIFRoZXJlIGlzbid0IHlldCBh
IHdheSB0byBjcmVhdGUgYW4gRXh0ZW5kZWRDb2xvci4gVGhhdCdzIGNvbWluZworICAgICAgICBp
biBhIGZvbGxvd3VwIHBhdGNoIChhbmQgd2lsbCByZXF1aXJlIGNoYW5nZXMgdG8gdGhlIENTUyBw
YXJzZXIpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMsIGFuZCBuZXcgQVBJ
IHRlc3RzIGluIENvbG9yLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IGZpbGVzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwOiBVcGRhdGUgZXZlcnl0aGluZyB0byB1
c2UgbV9yZ2JhQW5kRmxhZ3MKKyAgICAgICAgaW5zdGVhZCBvZiBtX2NvbG9yICsgbV92YWxpZC4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpDb2xv
cjo6fkNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpvcGVyYXRvcj0pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sb3I6Om5hbWVGb3JSZW5kZXJUcmVlQXNUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbG9yOjpzZXROYW1lZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjps
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6ZGFyayk6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6c2V0VmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OnNldEV4dGVuZGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjppc0V4dGVuZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9yOjphc0V4dGVuZGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db2xv
ci5oOiBJbXBsZW1lbnQgdGhlIHRhZ2dlZCB1bmlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
OjpDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6aXNWYWxpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xvcjo6cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yOjpncmVlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvcjo6Ymx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6
YWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OnJnYik6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6c2V0UkdCKToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHA6IE5ldyBmaWxlLiBIb2xk
cyBmbG9hdGluZyBwb2ludAorICAgICAgICByZWQsIGdyZWVuLCBibHVlIGFuZCBhbHBoYSwgcGx1
cyBhIGNvbG9yIHNwYWNlLiBJbXBsZW1lbnRzIHJlZmVyZW5jZQorICAgICAgICBjb3VudGluZyBk
aXJlY3RseS4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFeHRlbmRlZENvbG9yOjp+RXh0ZW5kZWRDb2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpFeHRlbmRlZENvbG9yOjpyZWYpOgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5kZWRD
b2xvcjo6ZGVyZWYpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OnJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpFeHRlbmRlZENvbG9yOjpncmVlbik6CisgICAgICAgIChXZWJDb3JlOjpFeHRlbmRlZENv
bG9yOjpibHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmFscGhhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkV4dGVuZGVkQ29sb3I6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RXh0ZW5kZWRDb2xvcjo6RXh0ZW5kZWRDb2xvcik6CisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jZy9Db2xvckNHLmNwcDogVXBkYXRlIHRoZSBjb25zdHJ1Y3RvcnMgZm9yCisg
ICAgICAgIHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2xvciBjbGFzc2VzLgorICAgICAgICAoV2Vi
Q29yZTo6Q29sb3I6OkNvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ndGsvQ29s
b3JHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb2xvcjo6Q29sb3IpOgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcDogVXNlIE5ldmVyRGVzdHJveWVkLgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFjZW1l
bnRUZXh0Um91bmRlZFJlY3RQcmVzc2VkQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6cmVwbGFj
ZW1lbnRUZXh0Um91bmRlZFJlY3RDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpyZXBsYWNlbWVu
dFRleHRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjp1bmF2YWlsYWJsZVBsdWdpbkJvcmRlckNv
bG9yKToKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHA6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Ym9yZGVyU3RhcnRFZGdlQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6Ym9yZGVyRW5kRWRnZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlckZpbGxDb2xv
cik6CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDogVGhpcyBncm93
cyBpbiBzaXplIHNsaWdodGx5CisgICAgICAgIGJlY2F1c2UgaXQgY2FuIG5vIGxvbmdlciBwYWNr
IGJpdHMuCisKIDIwMTYtMDktMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSBDb2xvciByZWZlcmVuY2VzIHdoZXJlIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDc4NzdmZWQ4NzgzY2NkM2RiMWRlZTBkYWVjNGJlZGIwNTYwMTUyMTcuLjg2ZmZj
ZGQ2NTFkMGNmZjdhOTVmNmM5MjkyMTY2OTdhNzZiZTYyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0yMTkyLDYgKzIxOTIsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFBvaW50M0QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2x5Z29uLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDQyZjcyNzhjZjA3ZDM5NjM3NTQwZTY1OGYwZDBkZDE5NTkxN2ZlYmQuLmRlMTYwYTQzZjFl
NWI0ZjRlZDUwMGIxYTAwODUxNDQxODAxNDEwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzEsNiArMTM3MSw4IEBACiAJ
CTMxQzQyMjQ2MUQ3NEVCOUEwMEYxMjM0MiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzQyMjQ1
MUQ3NEVCOUEwMEYxMjM0MiAvKiBKU1BlcmZvcm1hbmNlVGltaW5nQ3VzdG9tLmNwcCAqLzsgfTsK
IAkJMzFENTkxQjMxNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFENTkxQjExNjY5N0E2QzAwRTZC
RjAyIC8qIFBsdWdJbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTMxRENEMjlEMUFCNEZCREUwMDcyRTgxNyAvKiBBbmltYXRpb25Ucmln
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMURD
RDI5QzFBQjRGQkRFMDA3MkU4MTcgLyogQW5pbWF0aW9uVHJpZ2dlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTMxRENERjQzMURBMUM0NTQwMEVB
NUI5MyAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxRENERjQxMURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9y
LmNwcCAqLzsgfTsKKwkJMzFEQ0RGNDQxREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxRENERjQy
MURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzFERUE0NTUxQjM5RjREOTAwRjc3MTc4IC8q
IFdlYlN5c3RlbUJhY2tkcm9wTGF5ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMURFQTQ1MzFCMzlGNEQ5MDBGNzcxNzggLyogV2ViU3lzdGVtQmFj
a2Ryb3BMYXllci5tbSAqLzsgfTsKIAkJMzFERUE0NTYxQjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5
c3RlbUJhY2tkcm9wTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxREVBNDU0MUIzOUY0RDkwMEY3NzE3OCAvKiBXZWJTeXN0ZW1CYWNrZHJvcExh
eWVyLmggKi87IH07CiAJCTMxREY2MzU3MUFGMTg3REQwMDc4RkQ5MSAvKiBOU0NvbG9yU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMURGNjM1NjFB
RjE4N0REMDA3OEZEOTEgLyogTlNDb2xvclNQSS5oICovOyB9OwpAQCAtODMwNyw2ICs4MzA5LDgg
QEAKIAkJMzFDNDIyNDUxRDc0RUI5QTAwRjEyMzQyIC8qIEpTUGVyZm9ybWFuY2VUaW1pbmdDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5j
ZVRpbWluZ0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxRDU5MUIx
MTY2OTdBNkMwMEU2QkYwMiAvKiBQbHVnSW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGx1Z0luQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxRENEMjlDMUFCNEZCREUwMDcyRTgxNyAvKiBBbmltYXRpb25UcmlnZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFuaW1hdGlvblRyaWdnZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzFEQ0RGNDExREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29s
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kZWRDb2xv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxRENERjQyMURBMUM0NTQwMEVB
NUI5MyAvKiBFeHRlbmRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4dGVuZGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzFERUE0NTMx
QjM5RjREOTAwRjc3MTc4IC8qIFdlYlN5c3RlbUJhY2tkcm9wTGF5ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMURFQTQ1NDFCMzlGNEQ5MDBGNzcxNzggLyog
V2ViU3lzdGVtQmFja2Ryb3BMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTeXN0ZW1CYWNrZHJvcExheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxREY2MzU2MUFGMTg3REQwMDc4RkQ5MSAvKiBOU0NvbG9yU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5TQ29sb3JTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNjM5LDYgKzIwNjQzLDggQEAKIAkJCQlDRERFMDJFOTE4QjNERkM3MDBDRjdGRjEg
LyogQ0RNU2Vzc2lvbi5oICovLAogCQkJCUIyNzUzNTM4MEIwNTM4MTQwMDJDRTY0RiAvKiBDb2xv
ci5jcHAgKi8sCiAJCQkJQjI3NTM1MzkwQjA1MzgxNDAwMkNFNjRGIC8qIENvbG9yLmggKi8sCisJ
CQkJMzFEQ0RGNDExREExQzQ1NDAwRUE1QjkzIC8qIEV4dGVuZGVkQ29sb3IuY3BwICovLAorCQkJ
CTMxRENERjQyMURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmggKi8sCiAJCQkJOTM4
MkRGNTcxMEE4RDVDOTAwOTI1NjUyIC8qIENvbG9yU3BhY2UuaCAqLywKIAkJCQkyRDJGQzA1NDE0
NjBDRDZGMDAyNjM2MzMgLyogQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCTJE
MkZDMDU1MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5oICovLApA
QCAtMjQ4MTAsNiArMjQ4MTYsNyBAQAogCQkJCTUxMDE5MkQ2MThCNkI5QjcwMDdGQzdBMSAvKiBJ
bWFnZUNvbnRyb2xzUm9vdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDE5MkQyMThC
NkI5QUIwMDdGQzdBMSAvKiBJbWFnZUNvbnRyb2xzUm9vdEVsZW1lbnRNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3Nzk3OTFBMEQ2QjlEMEMwMDM4NTFCOSAvKiBJbWFnZURhdGEuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTMxRENERjQ0MURBMUM0NTQwMEVBNUI5MyAvKiBFeHRlbmRlZENvbG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NTVCODdFRDFDQUFGMEFCMDAzNDk0MjUgLyogSW1hZ2VEZWNv
ZGVyQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MjA1QUI2MTIzOTI5MTAwMEIxNzM4MCAvKiBJ
bWFnZURvY3VtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDMjEyNTFGMTJEMDAzRUYy
NjkgLyogSW1hZ2VJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMzAyNDQsNiArMzAyNTEs
NyBAQAogCQkJCUIyMjI3QUVGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdWaWV3RWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FGMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVmlld1Nw
ZWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODQ4NTIyOEExMTkwMTczQzAwNkVEQzdGIC8qIFNW
R1ZLZXJuRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMURDREY0MzFEQTFDNDU0MDBF
QTVCOTMgLyogRXh0ZW5kZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMjIyN0FGNTBE
MDBCRjIyMDA3MUI3ODIgLyogU1ZHWm9vbUFuZFBhbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
MkU0RUM5NzBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxODA4MTEyMTZGQ0Y0MkYwMEI4MEQwNyAvKiBTeW5jaHJvbm91c0xvYWRlckNsaWVu
dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0NvbG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcAppbmRleCA4ZjY4YjE0YTQyMDYwYWJkN2VmNjEwMDU4OGU0YWEwZmU0NmFkODhjLi42
NjZjZTVmNjlkOWE0NDhhNWE1NmM0NDJhYWQ1MzEzZjZlODk4NjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuY3BwCkBAIC0yMjUsMjMgKzIyNSw1NSBAQCBpbnQg
ZGlmZmVyZW5jZVNxdWFyZWQoY29uc3QgQ29sb3ImIGMxLCBjb25zdCBDb2xvciYgYzIpCiBDb2xv
cjo6Q29sb3IoY29uc3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChuYW1lWzBdID09ICcjJykg
eworICAgICAgICBSR0JBMzIgY29sb3I7CisgICAgICAgIGJvb2wgdmFsaWQ7CisKICAgICAgICAg
aWYgKG5hbWUuaXM4Qml0KCkpCi0gICAgICAgICAgICBtX3ZhbGlkID0gcGFyc2VIZXhDb2xvcihu
YW1lLmNoYXJhY3RlcnM4KCkgKyAxLCBuYW1lLmxlbmd0aCgpIC0gMSwgbV9jb2xvcik7CisgICAg
ICAgICAgICB2YWxpZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5jaGFyYWN0ZXJzOCgpICsgMSwgbmFt
ZS5sZW5ndGgoKSAtIDEsIGNvbG9yKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV92YWxp
ZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5jaGFyYWN0ZXJzMTYoKSArIDEsIG5hbWUubGVuZ3RoKCkg
LSAxLCBtX2NvbG9yKTsKKyAgICAgICAgICAgIHZhbGlkID0gcGFyc2VIZXhDb2xvcihuYW1lLmNo
YXJhY3RlcnMxNigpICsgMSwgbmFtZS5sZW5ndGgoKSAtIDEsIGNvbG9yKTsKKworICAgICAgICBp
ZiAodmFsaWQpCisgICAgICAgICAgICBzZXRSR0IoY29sb3IpOwogICAgIH0gZWxzZQogICAgICAg
ICBzZXROYW1lZENvbG9yKG5hbWUpOwogfQogCiBDb2xvcjo6Q29sb3IoY29uc3QgY2hhciogbmFt
ZSkKIHsKKyAgICBSR0JBMzIgY29sb3I7CisgICAgYm9vbCB2YWxpZDsKICAgICBpZiAobmFtZVsw
XSA9PSAnIycpCi0gICAgICAgIG1fdmFsaWQgPSBwYXJzZUhleENvbG9yKChTdHJpbmcpJm5hbWVb
MV0sIG1fY29sb3IpOworICAgICAgICB2YWxpZCA9IHBhcnNlSGV4Q29sb3IoKFN0cmluZykmbmFt
ZVsxXSwgY29sb3IpOwogICAgIGVsc2UgewogICAgICAgICBjb25zdCBOYW1lZENvbG9yKiBmb3Vu
ZENvbG9yID0gZmluZENvbG9yKG5hbWUsIHN0cmxlbihuYW1lKSk7Ci0gICAgICAgIG1fY29sb3Ig
PSBmb3VuZENvbG9yID8gZm91bmRDb2xvci0+QVJHQlZhbHVlIDogMDsKLSAgICAgICAgbV92YWxp
ZCA9IGZvdW5kQ29sb3I7CisgICAgICAgIGNvbG9yID0gZm91bmRDb2xvciA/IGZvdW5kQ29sb3It
PkFSR0JWYWx1ZSA6IDA7CisgICAgICAgIHZhbGlkID0gZm91bmRDb2xvcjsKICAgICB9CisKKyAg
ICBpZiAodmFsaWQpCisgICAgICAgIHNldFJHQihjb2xvcik7Cit9CisKK0NvbG9yOjpDb2xvcihj
b25zdCBDb2xvciYgb3RoZXIpCisgICAgOiBtX3JnYmFBbmRGbGFncyhvdGhlci5tX3JnYmFBbmRG
bGFncykKK3sKKyAgICBpZiAoaXNFeHRlbmRlZCgpKQorICAgICAgICBtX2V4dGVuZGVkQ29sb3It
PnJlZigpOworfQorCitDb2xvcjo6fkNvbG9yKCkKK3sKKyAgICBpZiAoaXNFeHRlbmRlZCgpKQor
ICAgICAgICBtX2V4dGVuZGVkQ29sb3ItPmRlcmVmKCk7Cit9CisKK0NvbG9yJiBDb2xvcjo6b3Bl
cmF0b3I9KGNvbnN0IENvbG9yJiBvdGhlcikKK3sKKyAgICBtX3JnYmFBbmRGbGFncyA9IG90aGVy
Lm1fcmdiYUFuZEZsYWdzOworICAgIGlmIChpc0V4dGVuZGVkKCkpCisgICAgICAgIG1fZXh0ZW5k
ZWRDb2xvci0+cmVmKCk7CisgICAgcmV0dXJuICp0aGlzOwogfQogCiBTdHJpbmcgQ29sb3I6OnNl
cmlhbGl6ZWQoKSBjb25zdApAQCAtMjkxLDYgKzMyMyw3IEBAIFN0cmluZyBDb2xvcjo6Y3NzVGV4
dCgpIGNvbnN0CiAKIFN0cmluZyBDb2xvcjo6bmFtZUZvclJlbmRlclRyZWVBc1RleHQoKSBjb25z
dAogeworICAgIC8vIEZJWE1FOiBIYW5kbGUgRXh0ZW5kZWRDb2xvcnMuCiAgICAgaWYgKGFscGhh
KCkgPCAweEZGKQogICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiMlMDJYJTAyWCUwMlgl
MDJYIiwgcmVkKCksIGdyZWVuKCksIGJsdWUoKSwgYWxwaGEoKSk7CiAgICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCIjJTAyWCUwMlglMDJYIiwgcmVkKCksIGdyZWVuKCksIGJsdWUoKSk7CkBAIC0z
MTUsMTQgKzM0OCwxNiBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IE5hbWVkQ29sb3IqIGZpbmROYW1l
ZENvbG9yKGNvbnN0IFN0cmluZyYgbmFtZSkKIHZvaWQgQ29sb3I6OnNldE5hbWVkQ29sb3IoY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIGNvbnN0IE5hbWVkQ29sb3IqIGZvdW5kQ29sb3IgPSBm
aW5kTmFtZWRDb2xvcihuYW1lKTsKLSAgICBtX2NvbG9yID0gZm91bmRDb2xvciA/IGZvdW5kQ29s
b3ItPkFSR0JWYWx1ZSA6IDA7Ci0gICAgbV92YWxpZCA9IGZvdW5kQ29sb3I7CisgICAgaWYgKGZv
dW5kQ29sb3IpCisgICAgICAgIHNldFJHQihmb3VuZENvbG9yLT5BUkdCVmFsdWUpOworICAgIGVs
c2UKKyAgICAgICAgbV9yZ2JhQW5kRmxhZ3MgPSBpbnZhbGlkUkdCQUNvbG9yOwogfQogCiBDb2xv
ciBDb2xvcjo6bGlnaHQoKSBjb25zdAogewogICAgIC8vIEhhcmRjb2RlIHRoaXMgY29tbW9uIGNh
c2UgZm9yIHNwZWVkLgotICAgIGlmIChtX2NvbG9yID09IGJsYWNrKQorICAgIGlmIChyZ2IoKSA9
PSBibGFjaykKICAgICAgICAgcmV0dXJuIGxpZ2h0ZW5lZEJsYWNrOwogICAgIAogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gbmV4dGFmdGVyZigyNTYuMGYsIDAuMGYpOwpAQCAtMzQ3LDcg
KzM4Miw3IEBAIENvbG9yIENvbG9yOjpsaWdodCgpIGNvbnN0CiBDb2xvciBDb2xvcjo6ZGFyaygp
IGNvbnN0CiB7CiAgICAgLy8gSGFyZGNvZGUgdGhpcyBjb21tb24gY2FzZSBmb3Igc3BlZWQuCi0g
ICAgaWYgKG1fY29sb3IgPT0gd2hpdGUpCisgICAgaWYgKHJnYigpID09IHdoaXRlKQogICAgICAg
ICByZXR1cm4gZGFya2VuZWRXaGl0ZTsKICAgICAKICAgICBjb25zdCBmbG9hdCBzY2FsZUZhY3Rv
ciA9IG5leHRhZnRlcmYoMjU2LjBmLCAwLjBmKTsKQEAgLTU2MSw0ICs1OTYsMjggQEAgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgQ29sb3ImIGNvbG9yKQogICAg
IHJldHVybiB0cyA8PCBjb2xvci5uYW1lRm9yUmVuZGVyVHJlZUFzVGV4dCgpOwogfQogCit2b2lk
IENvbG9yOjpzZXRWYWxpZCgpCit7CisgICAgbV9yZ2JhQW5kRmxhZ3MgfD0gdmFsaWRSR0JBQ29s
b3I7Cit9CisKK3ZvaWQgQ29sb3I6OnNldEV4dGVuZGVkKCkKK3sKKyAgICAvLyBWYWxpZCBjb2xv
cnMgc2hvdWxkIG5vdCBjaGFuZ2UgdHlwZS4KKyAgICBBU1NFUlQoIWlzVmFsaWQoKSk7CisgICAg
bV9yZ2JhQW5kRmxhZ3MgJj0gfihpbnZhbGlkUkdCQUNvbG9yKTsKK30KKworYm9vbCBDb2xvcjo6
aXNFeHRlbmRlZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICEobV9yZ2JhQW5kRmxhZ3MgJiBpbnZh
bGlkUkdCQUNvbG9yKTsKK30KKworRXh0ZW5kZWRDb2xvciogQ29sb3I6OmFzRXh0ZW5kZWQoKSBj
b25zdAoreworICAgIGlmICghaXNFeHRlbmRlZCgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICByZXR1cm4gbV9leHRlbmRlZENvbG9yOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAppbmRleCA2NTIwMDNhM2M1
YjA5MGNhMWQxODQyNzFlMDBkZWI1OGNlNGZlN2U1Li5kMWRhMThlZWY2Y2QyMzk1NTBhM2U4Mzg5
MjkyMGIzMjk4M2MwZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKQEAgLTIzLDEwICsyMywxMCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBD
b2xvcl9oCi0jZGVmaW5lIENvbG9yX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQ29sb3JT
cGFjZS5oIgorI2luY2x1ZGUgIkV4dGVuZGVkQ29sb3IuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV4
cG9ydE1hY3Jvcy5oIgogI2luY2x1ZGUgPGFsZ29yaXRobT4KICNpbmNsdWRlIDxjbWF0aD4KQEAg
LTEwNSwxOSArMTA1LDQ3IEBAIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSR0JBJiwgY29uc3QgUkdC
QSYpOwogY2xhc3MgQ29sb3IgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIENvbG9yKCkgOiBtX2NvbG9yKDApLCBtX3ZhbGlkKGZhbHNlKSB7IH0KLSAgICBDb2xv
cihSR0JBLCBDb2xvclNwYWNlKTsKKyAgICBDb2xvcigpIHsgfQogCiAgICAgLy8gRklYTUU6IFJl
bW92ZSBhbGwgdGhlc2UgY29uc3RydWN0b3JzIGFuZCBjcmVhdGlvbiBmdW5jdGlvbnMgYW5kIHJl
cGxhY2UgdGhlIG9uZXMgdGhhdCBhcmUgc3RpbGwgbmVlZGVkIHdpdGggZnJlZSBmdW5jdGlvbnMu
Ci0gICAgQ29sb3IoUkdCQTMyIGNvbG9yLCBib29sIHZhbGlkID0gdHJ1ZSkgOiBtX2NvbG9yKGNv
bG9yKSwgbV92YWxpZCh2YWxpZCkgeyBBU1NFUlQoIW1fY29sb3IgfHwgbV92YWxpZCk7IH0KLSAg
ICBDb2xvcihpbnQgciwgaW50IGcsIGludCBiKSA6IG1fY29sb3IobWFrZVJHQihyLCBnLCBiKSks
IG1fdmFsaWQodHJ1ZSkgeyB9Ci0gICAgQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEp
IDogbV9jb2xvcihtYWtlUkdCQShyLCBnLCBiLCBhKSksIG1fdmFsaWQodHJ1ZSkgeyB9Ci0gICAg
Ly8gQ29sb3IgaXMgY3VycmVudGx5IGxpbWl0ZWQgdG8gMzJiaXQgUkdCQSwgcGVyaGFwcyBzb21l
IGRheSB3ZSdsbCBzdXBwb3J0IGJldHRlciBjb2xvcnMKLSAgICBDb2xvcihmbG9hdCByLCBmbG9h
dCBnLCBmbG9hdCBiLCBmbG9hdCBhKSA6IG1fY29sb3IobWFrZVJHQkEzMkZyb21GbG9hdHMociwg
ZywgYiwgYSkpLCBtX3ZhbGlkKHRydWUpIHsgfQorCisgICAgQ29sb3IoUkdCQTMyIGNvbG9yLCBi
b29sIHZhbGlkID0gdHJ1ZSkKKyAgICB7CisgICAgICAgIGlmICh2YWxpZCkKKyAgICAgICAgICAg
IHNldFJHQihjb2xvcik7CisgICAgfQorCisgICAgQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYikK
KyAgICB7CisgICAgICAgIHNldFJHQihyLCBnLCBiKTsKKyAgICB9CisKKyAgICBDb2xvcihpbnQg
ciwgaW50IGcsIGludCBiLCBpbnQgYSkKKyAgICB7CisgICAgICAgIHNldFJHQihtYWtlUkdCQShy
LCBnLCBiLCBhKSk7CisgICAgfQorCisgICAgQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQgYSkKKyAgICB7CisgICAgICAgIHNldFJHQihtYWtlUkdCQTMyRnJvbUZsb2F0cyhy
LCBnLCBiLCBhKSk7CisgICAgfQorCiAgICAgLy8gQ3JlYXRlcyBhIG5ldyBjb2xvciBmcm9tIHRo
ZSBzcGVjaWZpYyBDTVlLIGFuZCBhbHBoYSB2YWx1ZXMuCi0gICAgQ29sb3IoZmxvYXQgYywgZmxv
YXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkgOiBtX2NvbG9yKG1ha2VSR0JBRnJvbUNN
WUtBKGMsIG0sIHksIGssIGEpKSwgbV92YWxpZCh0cnVlKSB7IH0KKyAgICBDb2xvcihmbG9hdCBj
LCBmbG9hdCBtLCBmbG9hdCB5LCBmbG9hdCBrLCBmbG9hdCBhKQorICAgIHsKKyAgICAgICAgc2V0
UkdCKG1ha2VSR0JBRnJvbUNNWUtBKGMsIG0sIHksIGssIGEpKTsKKyAgICB9CisKICAgICBXRUJD
T1JFX0VYUE9SVCBleHBsaWNpdCBDb2xvcihjb25zdCBTdHJpbmcmKTsKICAgICBleHBsaWNpdCBD
b2xvcihjb25zdCBjaGFyKik7CisKKyAgICAvLyBGSVhNRTogQWRkIGNvbnN0cnVjdG9yIGZvciBF
eHRlbmRlZENvbG9yIHR5cGUuCisKKyAgICBDb2xvcihSR0JBLCBDb2xvclNwYWNlKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBDb2xvcihjb25zdCBDb2xvciYpOworCisgICAgV0VCQ09SRV9FWFBPUlQg
fkNvbG9yKCk7CisKICAgICBzdGF0aWMgQ29sb3IgY3JlYXRlVW5jaGVja2VkKGludCByLCBpbnQg
ZywgaW50IGIpCiAgICAgewogICAgICAgICBSR0JBMzIgY29sb3IgPSAweEZGMDAwMDAwIHwgciA8
PCAxNiB8IGcgPDwgOCB8IGI7CkBAIC0xNDEsMTkgKzE2OSwyMyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldE5hbWVkQ29sb3IoY29uc3QgU3RyaW5nJik7CiAKLSAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgYWZ0ZXIgbW92aW5nIGNsaWVudHMgdG8gYWxsIHVzZSBPcHRpb25hbENvbG9yIGluc3Rl
YWQuCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV92YWxpZDsgfQorICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fcmdiYUFuZEZsYWdzICYgdmFsaWRSR0JBQ29s
b3JCaXQ7IH0KIAogICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdCB7IHJldHVybiBhbHBoYSgpIDwg
MjU1OyB9CiAKLSAgICBpbnQgcmVkKCkgY29uc3QgeyByZXR1cm4gcmVkQ2hhbm5lbChtX2NvbG9y
KTsgfQotICAgIGludCBncmVlbigpIGNvbnN0IHsgcmV0dXJuIGdyZWVuQ2hhbm5lbChtX2NvbG9y
KTsgfQotICAgIGludCBibHVlKCkgY29uc3QgeyByZXR1cm4gYmx1ZUNoYW5uZWwobV9jb2xvcik7
IH0KLSAgICBpbnQgYWxwaGEoKSBjb25zdCB7IHJldHVybiBhbHBoYUNoYW5uZWwobV9jb2xvcik7
IH0KKyAgICBpbnQgcmVkKCkgY29uc3QgeyByZXR1cm4gcmVkQ2hhbm5lbChyZ2IoKSk7IH0KKyAg
ICBpbnQgZ3JlZW4oKSBjb25zdCB7IHJldHVybiBncmVlbkNoYW5uZWwocmdiKCkpOyB9CisgICAg
aW50IGJsdWUoKSBjb25zdCB7IHJldHVybiBibHVlQ2hhbm5lbChyZ2IoKSk7IH0KKyAgICBpbnQg
YWxwaGEoKSBjb25zdCB7IHJldHVybiBhbHBoYUNoYW5uZWwocmdiKCkpOyB9CiAgICAgCi0gICAg
UkdCQTMyIHJnYigpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3I7IH0gLy8gUHJlc2VydmUgdGhlIGFs
cGhhLgotICAgIHZvaWQgc2V0UkdCKGludCByLCBpbnQgZywgaW50IGIpIHsgbV9jb2xvciA9IG1h
a2VSR0IociwgZywgYik7IG1fdmFsaWQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRSR0IoUkdCQTMy
IHJnYikgeyBtX2NvbG9yID0gcmdiOyBtX3ZhbGlkID0gdHJ1ZTsgfQorICAgIFJHQkEzMiByZ2Io
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxSR0JBMzI+KG1fcmdiYUFuZEZsYWdzID4+IDMy
KTsgfQorICAgIHZvaWQgc2V0UkdCKGludCByLCBpbnQgZywgaW50IGIpIHsgc2V0UkdCKG1ha2VS
R0IociwgZywgYikpOyB9CisgICAgdm9pZCBzZXRSR0IoUkdCQTMyIHJnYikKKyAgICB7CisgICAg
ICAgIG1fcmdiYUFuZEZsYWdzID0gKHN0YXRpY19jYXN0PHVpbnQ2NF90PihyZ2IpIDw8IDMyKTsK
KyAgICAgICAgc2V0VmFsaWQoKTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdl
dFJHQkEoZmxvYXQmIHIsIGZsb2F0JiBnLCBmbG9hdCYgYiwgZmxvYXQmIGEpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0UkdCQShkb3VibGUmIHIsIGRvdWJsZSYgZywgZG91Ymxl
JiBiLCBkb3VibGUmIGEpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ2V0SFNMKGRv
dWJsZSYgaCwgZG91YmxlJiBzLCBkb3VibGUmIGwpIGNvbnN0OwpAQCAtMjA1LDkgKzIzNywyNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IFJHQkEzMiBjb21wb3NpdGlvbkZpbGwgPSAweEZG
RTFERDU1OwogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRXh0ZW5kZWQoKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBFeHRlbmRlZENvbG9yKiBhc0V4dGVuZGVkKCkgY29u
c3Q7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBDb2xvciYgb3BlcmF0b3I9KGNvbnN0IENvbG9yJik7
CisKKyAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENvbG9yJiBhLCBjb25zdCBDb2xv
ciYgYik7CisKIHByaXZhdGU6Ci0gICAgUkdCQTMyIG1fY29sb3I7Ci0gICAgYm9vbCBtX3ZhbGlk
OworCisgICAgc3RhdGljIGNvbnN0IHVpbnQ2NF90IGV4dGVuZGVkQ29sb3IgPSAweDA7CisgICAg
c3RhdGljIGNvbnN0IHVpbnQ2NF90IGludmFsaWRSR0JBQ29sb3IgPSAweDE7CisgICAgc3RhdGlj
IGNvbnN0IHVpbnQ2NF90IHZhbGlkUkdCQUNvbG9yQml0ID0gMHgyOworICAgIHN0YXRpYyBjb25z
dCB1aW50NjRfdCB2YWxpZFJHQkFDb2xvciA9IDB4MzsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0VmFsaWQoKTsKKyAgICB2b2lkIHNldEV4dGVuZGVkKCk7CisKKyAgICB1bmlvbiB7Cisg
ICAgICAgIHVpbnQ2NF90IG1fcmdiYUFuZEZsYWdzIHsgaW52YWxpZFJHQkFDb2xvciB9OworICAg
ICAgICBFeHRlbmRlZENvbG9yKiBtX2V4dGVuZGVkQ29sb3I7CisgICAgfTsKIH07CiAKIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBDb2xvciYsIGNvbnN0IENvbG9yJik7CkBAIC0yNjcsMTUgKzMxNywx
NCBAQCBpbmxpbmUgYm9vbCBSR0JBOjpoYXNBbHBoYSgpIGNvbnN0CiB9CiAKIGlubGluZSBDb2xv
cjo6Q29sb3IoUkdCQSBjb2xvciwgQ29sb3JTcGFjZSBzcGFjZSkKLSAgICA6IG1fY29sb3IoY29s
b3IubV9pbnRlZ2VyKQotICAgICwgbV92YWxpZCh0cnVlKQogeworICAgIHNldFJHQihjb2xvci5t
X2ludGVnZXIpOwogICAgIEFTU0VSVF9VTlVTRUQoc3BhY2UsIHNwYWNlID09IENvbG9yU3BhY2VT
UkdCKTsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2xvciYgYSwgY29uc3Qg
Q29sb3ImIGIpCiB7Ci0gICAgcmV0dXJuIGEucmdiKCkgPT0gYi5yZ2IoKSAmJiBhLmlzVmFsaWQo
KSA9PSBiLmlzVmFsaWQoKTsKKyAgICByZXR1cm4gYS5tX3JnYmFBbmRGbGFncyA9PSBiLm1fcmdi
YUFuZEZsYWdzOwogfQogCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENvbG9yJiBhLCBj
b25zdCBDb2xvciYgYikKQEAgLTMxNSw1ICszNjQsMyBAQCBpbmxpbmUgUkdCQTMyIGNvbG9yV2l0
aE92ZXJyaWRlQWxwaGEoUkdCQTMyIGNvbG9yLCBPcHRpb25hbDxmbG9hdD4gb3ZlcnJpZGVBbHBo
YQogV0VCQ09SRV9FWFBPUlQgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29u
c3QgQ29sb3ImKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gQ29sb3Jf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRD
b2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbmRlZENvbG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NzQ3OGQyYjQ3N2M2ODQxM2E0NmE4ZWIzNWM0NmRjMTA3ZGMzY2Rj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5kZWRDb2xvci5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFeHRl
bmRlZENvbG9yLmgiCisKKyNpbmNsdWRlICJDb2xvclNwYWNlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworRXh0ZW5kZWRDb2xvciogRXh0ZW5kZWRDb2xvcjo6Y3JlYXRlKGZsb2F0IHIsIGZs
b2F0IGcsIGZsb2F0IGIsIGZsb2F0IGEsIGNvbnN0IENvbG9yU3BhY2UmIGNvbG9yU3BhY2UpCit7
CisgICAgRXh0ZW5kZWRDb2xvciogY29sb3IgPSBuZXcgRXh0ZW5kZWRDb2xvcihyLCBnLCBiLCBh
LCBjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gY29sb3I7Cit9CisKK0V4dGVuZGVkQ29sb3I6On5F
eHRlbmRlZENvbG9yKCkKK3sKK30KKwordm9pZCBFeHRlbmRlZENvbG9yOjpyZWYoKQoreworICAg
ICsrbV9yZWZDb3VudDsKK30KKwordm9pZCBFeHRlbmRlZENvbG9yOjpkZXJlZigpCit7CisgICAg
QVNTRVJUKG1fcmVmQ291bnQpOworICAgIGlmICghLS1tX3JlZkNvdW50KQorICAgICAgICBkZWxl
dGUgdGhpczsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRXh0ZW5kZWRDb2xvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RXh0ZW5kZWRDb2xvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNzNjYTk5M2I4N2MzYzM1N2Y3OWJhMmRkZDJj
MTg5MGM0MmI4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbmRlZENvbG9yLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
Q29sb3JTcGFjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV4dGVuZGVkQ29s
b3IgeworcHVibGljOgorICAgIHN0YXRpYyBFeHRlbmRlZENvbG9yKiBjcmVhdGUoZmxvYXQgciwg
ZmxvYXQgZywgZmxvYXQgYiwgZmxvYXQgYSwgY29uc3QgQ29sb3JTcGFjZSYgY29sb3JTcGFjZSA9
IENvbG9yU3BhY2U6OkNvbG9yU3BhY2VTUkdCKTsKKworICAgIH5FeHRlbmRlZENvbG9yKCk7CisK
KyAgICBmbG9hdCByZWQoKSBjb25zdCB7IHJldHVybiBtX3JlZDsgfQorICAgIGZsb2F0IGdyZWVu
KCkgY29uc3QgeyByZXR1cm4gbV9ncmVlbjsgfQorICAgIGZsb2F0IGJsdWUoKSBjb25zdCB7IHJl
dHVybiBtX2JsdWU7IH0KKyAgICBmbG9hdCBhbHBoYSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxwaGE7
IH0KKworICAgIGNvbnN0IENvbG9yU3BhY2UmIGNvbG9yU3BhY2UoKSBjb25zdCB7IHJldHVybiBt
X2NvbG9yU3BhY2U7IH0KKworICAgIHZvaWQgcmVmKCk7CisgICAgdm9pZCBkZXJlZigpOworCitw
cml2YXRlOgorICAgIEV4dGVuZGVkQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEsIGNv
bnN0IENvbG9yU3BhY2UmIGNvbG9yU3BhY2UpCisgICAgICAgIDogbV9yZWQocikKKyAgICAgICAg
LCBtX2dyZWVuKGcpCisgICAgICAgICwgbV9ibHVlKGIpCisgICAgICAgICwgbV9hbHBoYShhKQor
ICAgICAgICAsIG1fY29sb3JTcGFjZShjb2xvclNwYWNlKQorICAgIHsgfQorCisgICAgZmxvYXQg
bV9yZWQgeyAwIH07CisgICAgZmxvYXQgbV9ncmVlbiB7IDAgfTsKKyAgICBmbG9hdCBtX2JsdWUg
eyAwIH07CisgICAgZmxvYXQgbV9hbHBoYSB7IDAgfTsKKworICAgIENvbG9yU3BhY2UgbV9jb2xv
clNwYWNlIHsgQ29sb3JTcGFjZTo6Q29sb3JTcGFjZVNSR0IgfTsKKworICAgIHVuc2lnbmVkIG1f
cmVmQ291bnQgeyAxIH07Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBjZTU4YTI1MTkyNWE2
NjgyYjNjN2YwMWFkYzg4YTBiNzQ4NTNlYjZiLi5lNzYxYzU5ZTg1MzA5OTUwY2FiNTAyNWI1ODdk
NjlkNDhjYTQzNzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTEzNjksOCArMTM2OSw4IEBAIHZvaWQg
R3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNvbnN0IENvbW1pdFN0YXRl
JiBjb21taXRTdGF0ZSwgY29uCiAgICAgLy8gVXNlIGhhdmluZyBhIHRyYW5zZm9ybSBhcyBhIGtl
eSB0byBtYWtpbmcgdGhlIHRpbGUgd2FzaCBsYXllci4gSWYgZXZlcnkgbGF5ZXIgZ2V0cyBhIHdh
c2gsCiAgICAgLy8gdGhleSBzdGFydCB0byBvYnNjdXJlIHVzZWZ1bCBpbmZvcm1hdGlvbi4KICAg
ICBpZiAoKCFtX3RyYW5zZm9ybS5pc0lkZW50aXR5KCkgfHwgbV91c2luZ1RpbGVkQmFja2luZykg
JiYgIW1fdmlzaWJsZVRpbGVXYXNoTGF5ZXIpIHsKLSAgICAgICAgc3RhdGljIENvbG9yIHdhc2hG
aWxsQ29sb3IoMjU1LCAwLCAwLCA1MCk7Ci0gICAgICAgIHN0YXRpYyBDb2xvciB3YXNoQm9yZGVy
Q29sb3IoMjU1LCAwLCAwLCAxMDApOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29s
b3I+IHdhc2hGaWxsQ29sb3IoMjU1LCAwLCAwLCA1MCk7CisgICAgICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxDb2xvcj4gd2FzaEJvcmRlckNvbG9yKDI1NSwgMCwgMCwgMTAwKTsKICAgICAgICAg
CiAgICAgICAgIG1fdmlzaWJsZVRpbGVXYXNoTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIo
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVMYXllciwgdGhpcyk7CiAgICAgICAgIFN0cmluZyBu
YW1lID0gU3RyaW5nOjpmb3JtYXQoIlZpc2libGUgVGlsZSBXYXNoIExheWVyICVwIiwgbV92aXNp
YmxlVGlsZVdhc2hMYXllci0+cGxhdGZvcm1MYXllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0NvbG9yQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29sb3JDRy5jcHAKaW5kZXggNmQ4OGM4OGRkNGFhNmQyZDBh
YzM0ZDMxNGFmNmRmMmJhZTI3ZDU5OC4uNzNmZGUyMDAyYzMzNzVhMmQ3YzZiYzU2NTMxNDJhMzU4
NWZkNjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
Q29sb3JDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvQ29s
b3JDRy5jcHAKQEAgLTczLDggKzczLDcgQEAgc3RhdGljIENHQ29sb3JSZWYgY3JlYXRlQ0dDb2xv
cldpdGhEZXZpY2VSR0JBKENHQ29sb3JSZWYgc291cmNlQ29sb3IpCiBDb2xvcjo6Q29sb3IoQ0dD
b2xvclJlZiBjb2xvcikKIHsKICAgICBpZiAoIWNvbG9yKSB7Ci0gICAgICAgIG1fY29sb3IgPSAw
OwotICAgICAgICBtX3ZhbGlkID0gZmFsc2U7CisgICAgICAgIG1fcmdiYUFuZEZsYWdzID0gaW52
YWxpZFJHQkFDb2xvcjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTExLDggKzExMCw3
IEBAIENvbG9yOjpDb2xvcihDR0NvbG9yUmVmIGNvbG9yKQogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKICAgICB9CiAKLSAgICBtX2NvbG9yID0gbWFrZVJHQkEociAqIDI1NSwgZyAqIDI1
NSwgYiAqIDI1NSwgYSAqIDI1NSk7Ci0gICAgbV92YWxpZCA9IHRydWU7CisgICAgc2V0UkdCKG1h
a2VSR0JBKHIgKiAyNTUsIGcgKiAyNTUsIGIgKiAyNTUsIGEgKiAyNTUpKTsKIH0KIAogc3RhdGlj
IENHQ29sb3JSZWYgbGVha0NHQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Db2xvckd0ay5jcHAKaW5kZXggOGY1NmJh
NmZiNGUwYjY1YTk5YzI3M2QzYjQ3MGJmZGI2YjM1YjlhZi4uYWVhMzdmOGMxZDM2ZjVmYWEzYTNi
ZGM5MzRhMWFjMDY5YTAxNTEyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3RrL0NvbG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ndGsvQ29sb3JHdGsuY3BwCkBAIC0yNiwxOSArMjYsMTcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKGNvbnN0IEdka0NvbG9yJiBjKQotICAgIDogbV9jb2xv
cihtYWtlUkdCKGMucmVkID4+IDgsIGMuZ3JlZW4gPj4gOCwgYy5ibHVlID4+IDgpKQotICAgICwg
bV92YWxpZCh0cnVlKQogeworICAgIHNldFJHQihtYWtlUkdCKGMucmVkID4+IDgsIGMuZ3JlZW4g
Pj4gOCwgYy5ibHVlID4+IDgpKTsKIH0KIAogI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogQ29s
b3I6OkNvbG9yKGNvbnN0IEdka1JHQkEmIGMpCi0gICAgOiBtX2NvbG9yKG1ha2VSR0JBKHN0YXRp
Y19jYXN0PGludD4oYy5yZWQgKiAyNTUpLAotICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxpbnQ+KGMuZ3JlZW4gKiAyNTUpLAotICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNf
Y2FzdDxpbnQ+KGMuYmx1ZSAqIDI1NSksCi0gICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19j
YXN0PGludD4oYy5hbHBoYSAqIDI1NSkpKQotICAgICwgbV92YWxpZCh0cnVlKQogeworICAgIHNl
dFJHQihtYWtlUkdCQShzdGF0aWNfY2FzdDxpbnQ+KGMucmVkICogMjU1KSwKKyAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50PihjLmdyZWVuICogMjU1KSwKKyAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihj
LmJsdWUgKiAyNTUpLAorICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGMuYWxwaGEgKiAyNTUpKSk7
CiB9CiAKIENvbG9yOjpvcGVyYXRvciBHZGtSR0JBKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNwcAppbmRleCA5
MWMxZGExOTNmYmIxNWQzNGQ3MzQ1YzE1NDQ1NzdkOGE3MWQ2YTYwLi43MjRhMTA1ZTI0ZmY3MTQ5
MzczNTNkYWZiZTJkMmI2OTBhZGVlNzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vQ29sb3JEaXJlY3QyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9yRGlyZWN0MkQuY3BwCkBAIC0zNCw4ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29sb3I6OkNvbG9yKEQyRDFfQ09MT1JfRiBjb2xvcikK
IHsKLSAgICBtX2NvbG9yID0gbWFrZVJHQkEoY29sb3IuciAqIDI1NSwgY29sb3IuZyAqIDI1NSwg
Y29sb3IuYiAqIDI1NSwgY29sb3IuYSAqIDI1NSk7Ci0gICAgbV92YWxpZCA9IHRydWU7CisgICAg
c2V0UkdCKG1ha2VSR0JBKGNvbG9yLnIgKiAyNTUsIGNvbG9yLmcgKiAyNTUsIGNvbG9yLmIgKiAy
NTUsIGNvbG9yLmEgKiAyNTUpKTsKIH0KIAogQ29sb3I6Om9wZXJhdG9yIEQyRDFfQ09MT1JfRigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcAppbmRleCAzODgyMTllNTg5NTJhNmNlOWQyMTNjZTU5Zjg2ODNmZjZjYjg4MjYxLi4w
ZWIxNWE0NWE1MGQ4MTE0NDYzYzA1ZmFkMDg5Yzg1MjM5ZmYxYzhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTc1LDI1ICs3
NSwyNSBAQCBzdGF0aWMgY29uc3QgZmxvYXQgcmVwbGFjZW1lbnRBcnJvd0NpcmNsZVBhZGRpbmcg
PSAzOwogCiBzdGF0aWMgY29uc3QgQ29sb3ImIHJlcGxhY2VtZW50VGV4dFJvdW5kZWRSZWN0UHJl
c3NlZENvbG9yKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgQ29sb3IgcHJlc3NlZCgxMDUsIDEwNSwg
MTA1LCAyNDIpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb2xvcj4gcHJlc3NlZCgxMDUs
IDEwNSwgMTA1LCAyNDIpOwogICAgIHJldHVybiBwcmVzc2VkOwogfQogCiBzdGF0aWMgY29uc3Qg
Q29sb3ImIHJlcGxhY2VtZW50VGV4dFJvdW5kZWRSZWN0Q29sb3IoKQogewotICAgIHN0YXRpYyBj
b25zdCBDb2xvciBzdGFuZGFyZCgxMjUsIDEyNSwgMTI1LCAyNDIpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxDb2xvcj4gc3RhbmRhcmQoMTI1LCAxMjUsIDEyNSwgMjQyKTsKICAgICByZXR1
cm4gc3RhbmRhcmQ7CiB9CiAKIHN0YXRpYyBjb25zdCBDb2xvciYgcmVwbGFjZW1lbnRUZXh0Q29s
b3IoKQogewotICAgIHN0YXRpYyBjb25zdCBDb2xvciBzdGFuZGFyZCgyNDAsIDI0MCwgMjQwLCAy
NTUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb2xvcj4gc3RhbmRhcmQoMjQwLCAyNDAs
IDI0MCwgMjU1KTsKICAgICByZXR1cm4gc3RhbmRhcmQ7CiB9CiAKIHN0YXRpYyBjb25zdCBDb2xv
ciYgdW5hdmFpbGFibGVQbHVnaW5Cb3JkZXJDb2xvcigpCiB7Ci0gICAgc3RhdGljIGNvbnN0IENv
bG9yIHN0YW5kYXJkKDI1NSwgMjU1LCAyNTUsIDIxNik7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPENvbG9yPiBzdGFuZGFyZCgyNTUsIDI1NSwgMjU1LCAyMTYpOwogICAgIHJldHVybiBzdGFu
ZGFyZDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZy
YW1lU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAK
aW5kZXggMTc5YmQ0MjZjZWE4NjYzZWRkYTA1MjZhMWVjOWYyN2Q2NTRhODlhZi4uNzc0OGM0Nzhl
YjBkZTQ4Njg1NWFlMWRlZjc4NTZiYjMyZjI1MzY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCkBAIC02OSwxOSArNjksMTkgQEAgUmVuZGVyRnJhbWVT
ZXQ6OkdyaWRBeGlzOjpHcmlkQXhpcygpCiAKIHN0YXRpYyBjb25zdCBDb2xvciYgYm9yZGVyU3Rh
cnRFZGdlQ29sb3IoKQogewotICAgIHN0YXRpYyBjb25zdCBDb2xvciBjb2xvcigxNzAsIDE3MCwg
MTcwKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGNvbG9yKDE3MCwgMTcwLCAx
NzApOwogICAgIHJldHVybiBjb2xvcjsKIH0KIAogc3RhdGljIGNvbnN0IENvbG9yJiBib3JkZXJF
bmRFZGdlQ29sb3IoKQogewotICAgIHN0YXRpYyBjb25zdCBDb2xvciBjb2xvciA9IENvbG9yOjpi
bGFjazsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGNvbG9yID0gQ29sb3I6OmJs
YWNrOwogICAgIHJldHVybiBjb2xvcjsKIH0KIAogc3RhdGljIGNvbnN0IENvbG9yJiBib3JkZXJG
aWxsQ29sb3IoKQogewotICAgIHN0YXRpYyBjb25zdCBDb2xvciBjb2xvcigyMDgsIDIwOCwgMjA4
KTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29sb3I+IGNvbG9yKDIwOCwgMjA4LCAyMDgp
OwogICAgIHJldHVybiBjb2xvcjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcAppbmRleCA0NWQ4YzdiZWI0MWU2YmI4ZDQwZWYzM2Y3ZGFjNGM0N2Qy
NGJjYTIyLi5jMDBjYmNjOTkxM2QxM2Q3NmYxN2FmZDgzMmM4NjhmMmFiNzhlYjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtNTIsNyArNTIs
NyBAQCBzdHJ1Y3QgU2FtZVNpemVBc1JlbmRlclRhYmxlQ2VsbCA6IHB1YmxpYyBSZW5kZXJCbG9j
a0Zsb3cgewogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlclRhYmxlQ2VsbCkgPT0g
c2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJUYWJsZUNlbGwpLCBSZW5kZXJUYWJsZUNlbGxfc2hvdWxk
X3N0YXlfc21hbGwpOwotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENvbGxhcHNlZEJvcmRlclZhbHVl
KSA9PSAxNiwgQ29sbGFwc2VkQm9yZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21hbGwpOworQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKENvbGxhcHNlZEJvcmRlclZhbHVlKSA8PSAyNCwgQ29sbGFwc2VkQm9y
ZGVyVmFsdWVfc2hvdWxkX3N0YXlfc21hbGwpOwogCiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRh
YmxlQ2VsbChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIDogUmVu
ZGVyQmxvY2tGbG93KGVsZW1lbnQsIFdURk1vdmUoc3R5bGUpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDg3OTBmNzljM2QzMTk1NTc5MTljZGE4MzI1
Y2JkZmYzMWVlNzhlZWIuLmJmODY3NDgzNDYzNTM4MzQzZmYxMDdhNmUxYmFiNDI3ZDMwZTBkNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTMyNSw3
ICszMjUsNyBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjpzZXRDb250ZW50U2l6ZUNhdGVnb3J5KGNv
bnN0IFN0cmluZyYgY29udGVudFNpemVDYXRlZ29yeSkKIAogY29uc3QgQ29sb3ImIFJlbmRlclRo
ZW1lSU9TOjpzaGFkb3dDb2xvcigpIGNvbnN0CiB7Ci0gICAgc3RhdGljIENvbG9yIGNvbG9yKDAu
MGYsIDAuMGYsIDAuMGYsIDAuN2YpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb2xvcj4g
Y29sb3IoMC4wZiwgMC4wZiwgMC4wZiwgMC43Zik7CiAgICAgcmV0dXJuIGNvbG9yOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkluZGljYXRlTGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkluZGljYXRlTGF5ZXIubW0KaW5kZXggZjk0
NDRkYzM3NGUwNDJiNmQwNTA3NzBhMjYwNzJlMWU3YmUxMmM0ZC4uMmYwYzE2NmNkNTI4Mjc3M2Vi
OTBlOWUzOWE5Y2I1YjQ1ZGZmYTkyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJJbmRpY2F0ZUxheWVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViSW5kaWNhdGVMYXllci5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9D
b2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dBS1dpbmRvdy5oPgorI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00OSw3ICs1MCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IFtbX3dlYlZpZXcgd2luZG93XSBz
Y3JlZW5TY2FsZV07CiAKICAgICAvLyBCbHVlIGhpZ2hsaWdodCBjb2xvci4KLSAgICBzdGF0aWMg
Q29sb3IgaGlnaGxpZ2h0Q29sb3IoMTExLjBmIC8gMjU1LjBmLCAxNjguMGYgLyAyNTUuMGYsIDIy
MC4wZiAvIDI1NS4wZiwgMC42NmYpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb2xvcj4g
aGlnaGxpZ2h0Q29sb3IoMTExLjBmIC8gMjU1LjBmLCAxNjguMGYgLyAyNTUuMGYsIDIyMC4wZiAv
IDI1NS4wZiwgMC42NmYpOwogICAgIHNlbGYuYmFja2dyb3VuZENvbG9yID0gY2FjaGVkQ0dDb2xv
cihoaWdobGlnaHRDb2xvcik7CiAKICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYmFjMTA4M2I2OTFkZjY4Y2FiMWJl
MmFhZGYyODAyYjYwMTEzOWM5Li44MjZmYzg4NWY5ZmMwMmYzY2Q2YWFlNWIzNmM4NWUwYTA2MDI2
YTYyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTYtMTAtMDMgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBleHRlbmRlZCBjb2xvcnMg
dG8gV2ViQ29yZTo6Q29sb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2Mjg3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjg1OTY0MTM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBuZXcgQVBJIHRl
c3QgZm9yIENvbG9ycy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b2xvci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNi0wOS0yNyAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZG9wdCBN
ZWRpYVJlbW90ZSBTUEkgdG8gYWNoaWV2ZSBkZXNpcmVkIE5vdyBQbGF5aW5nIGJlaGF2aW9yCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29sb3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbG9yLmNwcAppbmRleCBlOGU2ODIw
ZTU2Y2YxM2FkOTA2MGQ5NDEyNGM2OGIzZmJhZTZkOTMzLi44NTYyNWQyNzc0ODgyMzA2ZDc0MTk0
OTUwOTZkZmY2N2Q5NzVmOTBmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29sb3IuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9Db2xvci5jcHAKQEAgLTE0NCw0ICsxNDQsMjcgQEAgVEVTVChDb2xvciwgUkdCVG9IU1ZfTGln
aHRHcmF5KQogICAgIEVYUEVDVF9ET1VCTEVfRVEoMC43NTI5NDExNzY0NzA1ODgyMiwgdik7CiB9
CiAKK1RFU1QoQ29sb3IsIFZhbGlkaXR5KQoreworICAgIENvbG9yIGludmFsaWRDb2xvcjsKKyAg
ICBFWFBFQ1RfRkFMU0UoaW52YWxpZENvbG9yLmlzVmFsaWQoKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGludmFsaWRDb2xvci5pc0V4dGVuZGVkKCkpOworICAgIEVYUEVDVF9UUlVFKGludmFsaWRDb2xv
ci5hc0V4dGVuZGVkKCkgPT0gbnVsbHB0cik7CisKKyAgICBDb2xvciBvdGhlckludmFsaWRDb2xv
ciA9IGludmFsaWRDb2xvcjsKKyAgICBFWFBFQ1RfRkFMU0Uob3RoZXJJbnZhbGlkQ29sb3IuaXNW
YWxpZCgpKTsKKyAgICBFWFBFQ1RfRkFMU0Uob3RoZXJJbnZhbGlkQ29sb3IuaXNFeHRlbmRlZCgp
KTsKKyAgICBFWFBFQ1RfVFJVRShvdGhlckludmFsaWRDb2xvci5hc0V4dGVuZGVkKCkgPT0gbnVs
bHB0cik7CisKKyAgICBDb2xvciB2YWxpZENvbG9yKDI1NSwgMCwgMCk7CisgICAgRVhQRUNUX1RS
VUUodmFsaWRDb2xvci5pc1ZhbGlkKCkpOworICAgIEVYUEVDVF9GQUxTRSh2YWxpZENvbG9yLmlz
RXh0ZW5kZWQoKSk7CisgICAgRVhQRUNUX1RSVUUodmFsaWRDb2xvci5hc0V4dGVuZGVkKCkgPT0g
bnVsbHB0cik7CisKKyAgICBDb2xvciBvdGhlclZhbGlkQ29sb3IgPSB2YWxpZENvbG9yOworICAg
IEVYUEVDVF9UUlVFKG90aGVyVmFsaWRDb2xvci5pc1ZhbGlkKCkpOworICAgIEVYUEVDVF9GQUxT
RShvdGhlclZhbGlkQ29sb3IuaXNFeHRlbmRlZCgpKTsKKyAgICBFWFBFQ1RfVFJVRShvdGhlclZh
bGlkQ29sb3IuYXNFeHRlbmRlZCgpID09IG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>