<?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>144221</bug_id>
          
          <creation_ts>2015-04-26 06:42:03 -0700</creation_ts>
          <short_desc>[WK2] API::Dictionary creation functions should return Ref&lt;&gt;</short_desc>
          <delta_ts>2015-04-27 13:16:34 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1088744</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-26 06:42:03 -0700</bug_when>
    <thetext>API::Dictionary creation functions should return Ref&lt;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088746</commentid>
    <comment_count>1</comment_count>
      <attachid>251685</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-26 06:42:53 -0700</bug_when>
    <thetext>Created attachment 251685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088747</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-26 06:45:38 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1088758</commentid>
    <comment_count>3</comment_count>
      <attachid>251692</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-26 07:06:55 -0700</bug_when>
    <thetext>Created attachment 251692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089152</commentid>
    <comment_count>4</comment_count>
      <attachid>251692</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-27 13:16:25 -0700</bug_when>
    <thetext>Comment on attachment 251692
Patch

Clearing flags on attachment: 251692

Committed r183412: &lt;http://trac.webkit.org/changeset/183412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1089153</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-04-27 13:16:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251685</attachid>
            <date>2015-04-26 06:42:53 -0700</date>
            <delta_ts>2015-04-26 07:06:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144221-20150426154145.patch</filename>
            <type>text/plain</type>
            <size>29047</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTUwODgyZTc0MTE2ZTM5
NzJhZDkzYjZjYTVjYTBjYTZiODI2MDEzNC4uMjZlYjBkNjRkYzNiYTkxOTNmYjRiZmNlMzU4ODA3
MGI5ZDgxODcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE1LTA0LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBBUEk6OkRpY3Rpb25h
cnkgY3JlYXRpb24gZnVuY3Rpb25zIHNob3VsZCByZXR1cm4gUmVmPD4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDIyMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmUgQVBJOjpEaWN0aW9uYXJ5IGNy
ZWF0aW9uIGZ1bmN0aW9ucyByZXR1cm4gUmVmPD4uCisgICAgICAgIFRoZSBjYWxsLXNpdGVzIGFy
ZSBhbHNvIHVwZGF0ZWQsIHVzaW5nIGFuZCBvcGVyYXRpbmcKKyAgICAgICAgb24gdGhlIHJldHVy
bmVkIFJlZjw+IG9iamVjdCB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIFNoYXJlZC9BUEkv
QVBJRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSk6Cisg
ICAgICAgICogU2hhcmVkL0FQSS9BUElEaWN0aW9uYXJ5Lmg6CisgICAgICAgICogU2hhcmVkL0FQ
SS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tOgorICAgICAgICAoY3JlYXRlRW5jb2RlZE9i
amVjdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eS5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX3NlbmRJbnZvY2F0aW9u
OmludGVyZmFjZTpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcDoK
KyAgICAgICAgKFdLRGljdGlvbmFyeUNyZWF0ZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
TXV0YWJsZURpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0
ZSk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkp
OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNv
bnRleHQuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X3ByZWZldGNoX2Rucyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZURp
Y3Rpb25hcnlGcm9tSGFzaE1hcCk6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NSZXF1ZXN0
Ojpjb21wbGV0ZWRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRm9ybUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3JtKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAgICAgIChk
aWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgICh3aWxsU2VuZFJlcXVlc3RGb3JG
cmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6CisgICAgICAg
IChkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKToKKyAgICAgICAgKGRpZEZpbmlz
aExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChkaWRGYWlsTG9hZEZvclJlc291cmNlKToKKyAg
ICAgICAgKHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNlbmRTdWJt
aXRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6
OndpbGxTdWJtaXRGb3JtKToKKwogMjAxNS0wNC0yNSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGdXJ0aGVyIHVwZGF0ZSBnZXN0dXJlIHN3aXBlIHNo
YWRvdyBzdHlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElEaWN0
aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFyeS5jcHAK
aW5kZXggMWRmMzdlMGM1NmI2NDJjZjY2MGM3MWMzZmMwNmUzZDc2ZjlmNzFlOC4uMmI3NjNhZmFj
NmRlODU2MTA4ZjIwZDJlYzk5MGIwNjMxYzE1NTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9BUElEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL0FQSURpY3Rpb25hcnkuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKIAogbmFtZXNwYWNl
IEFQSSB7CiAKLVJlZlB0cjxEaWN0aW9uYXJ5PiBEaWN0aW9uYXJ5OjpjcmVhdGUoKQorUmVmPERp
Y3Rpb25hcnk+IERpY3Rpb25hcnk6OmNyZWF0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZSh7IH0p
OwogfQogCi1SZWZQdHI8RGljdGlvbmFyeT4gRGljdGlvbmFyeTo6Y3JlYXRlKE1hcFR5cGUgbWFw
KQorUmVmPERpY3Rpb25hcnk+IERpY3Rpb25hcnk6OmNyZWF0ZShNYXBUeXBlIG1hcCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3Rpb25hcnkoV1RGOjptb3ZlKG1hcCkpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0aW9uYXJ5KFdURjo6bW92ZShtYXApKSk7CiB9CiAKIERp
Y3Rpb25hcnk6OkRpY3Rpb25hcnkoTWFwVHlwZSBtYXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL0FQSURpY3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQVBJRGljdGlvbmFyeS5oCmluZGV4IDg0N2UxNDdlN2U1OWZjMTI5ZTNmNzM2ZjI4YjBkNzY5
ZGJiM2YwN2EuLmE4ZDI5NWViZDcwZTgzMmQwMWJjM2EyOTIwNzNkZjQwN2EwMTA1OGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFyeS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFyeS5oCkBAIC00MCw4ICs0MCw4IEBA
IGNsYXNzIERpY3Rpb25hcnkgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6
OkRpY3Rpb25hcnk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8V1RGOjpTdHJpbmcs
IFJlZlB0cjxPYmplY3Q+PiBNYXBUeXBlOwogCi0gICAgc3RhdGljIFJlZlB0cjxEaWN0aW9uYXJ5
PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUmVmUHRyPERpY3Rpb25hcnk+IGNyZWF0ZShNYXBUeXBl
KTsKKyAgICBzdGF0aWMgUmVmPERpY3Rpb25hcnk+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBSZWY8
RGljdGlvbmFyeT4gY3JlYXRlKE1hcFR5cGUpOwogCiAgICAgdmlydHVhbCB+RGljdGlvbmFyeSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVtb3Rl
T2JqZWN0Q29kZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVtb3Rl
T2JqZWN0Q29kZXIubW0KaW5kZXggOTU0MjExYmE1ZTljYjUyMGY1Mjk3MjMzYzk0NmQ4NTFhODNl
NWE4MC4uNzk3MjA5NDljMzJmNjQyZTI0ZWM4NDc2ZTNlNTNlYWRhMDQ1OTYzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RDb2Rl
ci5tbQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgb2JqZWN0U3Ry
ZWFtS2V5ID0gIiRvYmplY3RTdHJlYW0iOwogc3RhdGljIE5TU3RyaW5nICogY29uc3Qgc2VsZWN0
b3JLZXkgPSBAInNlbGVjdG9yIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHR5cGVTdHJpbmdL
ZXkgPSBAInR5cGVTdHJpbmciOwogCi1zdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+
IGNyZWF0ZUVuY29kZWRPYmplY3QoV0tSZW1vdGVPYmplY3RFbmNvZGVyICosIGlkKTsKK3N0YXRp
YyBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVFbmNvZGVkT2JqZWN0KFdLUmVtb3RlT2Jq
ZWN0RW5jb2RlciAqLCBpZCk7CiAKIEBpbnRlcmZhY2UgTlNNZXRob2RTaWduYXR1cmUgKERldGFp
bHMpCiAtIChOU1N0cmluZyAqKV90eXBlU3RyaW5nOwpAQCAtMjM4LDE3ICsyMzgsMTcgQEAgc3Rh
dGljIHZvaWQgZW5jb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5jb2RlciwgaWQg
b2JqZWN0KQogICAgIFtvYmplY3QgZW5jb2RlV2l0aENvZGVyOmVuY29kZXJdOwogfQogCi1zdGF0
aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZUVuY29kZWRPYmplY3QoV0tSZW1v
dGVPYmplY3RFbmNvZGVyICplbmNvZGVyLCBpZCBvYmplY3QpCitzdGF0aWMgUmVmUHRyPEFQSTo6
RGljdGlvbmFyeT4gY3JlYXRlRW5jb2RlZE9iamVjdChXS1JlbW90ZU9iamVjdEVuY29kZXIgKmVu
Y29kZXIsIGlkIG9iamVjdCkKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGRpY3Rpb25hcnkgPSBBUEk6OkRpY3Rp
b25hcnk6OmNyZWF0ZSgpOwotICAgIFRlbXBvcmFyeUNoYW5nZTxBUEk6OkRpY3Rpb25hcnkqPiBk
aWN0aW9uYXJ5Q2hhbmdlKGVuY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlvbmFyeS5n
ZXQoKSk7CisgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IEFQSTo6RGljdGlv
bmFyeTo6Y3JlYXRlKCk7CisgICAgVGVtcG9yYXJ5Q2hhbmdlPEFQSTo6RGljdGlvbmFyeSo+IGRp
Y3Rpb25hcnlDaGFuZ2UoZW5jb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0aW9uYXJ5LnB0
cigpKTsKIAogICAgIGVuY29kZU9iamVjdChlbmNvZGVyLCBvYmplY3QpOwogCi0gICAgcmV0dXJu
IGRpY3Rpb25hcnk7CisgICAgcmV0dXJuIFdURjo6bW92ZShkaWN0aW9uYXJ5KTsKIH0KIAogLSAo
dm9pZCllbmNvZGVWYWx1ZU9mT2JqQ1R5cGU6KGNvbnN0IGNoYXIgKil0eXBlIGF0Oihjb25zdCB2
b2lkICopYWRkcmVzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggZjVlOWMwOTQ3ZDRmMmFiNmU1
OGEwYWIzYTIwMWYxMTZhODIxZDdlYi4uMmUxNGFlZWE5NTc0ZTZmYjRkNzYxNjQ3NmI5NTQ0OWY5
MDk3ODdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9fV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFJldGFpblB0cjxXS1JlbW90ZU9iamVjdEVuY29kZXI+
IGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmplY3RFbmNvZGVyIGFsbG9jXSBpbml0XSk7
CiAgICAgW2VuY29kZXIgZW5jb2RlT2JqZWN0Omludm9jYXRpb24gZm9yS2V5Omludm9jYXRpb25L
ZXldOwogCi0gICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gYm9keSA9IEFQSTo6RGljdGlvbmFy
eTo6Y3JlYXRlKCk7CisgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gYm9keSA9IEFQSTo6RGljdGlv
bmFyeTo6Y3JlYXRlKCk7CiAgICAgYm9keS0+c2V0KGludGVyZmFjZUlkZW50aWZpZXJLZXksIEFQ
STo6U3RyaW5nOjpjcmVhdGUoaW50ZXJmYWNlLmlkZW50aWZpZXIpKTsKICAgICBib2R5LT5zZXQo
ZW5jb2RlZEludm9jYXRpb25LZXksIFtlbmNvZGVyIHJvb3RPYmplY3REaWN0aW9uYXJ5XSk7CiAK
ICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kSW52b2NhdGlvbihVc2VyRGF0YShib2R5LmdldCgp
KSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kSW52b2NhdGlvbihVc2VyRGF0YShi
b2R5LnB0cigpKSk7CiB9CiAKIC0gKFdlYktpdDo6UmVtb3RlT2JqZWN0UmVnaXN0cnkmKXJlbW90
ZU9iamVjdFJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25h
cnkuY3BwCmluZGV4IGUyZmNhMWI2YmI3MWY5ZTIwOWVjODYxY2U5OTVmZDcyNDM2MTc5ZTUuLjE5
MjVkZWM0OTA3MTEzNTM0OTIxZWIyNTFmODhiZWRkZjJmMTcxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFdLX0VY
UE9SVCBXS0RpY3Rpb25hcnlSZWYgV0tEaWN0aW9uYXJ5Q3JlYXRlKGNvbnN0IFdLU3RyaW5nUmVm
KiBrZXlzLCBjb25zdCBXS1R5CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZlZh
bHVlczsgKytpKQogICAgICAgICBtYXAuYWRkKHRvSW1wbChrZXlzW2ldKS0+c3RyaW5nKCksIHRv
SW1wbCh2YWx1ZXNbaV0pKTsKIAotICAgIHJldHVybiB0b0FQSShBUEk6OkRpY3Rpb25hcnk6OmNy
ZWF0ZShXVEY6Om1vdmUobWFwKSkucmVsZWFzZSgpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJuIHRv
QVBJKCZBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSkubGVha1JlZigpKTsK
IH0KIAogV0tUeXBlUmVmIFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoV0tEaWN0aW9uYXJ5UmVm
IGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAppbmRleCAzMWY4NDY2NWNmNjU4
YTgyYjQxNjdlYzcxYTM2YWY3NmIzMzM2YjM0Li45NmI4OWJkNDU2NDg0ZDUxYzBhN2ZiM2E1Nzlj
OWU1ZDljZGE4NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tN
dXRhYmxlRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
TXV0YWJsZURpY3Rpb25hcnkuY3BwCkBAIC0zMyw4ICszMyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIFdLTXV0YWJsZURpY3Rpb25hcnlSZWYgV0tNdXRhYmxlRGljdGlvbmFyeUNyZWF0
ZSgpCiB7Ci0gICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IEFQSTo6RGlj
dGlvbmFyeTo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8V0tNdXRhYmxlRGljdGlv
bmFyeVJlZj4odG9BUEkoZGljdGlvbmFyeS5yZWxlYXNlKCkubGVha1JlZigpKSk7CisgICAgcmV0
dXJuIGNvbnN0X2Nhc3Q8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4odG9BUEkoJkFQSTo6RGljdGlv
bmFyeTo6Y3JlYXRlKCkubGVha1JlZigpKSk7CiB9CiAKIGJvb2wgV0tEaWN0aW9uYXJ5U2V0SXRl
bShXS011dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleVJl
ZiwgV0tUeXBlUmVmIGl0ZW1SZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
UGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKaW5kZXggOWZiYzgw
MzRkN2RjYmU4YjgwODUyMGU1YzQ5YTMzM2RlMDc3NzU0NS4uNTI3MzQzYWRlNjI4YjY5N2EyODEx
ZDQ1MmE3ZGUwMjU4MmJkYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcApAQCAtMTIyLDcg
KzEyMiw3IEBAIHZvaWQgZ2V0UGx1Z2luTW9kdWxlSW5mb3JtYXRpb24oY29uc3QgUGx1Z2luTW9k
dWxlSW5mbyYgcGx1Z2luLCBBUEk6OkRpY3Rpb25hcnk6CiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0
cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25z
dCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCitSZWY8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQ
bHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2lu
KQogewogICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtYXA7CiAgICAgZ2V0UGx1Z2luTW9k
dWxlSW5mb3JtYXRpb24ocGx1Z2luLCBtYXApOwpAQCAtMTMwLDcgKzEzMCw3IEBAIFBhc3NSZWZQ
dHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29u
c3QgUGx1Z2luTW9kdWxlCiAgICAgcmV0dXJuIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6
bW92ZShtYXApKTsKIH0KIAotUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdp
bkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4sIGNv
bnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFnZUF0dHJpYnV0
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJvb2wgcmVwbGFjZW1l
bnRPYnNjdXJlZCkKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9u
RGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4sIGNvbnN0IFN0cmluZyYg
ZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgcGFn
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywg
Y29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJvb2wgcmVwbGFjZW1lbnRPYnNjdXJlZCkK
IHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogICAgIGdldFBsdWdpbk1vZHVs
ZUluZm9ybWF0aW9uKHBsdWdpbiwgbWFwKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBQYXNzUmVmUHRy
PEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0
IFBsdWdpbk1vZHVsZQogICAgIHJldHVybiBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1v
dmUobWFwKSk7CiB9CiAKLVBhc3NSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5J
bmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5n
JiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nKQorUmVmPEFQSTo6
RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYg
cGFnZVVSTFN0cmluZykKIHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5J
bmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1
Z2luSW5mb3JtYXRpb24uaAppbmRleCA3NTFiYjMzYTdjZDkzOTcyNzRmNGFhOWIyZjhjYTIzMTJl
ODIzMDcxLi45NjllODVhMGE0ZDFjMzFiNzUwNTg5MjYwMzgzMDgxMTk5MWU3MmE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdp
bkluZm9ybWF0aW9uLmgKQEAgLTUxLDkgKzUxLDkgQEAgU3RyaW5nIHBsdWdpbkluZm9ybWF0aW9u
UGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKTsKIFN0cmluZyBwbHVnaW5JbmZvcm1hdGlvblBs
dWdpblVSTEtleSgpOwogU3RyaW5nIHBsdWdJbkluZm9ybWF0aW9uUmVwbGFjZW1lbnRPYnNjdXJl
ZEtleSgpOwogCi1QYXNzUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3Jt
YXRpb25EaWN0aW9uYXJ5KGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsKLVBhc3NSZWZQdHI8QVBJ
OjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1
Z2luTW9kdWxlSW5mbyYsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBw
bHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJp
bmcsIGJvb2wgcmVwbGFjZW1lbnRPYnNjdXJlZCA9IGZhbHNlKTsKLVBhc3NSZWZQdHI8QVBJOjpE
aWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBw
YWdlVVJMU3RyaW5nKTsKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0
aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7CitSZWY8QVBJOjpEaWN0aW9u
YXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9kdWxl
SW5mbyYsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFn
ZUF0dHJpYnV0ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJvb2wg
cmVwbGFjZW1lbnRPYnNjdXJlZCA9IGZhbHNlKTsKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0
ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpOwog
CiB2b2lkIGdldFBsdWdpbk1vZHVsZUluZm9ybWF0aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8m
LCBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUmKTsKIHZvaWQgZ2V0UGxhdGZvcm1QbHVnaW5Nb2R1
bGVJbmZvcm1hdGlvbihjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiwgQVBJOjpEaWN0aW9uYXJ5OjpN
YXBUeXBlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4
IGVkZTFiOGE0MTc1MWYwNmYyMmEwNDdhZjJjMmVlN2M5MjU5M2VlOTQuLjEwN2ZhMjNmZDIzMzg1
ZmQ2NGY1MGQ2Yzc2N2ExMzVjMWYyOGQ1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC0xMzQzLDEzICsxMzQzLDEzIEBAIHZvaWQgV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdr
Q2xpZW50CiAgICAgICAgICAgICBtYXAuc2V0KCJyZXNpemFibGUiLCBBUEk6OkJvb2xlYW46OmNy
ZWF0ZSh3aW5kb3dGZWF0dXJlcy5yZXNpemFibGUpKTsKICAgICAgICAgICAgIG1hcC5zZXQoImZ1
bGxzY3JlZW4iLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5mdWxsc2NyZWVu
KSk7CiAgICAgICAgICAgICBtYXAuc2V0KCJkaWFsb2ciLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3
aW5kb3dGZWF0dXJlcy5kaWFsb2cpKTsKLSAgICAgICAgICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25h
cnk+IGZlYXR1cmVzTWFwID0gQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkp
OworICAgICAgICAgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gZmVhdHVyZXNNYXAgPSBBUEk6OkRp
Y3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICAgICAgICAgIGlmICghbV9j
bGllbnQuYmFzZS52ZXJzaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZih0b0lt
cGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwKHRvQVBJKHBh
Z2UpLCB0b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRh
Lm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwgbV9j
bGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOworICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
Zih0b0ltcGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwKHRv
QVBJKHBhZ2UpLCB0b0FQSShmZWF0dXJlc01hcC5wdHIoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rp
b25EYXRhLm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9u
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOwogCiAgICAgICAgICAgICBSZWZQdHI8QVBJ
OjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VS
ZXF1ZXN0KTsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQuY3Jl
YXRlTmV3UGFnZSh0b0FQSShwYWdlKSwgdG9BUEkocmVxdWVzdC5nZXQoKSksIHRvQVBJKGZlYXR1
cmVzTWFwLmdldCgpKSwgdG9BUEkobmF2aWdhdGlvbkFjdGlvbkRhdGEubW9kaWZpZXJzKSwgdG9B
UEkobmF2aWdhdGlvbkFjdGlvbkRhdGEubW91c2VCdXR0b24pLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYodG9JbXBsKG1fY2xpZW50LmNy
ZWF0ZU5ld1BhZ2UodG9BUEkocGFnZSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0b0FQSShmZWF0
dXJlc01hcC5wdHIoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vZGlmaWVycyksIHRv
QVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwgbV9jbGllbnQuYmFzZS5jbGll
bnRJbmZvKSkpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dQYWdlKFdl
YlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggOWYzYzZjYzA3MmJjODM5
ZmYzNmZhZGExYTM0OTc4NWM0ZjVmZjllZi4uYzgyNzI0NmM5OTJjMzJkMGY0MTJhNWM2MGY0NDI3
ODdmY2UwZDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTEwMDksNyArMTAwOSw3IEBAIHZvaWQgd2Via2l0
X3dlYl9jb250ZXh0X3ByZWZldGNoX2RucyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBjaGFyKiBob3N0CiAKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsKICAg
ICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpLCBBUEk6OlN0cmluZzo6
Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoaG9zdG5hbWUpKSk7Ci0gICAgY29udGV4dC0+cHJpdi0+
Y29udGV4dC0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFN0cmluZzo6ZnJvbVVURjgoIlBy
ZWZldGNoRE5TIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSku
Z2V0KCkpOworICAgIGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9JbmplY3Rl
ZEJ1bmRsZShTdHJpbmc6OmZyb21VVEY4KCJQcmVmZXRjaEROUyIpLCBBUEk6OkRpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLnB0cigpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGRm
OWEzZWYwOTA1ZmVlNzA1M2FiOTQ3NTE3ZDQ3MzYzMjE5YmY0MTUuLjM5MmNlYjQyYWExMTEyZDM5
NTI3ZDE1ZTZhOTJiYmJhZTdiMmZlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0zNTAyLDcgKzM1MDIsNyBAQCB2b2lk
IHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
S2l0U25hcHNob3RSZWdpb24gcgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlRy
YW5zcGFyZW50QmFja2dyb3VuZCIpLCBBUEk6OkJvb2xlYW46OmNyZWF0ZShvcHRpb25zICYgV0VC
S0lUX1NOQVBTSE9UX09QVElPTlNfVFJBTlNQQVJFTlRfQkFDS0dST1VORCkpOwogCiAgICAgd2Vi
Vmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBhZG9wdEdSZWYo
Z190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSkpOwot
ICAgIGdldFBhZ2Uod2ViVmlldyktPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShTdHJpbmc6
OmZyb21VVEY4KCJHZXRTbmFwc2hvdCIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1v
dmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBnZXRQYWdlKHdlYlZpZXcpLT5wb3N0TWVzc2FnZVRv
SW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiR2V0U25hcHNob3QiKSwgQVBJOjpEaWN0
aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7CiB9CiAKIC8qKgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0
b1N0YXJ0UHJvdmlkZXIuY3BwCmluZGV4IDFmZDNjMTgwY2NkZGMxNjgxMjE5ODhmN2NkZGUwM2Zk
ZmY1MzQ3OTEuLjM0ODQyZDg3ZGYzMjMwY2JmNDlmZDg5ZjRkZTFiZDk2OTYzNzA5OTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5B
dXRvU3RhcnRQcm92aWRlci5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgU2Vzc2lvblBsdWdJbkF1dG9T
dGFydE9yaWdpbk1hcCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luSGFz
aGVzQ28KICAgICByZXR1cm4gc2Vzc2lvbk1hcDsKIH0KIAotUGFzc1JlZlB0cjxBUEk6OkRpY3Rp
b25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5
KCkgY29uc3QKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjph
dXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QKIHsKICAgICBBUEk6OkRpY3Rpb25hcnk6
Ok1hcFR5cGUgbWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaAppbmRleCBlN2RjMWNlNTA4OGQwYmMx
MzY5YjAzMzRhMDUzYmYwNzQ3ZGY5MDMwLi41MDFkNjhhZGU5NmY4MDk1ZjE2ZTQ3NTQyNGRhNmVk
MzIwOTEwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9Q
bHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VPcmln
aW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7CiAgICAg
dm9pZCBkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gs
IFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKLSAgICBQYXNzUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4g
YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0OworICAgIFJlZjxBUEk6OkRpY3Rpb25h
cnk+IGF1dG9TdGFydE9yaWdpbnNUYWJsZUNvcHkoKSBjb25zdDsKICAgICB2b2lkIHNldEF1dG9T
dGFydE9yaWdpbnNUYWJsZShBUEk6OkRpY3Rpb25hcnkmKTsKICAgICB2b2lkIHNldEF1dG9TdGFy
dE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5
JiwgZG91YmxlIHRpbWUpOwogICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KEFQSTo6
QXJyYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNz
UmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVlc3Qu
Y3BwCmluZGV4IGE0YzY4ZWVhN2UyNmI5MjFhYTFkNDYzOWY1MzdjZjMwOThlOWI4MzcuLmMwZWM0
OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhmMjI0ZTJmYmZiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAtNTgsMTAgKzU4LDEwIEBAIHN0
YXRpYyB2b2lkIGFkZFRvRGljdGlvbmFyeUZyb21IYXNoTWFwKEFQSTo6RGljdGlvbmFyeSogZGlj
dGlvbmFyeSwgY29uc3QgSGFzaE1hCiAgICAgICAgIGRpY3Rpb25hcnktPnNldChpdC0+a2V5LCBS
ZWZQdHI8QVBJOjpVSW50NjQ+KEFQSTo6VUludDY0OjpjcmVhdGUoaXQtPnZhbHVlKSkuZ2V0KCkp
OwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZURpY3Rpb25h
cnlGcm9tSGFzaE1hcChjb25zdCBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+JiBtYXApCitzdGF0
aWMgUmVmPEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4mIG1hcCkKIHsKLSAgICBSZWZQdHI8QVBJOjpEaWN0
aW9uYXJ5PiByZXN1bHQgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIGFkZFRvRGlj
dGlvbmFyeUZyb21IYXNoTWFwKHJlc3VsdC5nZXQoKSwgbWFwKTsKKyAgICBSZWY8QVBJOjpEaWN0
aW9uYXJ5PiByZXN1bHQgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworICAgIGFkZFRvRGlj
dGlvbmFyeUZyb21IYXNoTWFwKHJlc3VsdC5wdHIoKSwgbWFwKTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgU3RhdGlzdGljc1JlcXVlc3Q6OmNvbXBsZXRl
ZFJlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdGF0aXN0aWNzRGF0CiAgICAgYWRk
VG9EaWN0aW9uYXJ5RnJvbUhhc2hNYXAobV9yZXNwb25zZURpY3Rpb25hcnkuZ2V0KCksIGRhdGEu
c3RhdGlzdGljc051bWJlcnMpOwogCiAgICAgaWYgKCFkYXRhLmphdmFTY3JpcHRQcm90ZWN0ZWRP
YmplY3RUeXBlQ291bnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXNwb25zZURpY3Rpb25hcnkt
PnNldCgiSmF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMiLCBjcmVhdGVEaWN0aW9u
YXJ5RnJvbUhhc2hNYXAoZGF0YS5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyku
Z2V0KCkpOworICAgICAgICBtX3Jlc3BvbnNlRGljdGlvbmFyeS0+c2V0KCJKYXZhU2NyaXB0UHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChkYXRh
LmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKSk7CiAgICAgaWYgKCFkYXRhLmph
dmFTY3JpcHRPYmplY3RUeXBlQ291bnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXNwb25zZURp
Y3Rpb25hcnktPnNldCgiSmF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMiLCBjcmVhdGVEaWN0aW9u
YXJ5RnJvbUhhc2hNYXAoZGF0YS5qYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cykuZ2V0KCkpOwor
ICAgICAgICBtX3Jlc3BvbnNlRGljdGlvbmFyeS0+c2V0KCJKYXZhU2NyaXB0T2JqZWN0VHlwZUNv
dW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChkYXRhLmphdmFTY3JpcHRPYmplY3RU
eXBlQ291bnRzKSk7CiAKICAgICBpZiAoIWRhdGEud2ViQ29yZUNhY2hlU3RhdGlzdGljcy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGNhY2hlU3RhdGlz
dGljczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcAppbmRleCA5
NTljOWE0ZDE2ZmU5ZDIxMzFkZmQ0NjI0OWY0Yjk3ODU3M2I4MmQwLi4wY2Q3YWE4MzhjN2ZiNTE5
OTcyMmQ1ZjZlNjNhY2NmZThjZDUzMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViRm9ybUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkZvcm1DbGllbnQuY3BwCkBAIC00OSw4ICs0OSw4IEBAIHZvaWQgV2ViRm9ybUNsaWVudDo6d2ls
bFN1Ym1pdEZvcm0oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgV2Vi
CiAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHRleHRGaWVsZFZhbHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgbWFwLnNldCh0ZXh0
RmllbGRWYWx1ZXNbaV0uZmlyc3QsIEFQSTo6U3RyaW5nOjpjcmVhdGUodGV4dEZpZWxkVmFsdWVz
W2ldLnNlY29uZCkpOwotICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IHRleHRGaWVsZHNNYXAg
PSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7Ci0gICAgbV9jbGllbnQu
d2lsbFN1Ym1pdEZvcm0odG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmc291cmNl
RnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgdG9BUEkodXNlckRhdGEpLCB0b0FQ
SSgmbGlzdGVuZXIuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIFJlZjxB
UEk6OkRpY3Rpb25hcnk+IHRleHRGaWVsZHNNYXAgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShX
VEY6Om1vdmUobWFwKSk7CisgICAgbV9jbGllbnQud2lsbFN1Ym1pdEZvcm0odG9BUEkoJnBhZ2Up
LCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmc291cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFw
LnB0cigpKSwgdG9BUEkodXNlckRhdGEpLCB0b0FQSSgmbGlzdGVuZXIuZ2V0KCkpLCBtX2NsaWVu
dC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWFlZDQ1MzAxYTJmZWVhZDQ0
Y2M2YzdlYWVjNDdkOGI0N2NmMWMxYi4uMTM1N2RiNjg5ZjcxOTRlNDUzMzZmYTUyNTU4ODg3NDZi
M2RkOWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTUyMDIsNyArNTIwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRXh0ZW5kZWRCYWNrZ3Jv
dW5kQ29sb3JEaWRDaGFuZ2UoY29uc3QgQ29sb3ImIGJhY2tncm91bmRDCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvSW5pdGlhbGl6
ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpCiB7Ci0gICAgbV9sb2FkZXJDbGllbnQt
PmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKnRoaXMsIGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9u
RGljdGlvbmFyeShtaW1lVHlwZSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpLmdldCgp
KTsKKyAgICBtX2xvYWRlckNsaWVudC0+ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigqdGhpcywg
Y3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KG1pbWVUeXBlLCBmcmFtZVVSTFN0cmlu
ZywgcGFnZVVSTFN0cmluZykucHRyKCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQmxv
Y2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3Ry
aW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCByZXBsYWNlbWVudE9ic2N1cmVkKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDdiMTc0MmMwNWIyOWNhM2FlN2Y5OGFm
YWJiNzc2NTNmOTgzZTM1ZTguLjEzODVhMWNiNWY1MjkwMGIzYzk1ZDVjZjk0YWE2MTQwNWViM2Q5
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTE4Niw3ICsxODYs
NyBAQCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJv
bVVURjgoIkZyYW1lIiksIHRvSW1wbChmcmFtZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVyKSk7
CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIpLCB0b0ltcGwocmVx
dWVzdCkpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCktPnBv
c3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5pdGlhdGVMb2FkRm9yUmVz
b3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQo
KSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1l
c3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJj
ZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLnB0cigpKTsK
IH0KIAogc3RhdGljIFdLVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmllciwg
V0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGlj
IFdLVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmEKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXF1
ZXN0IiksIG5ld1JlcXVlc3QuZ2V0KCkpOwogICAgIGlmICghcmVkaXJlY3RSZXNvdXJjZVJlc3Bv
bnNlLmlzTnVsbCgpKQogICAgICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZWRp
cmVjdFJlc3BvbnNlIiksIHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZy
b21VVEY4KCJXZWJQYWdlLkRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9u
YXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRG
OCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6
Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkucHRyKCkpOwogCiAgICAgcmV0dXJuIHRvQVBJKG5l
d1JlcXVlc3QucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CkBAIC0yMjIsNyArMjIyLDcgQEAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQ
YWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgi
SWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNz
YWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXNwb25zZSIpLCB0b0ltcGwocmVzcG9uc2UpKTsK
LSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2Fn
ZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291cmNl
IiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkpOwor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdl
KFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2Ui
KSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7CiB9
CiAKIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIsIHVp
bnQ2NF90IGxlbmd0aCwgY29uc3Qgdm9pZCopCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGljIHZv
aWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgV0tCdW5kbGVGcmEKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdlIiks
IHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRlbnRp
ZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdlLnNl
dChTdHJpbmc6OmZyb21VVEY4KCJDb250ZW50TGVuZ3RoIiksIEFQSTo6VUludDY0OjpjcmVhdGUo
bGVuZ3RoKSk7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+
cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRSZWNlaXZlQ29udGVudExl
bmd0aEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNz
YWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxl
KCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZUNvbnRl
bnRMZW5ndGhGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUo
bWVzc2FnZSkpLnB0cigpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJlc291
cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVu
dGlmaWVyLCBjb25zdCB2b2lkKikKQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCBkaWRG
aW5pc2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVS
ZWYsIHVpbgogICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwogICAgIG1lc3Nh
Z2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgdG9JbXBsKHBhZ2UpKTsKICAgICBtZXNz
YWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlmaWVyIiksIEFQSTo6VUludDY0OjpjcmVh
dGUoaWRlbnRpZmllcikpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmluaXNoTG9h
ZEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdl
KSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCkt
PnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmluaXNoTG9hZEZvclJl
c291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkucHRy
KCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS0Vycm9y
UmVmIGVycm9yLCBjb25zdCB2b2lkKikKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMgdm9pZCBk
aWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1l
UmVmLCB1aW50NgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgdG9J
bXBsKHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlmaWVy
IiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0KFN0
cmluZzo6ZnJvbVVURjgoIkVycm9yIiksIHRvSW1wbChlcnJvcikpOwotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVU
RjgoIldlYlBhZ2UuRGlkRmFpbExvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNy
ZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQ
YWdlLkRpZEZhaWxMb2FkRm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RG
Ojptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7CiB9CiAKIGNsYXNzIFBhZ2VDb250ZXh0TWVudUNsaWVu
dCBmaW5hbCA6IHB1YmxpYyBBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlQ29udGV4dE1lbnVDbGll
bnQgewpAQCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNz
YWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hCiAgICAgICAg
IG1lc3NhZ2VSZXBseS5zZXQoIlBhZ2UiLCB3ZWJQYWdlKTsKICAgICAgICAgbWVzc2FnZVJlcGx5
LnNldCgiQ2FsbGJhY2tJRCIsIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwogICAg
ICAgICBtZXNzYWdlUmVwbHkuc2V0KCJTbmFwc2hvdCIsIHNuYXBzaG90SW1hZ2UpOwotICAgICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZSgi
V2ViUGFnZS5EaWRHZXRTbmFwc2hvdCIsIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92
ZShtZXNzYWdlUmVwbHkpKS5nZXQoKSk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKCJXZWJQYWdlLkRpZEdldFNuYXBzaG90Iiwg
QVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2VSZXBseSkpLnB0cigpKTsK
ICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRleCBmNDgyNWU3MmU4OGRl
OTExODlkNDIxMzg4YWE3MTZjMjNmYzVmYjFhLi5jNzY2YWYzNDlhMmUxNTkxYzUwYzY4NmI2ZGFh
OWM3MzE3YzVjM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFnZSwgSFRNTEZvcm1FbAogICAg
ICAgICBtYXAuc2V0KHZhbHVlc1tpXS5maXJzdCwgQVBJOjpTdHJpbmc6OmNyZWF0ZSh2YWx1ZXNb
aV0uc2Vjb25kKSk7CiAgICAgYXV0byB0ZXh0RmllbGRzTWFwID0gQVBJOjpEaWN0aW9uYXJ5Ojpj
cmVhdGUoV1RGOjptb3ZlKG1hcCkpOwogCi0gICAgbV9jbGllbnQud2lsbFNlbmRTdWJtaXRFdmVu
dCh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwgdG9B
UEkoc291cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgbV9jbGllbnQuYmFz
ZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50KHRvQVBJKHBh
Z2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3VyY2VG
cmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTdWJtaXRG
b3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYkZyYW1l
KiBmcmFtZSwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgU3RyaW5nPj4mIHZhbHVlcywgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEpCkBA
IC0xNTQsNyArMTU0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3aWxs
U3VibWl0Rm9ybShXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1lbnQKICAgICBhdXRvIHRleHRG
aWVsZHNNYXAgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAg
ICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOwotICAgIG1fY2xpZW50LndpbGxTdWJtaXRG
b3JtKHRvQVBJKHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0
b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAuZ2V0KCkpLCAmdXNlckRhdGFU
b1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQud2lsbFN1Ym1p
dEZvcm0odG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCB0b0FQSShmcmFtZSks
IHRvQVBJKHNvdXJjZUZyYW1lKSwgdG9BUEkodGV4dEZpZWxkc01hcC5wdHIoKSksICZ1c2VyRGF0
YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFkb3B0
UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251692</attachid>
            <date>2015-04-26 07:06:55 -0700</date>
            <delta_ts>2015-04-27 13:16:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144221-20150426160547.patch</filename>
            <type>text/plain</type>
            <size>29221</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgzMzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTUwODgyZTc0MTE2ZTM5
NzJhZDkzYjZjYTVjYTBjYTZiODI2MDEzNC4uYjEzY2Y0YzI2MGViOTgxYmRlNzEzMmE4NzFhZDEz
Y2VjNzcwOTQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE1LTA0LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBBUEk6OkRp
Y3Rpb25hcnkgY3JlYXRpb24gZnVuY3Rpb25zIHNob3VsZCByZXR1cm4gUmVmPD4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDIyMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhdmUgQVBJOjpEaWN0aW9u
YXJ5IGNyZWF0aW9uIGZ1bmN0aW9ucyByZXR1cm4gUmVmPD4uCisgICAgICAgIFRoZSBjYWxsLXNp
dGVzIGFyZSBhbHNvIHVwZGF0ZWQsIHVzaW5nIGFuZCBvcGVyYXRpbmcKKyAgICAgICAgb24gdGhl
IHJldHVybmVkIFJlZjw+IG9iamVjdCB3aGVyZSBwb3NzaWJsZS4KKworICAgICAgICAqIFNoYXJl
ZC9BUEkvQVBJRGljdGlvbmFyeS5jcHA6CisgICAgICAgIChBUEk6OkRpY3Rpb25hcnk6OmNyZWF0
ZSk6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElEaWN0aW9uYXJ5Lmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVyLm1tOgorICAgICAgICAoY3JlYXRlRW5j
b2RlZE9iamVjdCk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeS5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX3NlbmRJbnZv
Y2F0aW9uOmludGVyZmFjZTpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5
LmNwcDoKKyAgICAgICAgKFdLRGljdGlvbmFyeUNyZWF0ZSk6CisgICAgICAgICogU2hhcmVkL0FQ
SS9jL1dLTXV0YWJsZURpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV0tNdXRhYmxlRGljdGlvbmFy
eUNyZWF0ZSk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3Jt
YXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rp
b25hcnkpOgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChX
S1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9jb250ZXh0X3ByZWZldGNoX2Ru
cyk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAg
ICAgICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNy
ZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcCk6CisgICAgICAgIChXZWJLaXQ6OlN0YXRpc3RpY3NS
ZXF1ZXN0Ojpjb21wbGV0ZWRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRm9ybUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZvcm1DbGllbnQ6OndpbGxTdWJtaXRGb3Jt
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAg
ICAgIChkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgICh3aWxsU2VuZFJlcXVl
c3RGb3JGcmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2VGb3JSZXNvdXJjZSk6Cisg
ICAgICAgIChkaWRSZWNlaXZlQ29udGVudExlbmd0aEZvclJlc291cmNlKToKKyAgICAgICAgKGRp
ZEZpbmlzaExvYWRGb3JSZXNvdXJjZSk6CisgICAgICAgIChkaWRGYWlsTG9hZEZvclJlc291cmNl
KToKKyAgICAgICAgKHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudDo6d2lsbFNl
bmRTdWJtaXRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQ6OndpbGxTdWJtaXRGb3JtKToKKwogMjAxNS0wNC0yNSAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGdXJ0aGVyIHVwZGF0ZSBnZXN0dXJlIHN3
aXBlIHNoYWRvdyBzdHlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9B
UElEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFy
eS5jcHAKaW5kZXggMWRmMzdlMGM1NmI2NDJjZjY2MGM3MWMzZmMwNmUzZDc2ZjlmNzFlOC4uMmI3
NjNhZmFjNmRlODU2MTA4ZjIwZDJlYzk5MGIwNjMxYzE1NTlkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9BUElEaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSURpY3Rpb25hcnkuY3BwCkBAIC0zMSwxNCArMzEsMTQgQEAKIAogbmFt
ZXNwYWNlIEFQSSB7CiAKLVJlZlB0cjxEaWN0aW9uYXJ5PiBEaWN0aW9uYXJ5OjpjcmVhdGUoKQor
UmVmPERpY3Rpb25hcnk+IERpY3Rpb25hcnk6OmNyZWF0ZSgpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZSh7IH0pOwogfQogCi1SZWZQdHI8RGljdGlvbmFyeT4gRGljdGlvbmFyeTo6Y3JlYXRlKE1hcFR5
cGUgbWFwKQorUmVmPERpY3Rpb25hcnk+IERpY3Rpb25hcnk6OmNyZWF0ZShNYXBUeXBlIG1hcCkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERpY3Rpb25hcnkoV1RGOjptb3ZlKG1hcCkpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEaWN0aW9uYXJ5KFdURjo6bW92ZShtYXApKSk7CiB9
CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoTWFwVHlwZSBtYXApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0FQSURpY3Rpb25hcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvQVBJRGljdGlvbmFyeS5oCmluZGV4IDg0N2UxNDdlN2U1OWZjMTI5ZTNmNzM2ZjI4
YjBkNzY5ZGJiM2YwN2EuLjUwNTk5MTI5YThjYWRmYTY4ODg3OGQwYWYxMWNmYmRmZjQxMGE5YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFyeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQVBJRGljdGlvbmFyeS5oCkBAIC0yOCw3ICsy
OCw2IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00MCw4ICszOSw4
IEBAIGNsYXNzIERpY3Rpb25hcnkgZmluYWwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5
cGU6OkRpY3Rpb25hcnk+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEhhc2hNYXA8V1RGOjpTdHJp
bmcsIFJlZlB0cjxPYmplY3Q+PiBNYXBUeXBlOwogCi0gICAgc3RhdGljIFJlZlB0cjxEaWN0aW9u
YXJ5PiBjcmVhdGUoKTsKLSAgICBzdGF0aWMgUmVmUHRyPERpY3Rpb25hcnk+IGNyZWF0ZShNYXBU
eXBlKTsKKyAgICBzdGF0aWMgUmVmPERpY3Rpb25hcnk+IGNyZWF0ZSgpOworICAgIHN0YXRpYyBS
ZWY8RGljdGlvbmFyeT4gY3JlYXRlKE1hcFR5cGUpOwogCiAgICAgdmlydHVhbCB+RGljdGlvbmFy
eSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVt
b3RlT2JqZWN0Q29kZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL0NvY29hL1dLUmVt
b3RlT2JqZWN0Q29kZXIubW0KaW5kZXggOTU0MjExYmE1ZTljYjUyMGY1Mjk3MjMzYzk0NmQ4NTFh
ODNlNWE4MC4uNzk3MjA5NDljMzJmNjQyZTI0ZWM4NDc2ZTNlNTNlYWRhMDQ1OTYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9XS1JlbW90ZU9iamVjdENvZGVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvQ29jb2EvV0tSZW1vdGVPYmplY3RD
b2Rlci5tbQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qgb2JqZWN0
U3RyZWFtS2V5ID0gIiRvYmplY3RTdHJlYW0iOwogc3RhdGljIE5TU3RyaW5nICogY29uc3Qgc2Vs
ZWN0b3JLZXkgPSBAInNlbGVjdG9yIjsKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHR5cGVTdHJp
bmdLZXkgPSBAInR5cGVTdHJpbmciOwogCi1zdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25h
cnk+IGNyZWF0ZUVuY29kZWRPYmplY3QoV0tSZW1vdGVPYmplY3RFbmNvZGVyICosIGlkKTsKK3N0
YXRpYyBSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVFbmNvZGVkT2JqZWN0KFdLUmVtb3Rl
T2JqZWN0RW5jb2RlciAqLCBpZCk7CiAKIEBpbnRlcmZhY2UgTlNNZXRob2RTaWduYXR1cmUgKERl
dGFpbHMpCiAtIChOU1N0cmluZyAqKV90eXBlU3RyaW5nOwpAQCAtMjM4LDE3ICsyMzgsMTcgQEAg
c3RhdGljIHZvaWQgZW5jb2RlT2JqZWN0KFdLUmVtb3RlT2JqZWN0RW5jb2RlciAqZW5jb2Rlciwg
aWQgb2JqZWN0KQogICAgIFtvYmplY3QgZW5jb2RlV2l0aENvZGVyOmVuY29kZXJdOwogfQogCi1z
dGF0aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZUVuY29kZWRPYmplY3QoV0tS
ZW1vdGVPYmplY3RFbmNvZGVyICplbmNvZGVyLCBpZCBvYmplY3QpCitzdGF0aWMgUmVmUHRyPEFQ
STo6RGljdGlvbmFyeT4gY3JlYXRlRW5jb2RlZE9iamVjdChXS1JlbW90ZU9iamVjdEVuY29kZXIg
KmVuY29kZXIsIGlkIG9iamVjdCkKIHsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGRpY3Rpb25hcnkgPSBBUEk6OkRp
Y3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIFRlbXBvcmFyeUNoYW5nZTxBUEk6OkRpY3Rpb25hcnkq
PiBkaWN0aW9uYXJ5Q2hhbmdlKGVuY29kZXItPl9jdXJyZW50RGljdGlvbmFyeSwgZGljdGlvbmFy
eS5nZXQoKSk7CisgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IEFQSTo6RGlj
dGlvbmFyeTo6Y3JlYXRlKCk7CisgICAgVGVtcG9yYXJ5Q2hhbmdlPEFQSTo6RGljdGlvbmFyeSo+
IGRpY3Rpb25hcnlDaGFuZ2UoZW5jb2Rlci0+X2N1cnJlbnREaWN0aW9uYXJ5LCBkaWN0aW9uYXJ5
LnB0cigpKTsKIAogICAgIGVuY29kZU9iamVjdChlbmNvZGVyLCBvYmplY3QpOwogCi0gICAgcmV0
dXJuIGRpY3Rpb25hcnk7CisgICAgcmV0dXJuIFdURjo6bW92ZShkaWN0aW9uYXJ5KTsKIH0KIAog
LSAodm9pZCllbmNvZGVWYWx1ZU9mT2JqQ1R5cGU6KGNvbnN0IGNoYXIgKil0eXBlIGF0Oihjb25z
dCB2b2lkICopYWRkcmVzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9D
b2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggZjVlOWMwOTQ3ZDRmMmFi
NmU1OGEwYWIzYTIwMWYxMTZhODIxZDdlYi4uMmUxNGFlZWE5NTc0ZTZmYjRkNzYxNjQ3NmI5NTQ0
OWY5MDk3ODdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9Db2NvYS9f
V0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0xMDIsMTQgKzEwMiwxNCBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFJldGFpblB0cjxXS1JlbW90ZU9iamVjdEVuY29k
ZXI+IGVuY29kZXIgPSBhZG9wdE5TKFtbV0tSZW1vdGVPYmplY3RFbmNvZGVyIGFsbG9jXSBpbml0
XSk7CiAgICAgW2VuY29kZXIgZW5jb2RlT2JqZWN0Omludm9jYXRpb24gZm9yS2V5Omludm9jYXRp
b25LZXldOwogCi0gICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gYm9keSA9IEFQSTo6RGljdGlv
bmFyeTo6Y3JlYXRlKCk7CisgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gYm9keSA9IEFQSTo6RGlj
dGlvbmFyeTo6Y3JlYXRlKCk7CiAgICAgYm9keS0+c2V0KGludGVyZmFjZUlkZW50aWZpZXJLZXks
IEFQSTo6U3RyaW5nOjpjcmVhdGUoaW50ZXJmYWNlLmlkZW50aWZpZXIpKTsKICAgICBib2R5LT5z
ZXQoZW5jb2RlZEludm9jYXRpb25LZXksIFtlbmNvZGVyIHJvb3RPYmplY3REaWN0aW9uYXJ5XSk7
CiAKICAgICBpZiAoIV9yZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kSW52b2NhdGlvbihVc2VyRGF0YShib2R5Lmdl
dCgpKSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LT5zZW5kSW52b2NhdGlvbihVc2VyRGF0
YShib2R5LnB0cigpKSk7CiB9CiAKIC0gKFdlYktpdDo6UmVtb3RlT2JqZWN0UmVnaXN0cnkmKXJl
bW90ZU9iamVjdFJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rp
b25hcnkuY3BwCmluZGV4IGUyZmNhMWI2YmI3MWY5ZTIwOWVjODYxY2U5OTVmZDcyNDM2MTc5ZTUu
LjE5MjVkZWM0OTA3MTEzNTM0OTIxZWIyNTFmODhiZWRkZjJmMTcxMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFdL
X0VYUE9SVCBXS0RpY3Rpb25hcnlSZWYgV0tEaWN0aW9uYXJ5Q3JlYXRlKGNvbnN0IFdLU3RyaW5n
UmVmKiBrZXlzLCBjb25zdCBXS1R5CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJP
ZlZhbHVlczsgKytpKQogICAgICAgICBtYXAuYWRkKHRvSW1wbChrZXlzW2ldKS0+c3RyaW5nKCks
IHRvSW1wbCh2YWx1ZXNbaV0pKTsKIAotICAgIHJldHVybiB0b0FQSShBUEk6OkRpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWFwKSkucmVsZWFzZSgpLmxlYWtSZWYoKSk7CisgICAgcmV0dXJu
IHRvQVBJKCZBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSkubGVha1JlZigp
KTsKIH0KIAogV0tUeXBlUmVmIFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkoV0tEaWN0aW9uYXJ5
UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAppbmRleCAzMWY4NDY2NWNm
NjU4YTgyYjQxNjdlYzcxYTM2YWY3NmIzMzM2YjM0Li45NmI4OWJkNDU2NDg0ZDUxYzBhN2ZiM2E1
NzljOWU1ZDljZGE4NDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tNdXRhYmxlRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9j
L1dLTXV0YWJsZURpY3Rpb25hcnkuY3BwCkBAIC0zMyw4ICszMyw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAKIFdLTXV0YWJsZURpY3Rpb25hcnlSZWYgV0tNdXRhYmxlRGljdGlvbmFyeUNy
ZWF0ZSgpCiB7Ci0gICAgUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IEFQSTo6
RGljdGlvbmFyeTo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8V0tNdXRhYmxlRGlj
dGlvbmFyeVJlZj4odG9BUEkoZGljdGlvbmFyeS5yZWxlYXNlKCkubGVha1JlZigpKSk7CisgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8V0tNdXRhYmxlRGljdGlvbmFyeVJlZj4odG9BUEkoJkFQSTo6RGlj
dGlvbmFyeTo6Y3JlYXRlKCkubGVha1JlZigpKSk7CiB9CiAKIGJvb2wgV0tEaWN0aW9uYXJ5U2V0
SXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtl
eVJlZiwgV0tUeXBlUmVmIGl0ZW1SZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5jcHAKaW5kZXggOWZi
YzgwMzRkN2RjYmU4YjgwODUyMGU1YzQ5YTMzM2RlMDc3NzU0NS4uNTI3MzQzYWRlNjI4YjY5N2Ey
ODExZDQ1MmE3ZGUwMjU4MmJkYzk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcApAQCAtMTIy
LDcgKzEyMiw3IEBAIHZvaWQgZ2V0UGx1Z2luTW9kdWxlSW5mb3JtYXRpb24oY29uc3QgUGx1Z2lu
TW9kdWxlSW5mbyYgcGx1Z2luLCBBUEk6OkRpY3Rpb25hcnk6CiAjZW5kaWYKIH0KIAotUGFzc1Jl
ZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShj
b25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCitSZWY8QVBJOjpEaWN0aW9uYXJ5PiBjcmVh
dGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1
Z2luKQogewogICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtYXA7CiAgICAgZ2V0UGx1Z2lu
TW9kdWxlSW5mb3JtYXRpb24ocGx1Z2luLCBtYXApOwpAQCAtMTMwLDcgKzEzMCw3IEBAIFBhc3NS
ZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnko
Y29uc3QgUGx1Z2luTW9kdWxlCiAgICAgcmV0dXJuIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdU
Rjo6bW92ZShtYXApKTsKIH0KIAotUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBs
dWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4s
IGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFnZUF0dHJp
YnV0ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJvb2wgcmVwbGFj
ZW1lbnRPYnNjdXJlZCkKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0
aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4sIGNvbnN0IFN0cmlu
ZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYg
cGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJvb2wgcmVwbGFjZW1lbnRPYnNjdXJl
ZCkKIHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogICAgIGdldFBsdWdpbk1v
ZHVsZUluZm9ybWF0aW9uKHBsdWdpbiwgbWFwKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBQYXNzUmVm
UHRyPEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNv
bnN0IFBsdWdpbk1vZHVsZQogICAgIHJldHVybiBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6
Om1vdmUobWFwKSk7CiB9CiAKLVBhc3NSZWZQdHI8QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVn
aW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3Ry
aW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nKQorUmVmPEFQ
STo6RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTFN0cmluZykKIHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVn
aW5JbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
UGx1Z2luSW5mb3JtYXRpb24uaAppbmRleCA3NTFiYjMzYTdjZDkzOTcyNzRmNGFhOWIyZjhjYTIz
MTJlODIzMDcxLi45NjllODVhMGE0ZDFjMzFiNzUwNTg5MjYwMzgzMDgxMTk5MWU3MmE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZv
cm1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1Bs
dWdpbkluZm9ybWF0aW9uLmgKQEAgLTUxLDkgKzUxLDkgQEAgU3RyaW5nIHBsdWdpbkluZm9ybWF0
aW9uUGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxLZXkoKTsKIFN0cmluZyBwbHVnaW5JbmZvcm1hdGlv
blBsdWdpblVSTEtleSgpOwogU3RyaW5nIHBsdWdJbkluZm9ybWF0aW9uUmVwbGFjZW1lbnRPYnNj
dXJlZEtleSgpOwogCi1QYXNzUmVmUHRyPEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5m
b3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsKLVBhc3NSZWZQdHI8
QVBJOjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxT
dHJpbmcsIGJvb2wgcmVwbGFjZW1lbnRPYnNjdXJlZCA9IGZhbHNlKTsKLVBhc3NSZWZQdHI8QVBJ
OjpEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5n
JiBwYWdlVVJMU3RyaW5nKTsKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9y
bWF0aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7CitSZWY8QVBJOjpEaWN0
aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnkoY29uc3QgUGx1Z2luTW9k
dWxlSW5mbyYsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5z
cGFnZUF0dHJpYnV0ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGJv
b2wgcmVwbGFjZW1lbnRPYnNjdXJlZCA9IGZhbHNlKTsKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IGNy
ZWF0ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcp
OwogCiB2b2lkIGdldFBsdWdpbk1vZHVsZUluZm9ybWF0aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUlu
Zm8mLCBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUmKTsKIHZvaWQgZ2V0UGxhdGZvcm1QbHVnaW5N
b2R1bGVJbmZvcm1hdGlvbihjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiwgQVBJOjpEaWN0aW9uYXJ5
OjpNYXBUeXBlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmlu
ZGV4IGVkZTFiOGE0MTc1MWYwNmYyMmEwNDdhZjJjMmVlN2M5MjU5M2VlOTQuLjEwN2ZhMjNmZDIz
Mzg1ZmQ2NGY1MGQ2Yzc2N2ExMzVjMWYyOGQ1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xMzQzLDEzICsxMzQzLDEzIEBAIHZvaWQgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2Uq
IHdrQ2xpZW50CiAgICAgICAgICAgICBtYXAuc2V0KCJyZXNpemFibGUiLCBBUEk6OkJvb2xlYW46
OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5yZXNpemFibGUpKTsKICAgICAgICAgICAgIG1hcC5zZXQo
ImZ1bGxzY3JlZW4iLCBBUEk6OkJvb2xlYW46OmNyZWF0ZSh3aW5kb3dGZWF0dXJlcy5mdWxsc2Ny
ZWVuKSk7CiAgICAgICAgICAgICBtYXAuc2V0KCJkaWFsb2ciLCBBUEk6OkJvb2xlYW46OmNyZWF0
ZSh3aW5kb3dGZWF0dXJlcy5kaWFsb2cpKTsKLSAgICAgICAgICAgIFJlZlB0cjxBUEk6OkRpY3Rp
b25hcnk+IGZlYXR1cmVzTWFwID0gQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1h
cCkpOworICAgICAgICAgICAgUmVmPEFQSTo6RGljdGlvbmFyeT4gZmVhdHVyZXNNYXAgPSBBUEk6
OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAKICAgICAgICAgICAgIGlmICgh
bV9jbGllbnQuYmFzZS52ZXJzaW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZih0
b0ltcGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwKHRvQVBJ
KHBhZ2UpLCB0b0FQSShmZWF0dXJlc01hcC5nZXQoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25E
YXRhLm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOworICAgICAgICAgICAgICAgIHJldHVybiBhZG9w
dFJlZih0b0ltcGwobV9jbGllbnQuY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KHRvQVBJKHBhZ2UpLCB0b0FQSShmZWF0dXJlc01hcC5wdHIoKSksIHRvQVBJKG5hdmlnYXRpb25B
Y3Rpb25EYXRhLm1vZGlmaWVycyksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0
dG9uKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKSkpOwogCiAgICAgICAgICAgICBSZWZQdHI8
QVBJOjpVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gQVBJOjpVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3Vy
Y2VSZXF1ZXN0KTsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZih0b0ltcGwobV9jbGllbnQu
Y3JlYXRlTmV3UGFnZSh0b0FQSShwYWdlKSwgdG9BUEkocmVxdWVzdC5nZXQoKSksIHRvQVBJKGZl
YXR1cmVzTWFwLmdldCgpKSwgdG9BUEkobmF2aWdhdGlvbkFjdGlvbkRhdGEubW9kaWZpZXJzKSwg
dG9BUEkobmF2aWdhdGlvbkFjdGlvbkRhdGEubW91c2VCdXR0b24pLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pKSk7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYodG9JbXBsKG1fY2xpZW50
LmNyZWF0ZU5ld1BhZ2UodG9BUEkocGFnZSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0b0FQSShm
ZWF0dXJlc01hcC5wdHIoKSksIHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vZGlmaWVycyks
IHRvQVBJKG5hdmlnYXRpb25BY3Rpb25EYXRhLm1vdXNlQnV0dG9uKSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKSkpOwogICAgICAgICB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNob3dQYWdl
KFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggOWYzYzZjYzA3MmJj
ODM5ZmYzNmZhZGExYTM0OTc4NWM0ZjVmZjllZi4uYzgyNzI0NmM5OTJjMzJkMGY0MTJhNWM2MGY0
NDI3ODdmY2UwZDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTEwMDksNyArMTAwOSw3IEBAIHZvaWQgd2Vi
a2l0X3dlYl9jb250ZXh0X3ByZWZldGNoX2RucyhXZWJLaXRXZWJDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBjaGFyKiBob3N0CiAKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWVzc2FnZTsK
ICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJIb3N0bmFtZSIpLCBBUEk6OlN0cmlu
Zzo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoaG9zdG5hbWUpKSk7Ci0gICAgY29udGV4dC0+cHJp
di0+Y29udGV4dC0+cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFN0cmluZzo6ZnJvbVVURjgo
IlByZWZldGNoRE5TIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdl
KSkuZ2V0KCkpOworICAgIGNvbnRleHQtPnByaXYtPmNvbnRleHQtPnBvc3RNZXNzYWdlVG9Jbmpl
Y3RlZEJ1bmRsZShTdHJpbmc6OmZyb21VVEY4KCJQcmVmZXRjaEROUyIpLCBBUEk6OkRpY3Rpb25h
cnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLnB0cigpKTsKIH0KIAogLyoqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IGRmOWEzZWYwOTA1ZmVlNzA1M2FiOTQ3NTE3ZDQ3MzYzMjE5YmY0MTUuLjM5MmNlYjQyYWExMTEy
ZDM5NTI3ZDE1ZTZhOTJiYmJhZTdiMmZlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0zNTAyLDcgKzM1MDIsNyBAQCB2
b2lkIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3QoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
V2ViS2l0U25hcHNob3RSZWdpb24gcgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgo
IlRyYW5zcGFyZW50QmFja2dyb3VuZCIpLCBBUEk6OkJvb2xlYW46OmNyZWF0ZShvcHRpb25zICYg
V0VCS0lUX1NOQVBTSE9UX09QVElPTlNfVFJBTlNQQVJFTlRfQkFDS0dST1VORCkpOwogCiAgICAg
d2ViVmlldy0+cHJpdi0+c25hcHNob3RSZXN1bHRzTWFwLnNldChjYWxsYmFja0lELCBhZG9wdEdS
ZWYoZ190YXNrX25ldyh3ZWJWaWV3LCBjYW5jZWxsYWJsZSwgY2FsbGJhY2ssIHVzZXJEYXRhKSkp
OwotICAgIGdldFBhZ2Uod2ViVmlldyktPnBvc3RNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZShTdHJp
bmc6OmZyb21VVEY4KCJHZXRTbmFwc2hvdCIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6
Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBnZXRQYWdlKHdlYlZpZXcpLT5wb3N0TWVzc2Fn
ZVRvSW5qZWN0ZWRCdW5kbGUoU3RyaW5nOjpmcm9tVVRGOCgiR2V0U25hcHNob3QiKSwgQVBJOjpE
aWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7CiB9CiAKIC8qKgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXIuY3BwCmluZGV4IDFmZDNjMTgwY2NkZGMxNjgxMjE5ODhmN2NkZGUw
M2ZkZmY1MzQ3OTEuLjM0ODQyZDg3ZGYzMjMwY2JmNDlmZDg5ZjRkZTFiZDk2OTYzNzA5OTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
SW5BdXRvU3RhcnRQcm92aWRlci5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgU2Vzc2lvblBsdWdJbkF1
dG9TdGFydE9yaWdpbk1hcCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzQ28KICAgICByZXR1cm4gc2Vzc2lvbk1hcDsKIH0KIAotUGFzc1JlZlB0cjxBUEk6OkRp
Y3Rpb25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVD
b3B5KCkgY29uc3QKK1JlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVy
OjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QKIHsKICAgICBBUEk6OkRpY3Rpb25h
cnk6Ok1hcFR5cGUgbWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaAppbmRleCBlN2RjMWNlNTA4OGQw
YmMxMzY5YjAzMzRhMDUzYmYwNzQ3ZGY5MDMwLi41MDFkNjhhZGU5NmY4MDk1ZjE2ZTQ3NTQyNGRh
NmVkMzIwOTEwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkQXV0b1N0YXJ0T3JpZ2luSGFzaChjb25zdCBTdHJpbmcmIHBhZ2VP
cmlnaW4sIHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhh
c2gsIFdlYkNvcmU6OlNlc3Npb25JRCk7CiAKLSAgICBQYXNzUmVmUHRyPEFQSTo6RGljdGlvbmFy
eT4gYXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0OworICAgIFJlZjxBUEk6OkRpY3Rp
b25hcnk+IGF1dG9TdGFydE9yaWdpbnNUYWJsZUNvcHkoKSBjb25zdDsKICAgICB2b2lkIHNldEF1
dG9TdGFydE9yaWdpbnNUYWJsZShBUEk6OkRpY3Rpb25hcnkmKTsKICAgICB2b2lkIHNldEF1dG9T
dGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9u
YXJ5JiwgZG91YmxlIHRpbWUpOwogICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KEFQ
STo6QXJyYXkmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0
aWNzUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU3RhdGlzdGljc1JlcXVl
c3QuY3BwCmluZGV4IGE0YzY4ZWVhN2UyNmI5MjFhYTFkNDYzOWY1MzdjZjMwOThlOWI4MzcuLmMw
ZWM0OGVlM2JiOTY1MmRkNzg4N2U4NGU4NDhmMjI0ZTJmYmZiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcApAQCAtNTgsMTAgKzU4LDEwIEBA
IHN0YXRpYyB2b2lkIGFkZFRvRGljdGlvbmFyeUZyb21IYXNoTWFwKEFQSTo6RGljdGlvbmFyeSog
ZGljdGlvbmFyeSwgY29uc3QgSGFzaE1hCiAgICAgICAgIGRpY3Rpb25hcnktPnNldChpdC0+a2V5
LCBSZWZQdHI8QVBJOjpVSW50NjQ+KEFQSTo6VUludDY0OjpjcmVhdGUoaXQtPnZhbHVlKSkuZ2V0
KCkpOwogfQogCi1zdGF0aWMgUGFzc1JlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IGNyZWF0ZURpY3Rp
b25hcnlGcm9tSGFzaE1hcChjb25zdCBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+JiBtYXApCitz
dGF0aWMgUmVmPEFQSTo6RGljdGlvbmFyeT4gY3JlYXRlRGljdGlvbmFyeUZyb21IYXNoTWFwKGNv
bnN0IEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4mIG1hcCkKIHsKLSAgICBSZWZQdHI8QVBJOjpE
aWN0aW9uYXJ5PiByZXN1bHQgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIGFkZFRv
RGljdGlvbmFyeUZyb21IYXNoTWFwKHJlc3VsdC5nZXQoKSwgbWFwKTsKKyAgICBSZWY8QVBJOjpE
aWN0aW9uYXJ5PiByZXN1bHQgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZSgpOworICAgIGFkZFRv
RGljdGlvbmFyeUZyb21IYXNoTWFwKHJlc3VsdC5wdHIoKSwgbWFwKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgU3RhdGlzdGljc1JlcXVlc3Q6OmNvbXBs
ZXRlZFJlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdGF0aXN0aWNzRGF0CiAgICAg
YWRkVG9EaWN0aW9uYXJ5RnJvbUhhc2hNYXAobV9yZXNwb25zZURpY3Rpb25hcnkuZ2V0KCksIGRh
dGEuc3RhdGlzdGljc051bWJlcnMpOwogCiAgICAgaWYgKCFkYXRhLmphdmFTY3JpcHRQcm90ZWN0
ZWRPYmplY3RUeXBlQ291bnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXNwb25zZURpY3Rpb25h
cnktPnNldCgiSmF2YVNjcmlwdFByb3RlY3RlZE9iamVjdFR5cGVDb3VudHMiLCBjcmVhdGVEaWN0
aW9uYXJ5RnJvbUhhc2hNYXAoZGF0YS5qYXZhU2NyaXB0UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50
cykuZ2V0KCkpOworICAgICAgICBtX3Jlc3BvbnNlRGljdGlvbmFyeS0+c2V0KCJKYXZhU2NyaXB0
UHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChk
YXRhLmphdmFTY3JpcHRQcm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKSk7CiAgICAgaWYgKCFkYXRh
LmphdmFTY3JpcHRPYmplY3RUeXBlQ291bnRzLmlzRW1wdHkoKSkKLSAgICAgICAgbV9yZXNwb25z
ZURpY3Rpb25hcnktPnNldCgiSmF2YVNjcmlwdE9iamVjdFR5cGVDb3VudHMiLCBjcmVhdGVEaWN0
aW9uYXJ5RnJvbUhhc2hNYXAoZGF0YS5qYXZhU2NyaXB0T2JqZWN0VHlwZUNvdW50cykuZ2V0KCkp
OworICAgICAgICBtX3Jlc3BvbnNlRGljdGlvbmFyeS0+c2V0KCJKYXZhU2NyaXB0T2JqZWN0VHlw
ZUNvdW50cyIsIGNyZWF0ZURpY3Rpb25hcnlGcm9tSGFzaE1hcChkYXRhLmphdmFTY3JpcHRPYmpl
Y3RUeXBlQ291bnRzKSk7CiAKICAgICBpZiAoIWRhdGEud2ViQ29yZUNhY2hlU3RhdGlzdGljcy5p
c0VtcHR5KCkpIHsKICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IGNhY2hlU3Rh
dGlzdGljczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGb3JtQ2xpZW50LmNwcAppbmRl
eCA5NTljOWE0ZDE2ZmU5ZDIxMzFkZmQ0NjI0OWY0Yjk3ODU3M2I4MmQwLi4wY2Q3YWE4MzhjN2Zi
NTE5OTcyMmQ1ZjZlNjNhY2NmZThjZDUzMzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViRm9ybUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZvcm1DbGllbnQuY3BwCkBAIC00OSw4ICs0OSw4IEBAIHZvaWQgV2ViRm9ybUNsaWVudDo6
d2lsbFN1Ym1pdEZvcm0oV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwg
V2ViCiAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHRleHRGaWVsZFZhbHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgbWFwLnNldCh0
ZXh0RmllbGRWYWx1ZXNbaV0uZmlyc3QsIEFQSTo6U3RyaW5nOjpjcmVhdGUodGV4dEZpZWxkVmFs
dWVzW2ldLnNlY29uZCkpOwotICAgIFJlZlB0cjxBUEk6OkRpY3Rpb25hcnk+IHRleHRGaWVsZHNN
YXAgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7Ci0gICAgbV9jbGll
bnQud2lsbFN1Ym1pdEZvcm0odG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmc291
cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgdG9BUEkodXNlckRhdGEpLCB0
b0FQSSgmbGlzdGVuZXIuZ2V0KCkpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIFJl
ZjxBUEk6OkRpY3Rpb25hcnk+IHRleHRGaWVsZHNNYXAgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0
ZShXVEY6Om1vdmUobWFwKSk7CisgICAgbV9jbGllbnQud2lsbFN1Ym1pdEZvcm0odG9BUEkoJnBh
Z2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSSgmc291cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRz
TWFwLnB0cigpKSwgdG9BUEkodXNlckRhdGEpLCB0b0FQSSgmbGlzdGVuZXIuZ2V0KCkpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMWFlZDQ1MzAxYTJmZWVh
ZDQ0Y2M2YzdlYWVjNDdkOGI0N2NmMWMxYi4uMTM1N2RiNjg5ZjcxOTRlNDUzMzZmYTUyNTU4ODg3
NDZiM2RkOWU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTUyMDIsNyArNTIwMiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwYWdlRXh0ZW5kZWRCYWNr
Z3JvdW5kQ29sb3JEaWRDaGFuZ2UoY29uc3QgQ29sb3ImIGJhY2tncm91bmRDCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmFpbFRvSW5pdGlh
bGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJM
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcpCiB7Ci0gICAgbV9sb2FkZXJDbGll
bnQtPmRpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oKnRoaXMsIGNyZWF0ZVBsdWdpbkluZm9ybWF0
aW9uRGljdGlvbmFyeShtaW1lVHlwZSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpLmdl
dCgpKTsKKyAgICBtX2xvYWRlckNsaWVudC0+ZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbigqdGhp
cywgY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KG1pbWVUeXBlLCBmcmFtZVVSTFN0
cmluZywgcGFnZVVSTFN0cmluZykucHRyKCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlk
QmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
U3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCByZXBsYWNlbWVudE9ic2N1cmVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDdiMTc0MmMwNWIyOWNhM2FlN2Y5
OGFmYWJiNzc2NTNmOTgzZTM1ZTguLjEzODVhMWNiNWY1MjkwMGIzYzk1ZDVjZjk0YWE2MTQwNWVi
M2Q5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRXZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0V2ViUGFnZS5jcHAKQEAgLTE4Niw3ICsx
ODYsNyBAQCBzdGF0aWMgdm9pZCBkaWRJbml0aWF0ZUxvYWRGb3JSZXNvdXJjZShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6
ZnJvbVVURjgoIkZyYW1lIiksIHRvSW1wbChmcmFtZSkpOwogICAgIG1lc3NhZ2Uuc2V0KFN0cmlu
Zzo6ZnJvbVVURjgoIklkZW50aWZpZXIiKSwgQVBJOjpVSW50NjQ6OmNyZWF0ZShpZGVudGlmaWVy
KSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiUmVxdWVzdCIpLCB0b0ltcGwo
cmVxdWVzdCkpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCkt
PnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkSW5pdGlhdGVMb2FkRm9y
UmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5n
ZXQoKSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9z
dE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRJbml0aWF0ZUxvYWRGb3JSZXNv
dXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLnB0cigp
KTsKIH0KIAogc3RhdGljIFdLVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiwgdWludDY0X3QgaWRlbnRpZmll
ciwgV0tVUkxSZXF1ZXN0UmVmIHdrUmVxdWVzdCwgV0tVUkxSZXNwb25zZVJlZiB3a1JlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCkBAIC0yMTEsNyArMjExLDcgQEAgc3Rh
dGljIFdLVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3RGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgV0tCdW5kbGVGcmEKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJS
ZXF1ZXN0IiksIG5ld1JlcXVlc3QuZ2V0KCkpOwogICAgIGlmICghcmVkaXJlY3RSZXNvdXJjZVJl
c3BvbnNlLmlzTnVsbCgpKQogICAgICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJS
ZWRpcmVjdFJlc3BvbnNlIiksIHRvSW1wbCh3a1JlZGlyZWN0UmVzcG9uc2UpKTsKLSAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6
OmZyb21VVEY4KCJXZWJQYWdlLkRpZFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0
aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5nZXQoKSk7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUoKS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9t
VVRGOCgiV2ViUGFnZS5EaWRTZW5kUmVxdWVzdEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFy
eTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkucHRyKCkpOwogCiAgICAgcmV0dXJuIHRvQVBJ
KG5ld1JlcXVlc3QucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CkBAIC0yMjIsNyArMjIyLDcgQEAg
c3RhdGljIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4
KCJQYWdlIiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRG
OCgiSWRlbnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJSZXNwb25zZSIpLCB0b0ltcGwocmVzcG9uc2Up
KTsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVz
c2FnZShTdHJpbmc6OmZyb21VVEY4KCJXZWJQYWdlLkRpZFJlY2VpdmVSZXNwb25zZUZvclJlc291
cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSkuZ2V0KCkp
OworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNz
YWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZVJlc3BvbnNlRm9yUmVzb3Vy
Y2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVDb250ZW50TGVuZ3RoRm9yUmVzb3VyY2UoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYsIHVpbnQ2NF90IGlkZW50aWZpZXIs
IHVpbnQ2NF90IGxlbmd0aCwgY29uc3Qgdm9pZCopCkBAIC0yMzEsNyArMjMxLDcgQEAgc3RhdGlj
IHZvaWQgZGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGhGb3JSZXNvdXJjZShXS0J1bmRsZVBhZ2VSZWYg
cGFnZSwgV0tCdW5kbGVGcmEKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJQYWdl
IiksIHRvSW1wbChwYWdlKSk7CiAgICAgbWVzc2FnZS5zZXQoU3RyaW5nOjpmcm9tVVRGOCgiSWRl
bnRpZmllciIpLCBBUEk6OlVJbnQ2NDo6Y3JlYXRlKGlkZW50aWZpZXIpKTsKICAgICBtZXNzYWdl
LnNldChTdHJpbmc6OmZyb21VVEY4KCJDb250ZW50TGVuZ3RoIiksIEFQSTo6VUludDY0OjpjcmVh
dGUobGVuZ3RoKSk7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaW5qZWN0ZWRCdW5kbGUo
KS0+cG9zdE1lc3NhZ2UoU3RyaW5nOjpmcm9tVVRGOCgiV2ViUGFnZS5EaWRSZWNlaXZlQ29udGVu
dExlbmd0aEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZSht
ZXNzYWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVu
ZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGhGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1v
dmUobWVzc2FnZSkpLnB0cigpKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkRmluaXNoTG9hZEZvclJl
c291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBp
ZGVudGlmaWVyLCBjb25zdCB2b2lkKikKQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCBk
aWRGaW5pc2hMb2FkRm9yUmVzb3VyY2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJh
bWVSZWYsIHVpbgogICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBtZXNzYWdlOwogICAgIG1l
c3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwgdG9JbXBsKHBhZ2UpKTsKICAgICBt
ZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlmaWVyIiksIEFQSTo6VUludDY0Ojpj
cmVhdGUoaWRlbnRpZmllcikpOwotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVk
QnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmluaXNo
TG9hZEZvclJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNz
YWdlKSkuZ2V0KCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxl
KCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJvbVVURjgoIldlYlBhZ2UuRGlkRmluaXNoTG9hZEZv
clJlc291cmNlIiksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6bW92ZShtZXNzYWdlKSku
cHRyKCkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmLCB1aW50NjRfdCBpZGVudGlmaWVyLCBXS0Vy
cm9yUmVmIGVycm9yLCBjb25zdCB2b2lkKikKQEAgLTI0OCw3ICsyNDgsNyBAQCBzdGF0aWMgdm9p
ZCBkaWRGYWlsTG9hZEZvclJlc291cmNlKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmLCB1aW50NgogICAgIG1lc3NhZ2Uuc2V0KFN0cmluZzo6ZnJvbVVURjgoIlBhZ2UiKSwg
dG9JbXBsKHBhZ2UpKTsKICAgICBtZXNzYWdlLnNldChTdHJpbmc6OmZyb21VVEY4KCJJZGVudGlm
aWVyIiksIEFQSTo6VUludDY0OjpjcmVhdGUoaWRlbnRpZmllcikpOwogICAgIG1lc3NhZ2Uuc2V0
KFN0cmluZzo6ZnJvbVVURjgoIkVycm9yIiksIHRvSW1wbChlcnJvcikpOwotICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKFN0cmluZzo6ZnJv
bVVURjgoIldlYlBhZ2UuRGlkRmFpbExvYWRGb3JSZXNvdXJjZSIpLCBBUEk6OkRpY3Rpb25hcnk6
OmNyZWF0ZShXVEY6Om1vdmUobWVzc2FnZSkpLmdldCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2FnZShTdHJpbmc6OmZyb21VVEY4KCJX
ZWJQYWdlLkRpZEZhaWxMb2FkRm9yUmVzb3VyY2UiKSwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUo
V1RGOjptb3ZlKG1lc3NhZ2UpKS5wdHIoKSk7CiB9CiAKIGNsYXNzIFBhZ2VDb250ZXh0TWVudUNs
aWVudCBmaW5hbCA6IHB1YmxpYyBBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlQ29udGV4dE1lbnVD
bGllbnQgewpAQCAtNTAwLDcgKzUwMCw3IEBAIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVN
ZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hCiAgICAg
ICAgIG1lc3NhZ2VSZXBseS5zZXQoIlBhZ2UiLCB3ZWJQYWdlKTsKICAgICAgICAgbWVzc2FnZVJl
cGx5LnNldCgiQ2FsbGJhY2tJRCIsIEFQSTo6VUludDY0OjpjcmVhdGUoY2FsbGJhY2tJRCkpOwog
ICAgICAgICBtZXNzYWdlUmVwbHkuc2V0KCJTbmFwc2hvdCIsIHNuYXBzaG90SW1hZ2UpOwotICAg
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5pbmplY3RlZEJ1bmRsZSgpLT5wb3N0TWVzc2Fn
ZSgiV2ViUGFnZS5EaWRHZXRTbmFwc2hvdCIsIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURjo6
bW92ZShtZXNzYWdlUmVwbHkpKS5nZXQoKSk7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLmluamVjdGVkQnVuZGxlKCktPnBvc3RNZXNzYWdlKCJXZWJQYWdlLkRpZEdldFNuYXBzaG90
IiwgQVBJOjpEaWN0aW9uYXJ5OjpjcmVhdGUoV1RGOjptb3ZlKG1lc3NhZ2VSZXBseSkpLnB0cigp
KTsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUZvcm1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcAppbmRleCBmNDgyNWU3MmU4
OGRlOTExODlkNDIxMzg4YWE3MTZjMjNmYzVmYjFhLi5jNzY2YWYzNDlhMmUxNTkxYzUwYzY4NmI2
ZGFhOWM3MzE3YzVjM2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRm9y
bUNsaWVudC5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZv
cm1DbGllbnQ6OndpbGxTZW5kU3VibWl0RXZlbnQoV2ViUGFnZSogcGFnZSwgSFRNTEZvcm1FbAog
ICAgICAgICBtYXAuc2V0KHZhbHVlc1tpXS5maXJzdCwgQVBJOjpTdHJpbmc6OmNyZWF0ZSh2YWx1
ZXNbaV0uc2Vjb25kKSk7CiAgICAgYXV0byB0ZXh0RmllbGRzTWFwID0gQVBJOjpEaWN0aW9uYXJ5
OjpjcmVhdGUoV1RGOjptb3ZlKG1hcCkpOwogCi0gICAgbV9jbGllbnQud2lsbFNlbmRTdWJtaXRF
dmVudCh0b0FQSShwYWdlKSwgdG9BUEkobm9kZUhhbmRsZS5nZXQoKSksIHRvQVBJKGZyYW1lKSwg
dG9BUEkoc291cmNlRnJhbWUpLCB0b0FQSSh0ZXh0RmllbGRzTWFwLmdldCgpKSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKKyAgICBtX2NsaWVudC53aWxsU2VuZFN1Ym1pdEV2ZW50KHRvQVBJ
KHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUpLCB0b0FQSShzb3Vy
Y2VGcmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQ6OndpbGxTdWJt
aXRGb3JtKFdlYlBhZ2UqIHBhZ2UsIEhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYkZy
YW1lKiBmcmFtZSwgV2ViRnJhbWUqIHNvdXJjZUZyYW1lLCBjb25zdCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgU3RyaW5nPj4mIHZhbHVlcywgUmVmUHRyPEFQSTo6T2JqZWN0PiYgdXNlckRhdGEp
CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Ojp3
aWxsU3VibWl0Rm9ybShXZWJQYWdlKiBwYWdlLCBIVE1MRm9ybUVsZW1lbnQKICAgICBhdXRvIHRl
eHRGaWVsZHNNYXAgPSBBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUobWFwKSk7CiAK
ICAgICBXS1R5cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOwotICAgIG1fY2xpZW50LndpbGxTdWJt
aXRGb3JtKHRvQVBJKHBhZ2UpLCB0b0FQSShub2RlSGFuZGxlLmdldCgpKSwgdG9BUEkoZnJhbWUp
LCB0b0FQSShzb3VyY2VGcmFtZSksIHRvQVBJKHRleHRGaWVsZHNNYXAuZ2V0KCkpLCAmdXNlckRh
dGFUb1Bhc3MsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQud2lsbFN1
Ym1pdEZvcm0odG9BUEkocGFnZSksIHRvQVBJKG5vZGVIYW5kbGUuZ2V0KCkpLCB0b0FQSShmcmFt
ZSksIHRvQVBJKHNvdXJjZUZyYW1lKSwgdG9BUEkodGV4dEZpZWxkc01hcC5wdHIoKSksICZ1c2Vy
RGF0YVRvUGFzcywgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICB1c2VyRGF0YSA9IGFk
b3B0UmVmKHRvSW1wbCh1c2VyRGF0YVRvUGFzcykpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>