<?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>172778</bug_id>
          
          <creation_ts>2017-05-31 14:41:13 -0700</creation_ts>
          <short_desc>Make QualifiedName cache per thread</short_desc>
          <delta_ts>2017-05-31 16:33: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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314336</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 14:41:13 -0700</bug_when>
    <thetext>Make QualifiedName cache per thread since it is currently used from multiple thread in an unsafe fashion. We started using QualifiedName objects in background threads after r190602 which started using a CSSSelectorParser in the ContentExtensionParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314337</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 14:41:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/32490942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314342</commentid>
    <comment_count>2</comment_count>
      <attachid>311636</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 14:43:28 -0700</bug_when>
    <thetext>Created attachment 311636
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314346</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 14:44:39 -0700</bug_when>
    <thetext>Attachment 311636 did not pass style-queue:


ERROR: Source/WebCore/platform/ThreadGlobalData.h:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314348</commentid>
    <comment_count>4</comment_count>
      <attachid>311639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 14:49:03 -0700</bug_when>
    <thetext>Created attachment 311639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314349</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-31 14:52:04 -0700</bug_when>
    <thetext>Attachment 311639 did not pass style-queue:


ERROR: Source/WebCore/platform/ThreadGlobalData.h:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314419</commentid>
    <comment_count>6</comment_count>
      <attachid>311639</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-05-31 16:30:20 -0700</bug_when>
    <thetext>Comment on attachment 311639
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314422</commentid>
    <comment_count>7</comment_count>
      <attachid>311639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 16:33:34 -0700</bug_when>
    <thetext>Comment on attachment 311639
Patch

Clearing flags on attachment: 311639

Committed r217639: &lt;http://trac.webkit.org/changeset/217639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314423</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-05-31 16:33:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311636</attachid>
            <date>2017-05-31 14:43:28 -0700</date>
            <delta_ts>2017-05-31 14:49:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172778-20170531144327.patch</filename>
            <type>text/plain</type>
            <size>17587</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVhOWVhNWNmNWJhZDcw
OTcxMzdiODBmZDAzMTI3NDVkYjY2N2IwNy4uZDA0ZWM2OTBlZTc1MjVjMzUwMWIyZTI0YTk3NGMy
YWIxNzJiNjdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA1LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBRdWFsaWZpZWROYW1l
IGNhY2hlIHBlciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3Mjc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0OTA5NDI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBRdWFsaWZp
ZWROYW1lIGNhY2hlIHBlciB0aHJlYWQgc2luY2UgaXQgaXMgY3VycmVudGx5IHVzZWQgZnJvbSBt
dWx0aXBsZSB0aHJlYWRzLAorICAgICAgICBpbiBhbiB1bnNhZmUgZmFzaGlvbi4gV2Ugc3RhcnRl
ZCB1c2luZyBRdWFsaWZpZWROYW1lIG9iamVjdHMgaW4gYmFja2dyb3VuZCB0aHJlYWRzCisgICAg
ICAgIGFmdGVyIHIxOTA2MDIgd2hpY2ggc3RhcnRlZCB1c2luZyBhIENTU1NlbGVjdG9yUGFyc2Vy
IGluIHRoZSBDb250ZW50RXh0ZW5zaW9uUGFyc2VyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6On5RdWFsaWZpZWRO
YW1lSW1wbCk6CisgICAgICAgICogZG9tL1F1YWxpZmllZE5hbWVDYWNoZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UU5hbWVDb21wb25lbnRzVHJhbnNsYXRvcjo6aGFzaCk6CisgICAg
ICAgIChXZWJDb3JlOjpRTmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yOjplcXVhbCk6CisgICAgICAg
IChXZWJDb3JlOjpRTmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yOjp0cmFuc2xhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZUNhY2hlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpRdWFsaWZpZWROYW1lQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgICogZG9tL1F1YWxp
ZmllZE5hbWVDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2Jh
bERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSk6Cisg
ICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkR2xvYmFsRGF0YTo6cXVhbGlmaWVkTmFtZUNhY2hlKToKKwogMjAxNy0wNS0zMCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjIxNjg4Mik6IE5vIGltYWdlIGRlY29kaW5nIGlzIG5lZWRlZCBpZiB0aGUgQml0bWFw
SW1hZ2UgaXMgY3JlYXRlZCB3aXRoIGEgTmF0aXZlSW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4MGEwZWM1Y2MxZDhkOTBl
NzRkNDI5NDY1NzRiMzAwOTc2MTVlNTczLi5jNGNhZWIyNmMxMGJkZDJiNDZhZjM3YmNmMWExYWI0
YzA5MzY0YzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zNDA0LDYgKzM0MDQsOCBAQAogCQk4M0MxRDQzNDE3OEQ1QUI1MDAx
NDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMjE3OEQ1QUI0MDAxNDFFNjggLyog
U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVsLmggKi87IH07CiAJCTgzQzFENDM1MTc4RDVBQjUw
MDE0MUU2OCAvKiBTVkdQYXRoU2VnTW92ZXRvQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQyMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0
aFNlZ01vdmV0b0Ficy5oICovOyB9OwogCQk4M0MxRDQzNjE3OEQ1QUI1MDAxNDFFNjggLyogU1ZH
UGF0aFNlZ01vdmV0b1JlbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNDMUQ0MjQxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwu
aCAqLzsgfTsKKwkJODNDMUY1OTMxRURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNo
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Mx
RjU5MTFFREY2OUQzMDA0MTBEMjcgLyogUXVhbGlmaWVkTmFtZUNhY2hlLmNwcCAqLzsgfTsKKwkJ
ODNDMUY1OTQxRURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUY1OTIxRURGNjlEMzAw
NDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oICovOyB9OwogCQk4M0M0NUI4QzFEQzJCNjY3
MDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzQ1QjhCMURDMkI2NjMwMDg4NzFCQSAvKiBWYWxp
ZGF0aW9uQnViYmxlTWFjLm1tICovOyB9OwogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyog
VmFsaWRhdGlvbkJ1YmJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNDNDVCOEQxREMyQjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1
RDFEQTVDMzAxMDA2RkFDQTggLyogU2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyog
U2Nyb2xsVG9PcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTExNDczLDYgKzExNDc1LDggQEAKIAkJODNDMUQ0MjIxNzhENUFCNDAwMTQx
RTY4IC8qIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNDMUQ0MjMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdN
b3ZldG9BYnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aFNlZ01v
dmV0b0Ficy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0MxRDQyNDE3OEQ1QUI0
MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYXRoU2VnTW92ZXRvUmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTgzQzFGNTkxMUVERjY5RDMwMDQxMEQyNyAvKiBRdWFsaWZpZWROYW1lQ2FjaGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZUNhY2hl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNDMUY1OTIxRURGNjlEMzAwNDEw
RDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBRdWFsaWZpZWROYW1lQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNDNDVCOEIxREMyQjY2MzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGVNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0M0NUI4RDFEQzJCNjdDMDA4ODcxQkEg
LyogVmFsaWRhdGlvbkJ1YmJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
YWxpZGF0aW9uQnViYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDND
MUFGRENDNTAwMDFCMzg3MyAvKiBDaGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoaWxkTm9kZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTgwOSw2ICsyNTgxMyw4IEBACiAJCQkJRkY5
NDVFQ0ExNjFGN0YzNjAwOTcxQkM4IC8qIFBzZXVkb0VsZW1lbnQuaCAqLywKIAkJCQk1NTBBMEJD
NzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8sCiAJCQkJNTUwQTBCQzgw
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLywKKwkJCQk4M0MxRjU5MTFFREY2
OUQzMDA0MTBEMjcgLyogUXVhbGlmaWVkTmFtZUNhY2hlLmNwcCAqLywKKwkJCQk4M0MxRjU5MjFF
REY2OUQzMDA0MTBEMjcgLyogUXVhbGlmaWVkTmFtZUNhY2hlLmggKi8sCiAJCQkJOTNGOTI1NDIw
RjdFRjVCODAwN0UzN0M5IC8qIFJhZGlvQnV0dG9uR3JvdXBzLmNwcCAqLywKIAkJCQk5M0Y5MjU0
MTBGN0VGNUI4MDA3RTM3QzkgLyogUmFkaW9CdXR0b25Hcm91cHMuaCAqLywKIAkJCQlGNTIzRDMw
MzAyREU0NDc2MDE4NjM1Q0EgLyogUmFuZ2UuY3BwICovLApAQCAtMjk2MDUsNiArMjk2MTEsNyBA
QAogCQkJCUIyMjI3QTQ3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0NDMkRERkIxRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBl
cm1pc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MDZFNTdBMTI4OTMwNDUwMDdDRUQzMiAv
KiBTVkdNYXRyaXguaCBpbiBIZWFkZXJzICovLAorCQkJCTgzQzFGNTk0MUVERjY5RDMwMDQxMEQy
NyAvKiBRdWFsaWZpZWROYW1lQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4Q0EzRDQ0MTI4
OTRBMzgwMEZGRjI2MCAvKiBTVkdNYXRyaXhUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0U1OEQ1QzFERDdFQzlDMDAxMjg1NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyMjI3QTRCMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMzE2NjYsNiArMzE2NzMsNyBAQAogCQkJCUZEQTE1RUE3MTJCMDNF
RTEwMDNBNTgzQSAvKiBKU0F1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZEQTE1RUFEMTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkRBMTVFQUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTgzQzFGNTkzMUVERjY5RDMwMDQxMEQyNyAvKiBRdWFsaWZp
ZWROYW1lQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVFQjMxMkIwM0VFMTAwM0E1
ODNBIC8qIEpTQXVkaW9QYXJhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVCNTEyQjAz
RUUxMDAzQTU4M0EgLyogSlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCRThFRjA0MjE3MUM4RkY5MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwCmluZGV4IDYzOGJiOTE2ZTU2
MWZiZDAxN2M4ZmMwMWYxOTE0OTYyZWViNmFjNmIuLjRjZjU2NzE0MGViYjYzMjNiMTcwMzQ3MTky
M2Y1Y2E3MGEzM2M5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKQEAgLTI2
LDY4ICsyNiwyMiBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJYTGlu
a05hbWVzLmgiCi0jaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgotI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZUNhY2hlLmgiCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFs
RGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3Rh
dGljQ29uc3RydWN0b3JzLmg+CiAKLSNpZiBFTkFCTEUoTUFUSE1MKQotI2luY2x1ZGUgIk1hdGhN
TE5hbWVzLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qg
aW50IHN0YXRpY1F1YWxpZmllZE5hbWVzQ291bnQgPSBIVE1MTmFtZXM6OkhUTUxUYWdzQ291bnQg
KyBIVE1MTmFtZXM6OkhUTUxBdHRyc0NvdW50Ci0jaWYgRU5BQkxFKE1BVEhNTCkKLSAgICArIE1h
dGhNTE5hbWVzOjpNYXRoTUxUYWdzQ291bnQgKyBNYXRoTUxOYW1lczo6TWF0aE1MQXR0cnNDb3Vu
dAotI2VuZGlmCi0gICAgKyBTVkdOYW1lczo6U1ZHVGFnc0NvdW50ICsgU1ZHTmFtZXM6OlNWR0F0
dHJzQ291bnQKLSAgICArIFhMaW5rTmFtZXM6OlhMaW5rQXR0cnNDb3VudAotICAgICsgWE1MTlNO
YW1lczo6WE1MTlNBdHRyc0NvdW50Ci0gICAgKyBYTUxOYW1lczo6WE1MQXR0cnNDb3VudDsKLQot
c3RydWN0IFF1YWxpZmllZE5hbWVIYXNoVHJhaXRzIDogcHVibGljIEhhc2hUcmFpdHM8UXVhbGlm
aWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqPiB7Ci0gICAgc3RhdGljIGNvbnN0IGludCBtaW5p
bXVtVGFibGVTaXplID0gV1RGOjpIYXNoVGFibGVDYXBhY2l0eUZvclNpemU8c3RhdGljUXVhbGlm
aWVkTmFtZXNDb3VudD46OnZhbHVlOwotfTsKLQotdHlwZWRlZiBIYXNoU2V0PFF1YWxpZmllZE5h
bWU6OlF1YWxpZmllZE5hbWVJbXBsKiwgUXVhbGlmaWVkTmFtZUhhc2gsIFF1YWxpZmllZE5hbWVI
YXNoVHJhaXRzPiBRTmFtZVNldDsKLQotc3RydWN0IFFOYW1lQ29tcG9uZW50c1RyYW5zbGF0b3Ig
ewotICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRz
JiBjb21wb25lbnRzKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGhhc2hDb21wb25lbnRzKGNvbXBv
bmVudHMpOyAKLSAgICB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoUXVhbGlmaWVkTmFtZTo6UXVh
bGlmaWVkTmFtZUltcGwqIG5hbWUsIGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRzJiBjKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGMubV9wcmVmaXggPT0gbmFtZS0+bV9wcmVmaXguaW1wbCgp
ICYmIGMubV9sb2NhbE5hbWUgPT0gbmFtZS0+bV9sb2NhbE5hbWUuaW1wbCgpICYmIGMubV9uYW1l
c3BhY2UgPT0gbmFtZS0+bV9uYW1lc3BhY2UuaW1wbCgpOwotICAgIH0KLSAgICBzdGF0aWMgdm9p
ZCB0cmFuc2xhdGUoUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqJiBsb2NhdGlvbiwg
Y29uc3QgUXVhbGlmaWVkTmFtZUNvbXBvbmVudHMmIGNvbXBvbmVudHMsIHVuc2lnbmVkKQotICAg
IHsKLSAgICAgICAgbG9jYXRpb24gPSAmUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6
OmNyZWF0ZShjb21wb25lbnRzLm1fcHJlZml4LCBjb21wb25lbnRzLm1fbG9jYWxOYW1lLCBjb21w
b25lbnRzLm1fbmFtZXNwYWNlKS5sZWFrUmVmKCk7Ci0gICAgfQotfTsKLQotc3RhdGljIGlubGlu
ZSBRTmFtZVNldCYgcXVhbGlmaWVkTmFtZUNhY2hlKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8UU5hbWVTZXQ+IG5hbWVDYWNoZTsKLSAgICByZXR1cm4gbmFtZUNhY2hlOwotfQotCiBR
dWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsLCBjb25zdCBBdG9taWNTdHJpbmcmIG4pCisgICAgOiBtX2ltcGwodGhy
ZWFkR2xvYmFsRGF0YSgpLnF1YWxpZmllZE5hbWVDYWNoZSgpLmdldE9yQ3JlYXRlKFF1YWxpZmll
ZE5hbWVDb21wb25lbnRzIHsgcC5pbXBsKCksIGwuaW1wbCgpLCBuLmlzRW1wdHkoKSA/IG51bGxw
dHIgOiBuLmltcGwoKSB9KSkKIHsKLSAgICBRdWFsaWZpZWROYW1lQ29tcG9uZW50cyBjb21wb25l
bnRzID0geyBwLmltcGwoKSwgbC5pbXBsKCksIG4uaXNFbXB0eSgpID8gbnVsbHB0ciA6IG4uaW1w
bCgpIH07Ci0gICAgUU5hbWVTZXQ6OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBxdWFsaWZpZWROYW1l
Q2FjaGUoKS5hZGQ8UU5hbWVDb21wb25lbnRzVHJhbnNsYXRvcj4oY29tcG9uZW50cyk7Ci0gICAg
bV9pbXBsID0gYWRkUmVzdWx0LmlzTmV3RW50cnkgPyBhZG9wdFJlZigqYWRkUmVzdWx0Lml0ZXJh
dG9yKSA6ICphZGRSZXN1bHQuaXRlcmF0b3I7CiB9CiAKIFF1YWxpZmllZE5hbWU6OlF1YWxpZmll
ZE5hbWVJbXBsOjp+UXVhbGlmaWVkTmFtZUltcGwoKQogewotICAgIHF1YWxpZmllZE5hbWVDYWNo
ZSgpLnJlbW92ZSh0aGlzKTsKKyAgICB0aHJlYWRHbG9iYWxEYXRhKCkucXVhbGlmaWVkTmFtZUNh
Y2hlKCkucmVtb3ZlKCp0aGlzKTsKIH0KIAogLy8gR2xvYmFsIGluaXQgcm91dGluZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lQ2FjaGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWVDYWNoZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc0YWJhODAz
NGUyY2M4NTZlN2MxMGVhOWM4M2JhOTE5ZmRjYWZiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lQ2FjaGUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWVDYWNoZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBRTmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yIHsKKyAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBRdWFsaWZpZWROYW1lQ29tcG9uZW50cyYgY29tcG9uZW50
cykKKyAgICB7CisgICAgICAgIHJldHVybiBoYXNoQ29tcG9uZW50cyhjb21wb25lbnRzKTsKKyAg
ICB9CisgICAgc3RhdGljIGJvb2wgZXF1YWwoUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUlt
cGwqIG5hbWUsIGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRzJiBjKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGMubV9wcmVmaXggPT0gbmFtZS0+bV9wcmVmaXguaW1wbCgpICYmIGMubV9sb2Nh
bE5hbWUgPT0gbmFtZS0+bV9sb2NhbE5hbWUuaW1wbCgpICYmIGMubV9uYW1lc3BhY2UgPT0gbmFt
ZS0+bV9uYW1lc3BhY2UuaW1wbCgpOworICAgIH0KKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUo
UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqJiBsb2NhdGlvbiwgY29uc3QgUXVhbGlm
aWVkTmFtZUNvbXBvbmVudHMmIGNvbXBvbmVudHMsIHVuc2lnbmVkKQorICAgIHsKKyAgICAgICAg
bG9jYXRpb24gPSAmUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6OmNyZWF0ZShjb21w
b25lbnRzLm1fcHJlZml4LCBjb21wb25lbnRzLm1fbG9jYWxOYW1lLCBjb21wb25lbnRzLm1fbmFt
ZXNwYWNlKS5sZWFrUmVmKCk7CisgICAgfQorfTsKKworUmVmPFF1YWxpZmllZE5hbWU6OlF1YWxp
ZmllZE5hbWVJbXBsPiBRdWFsaWZpZWROYW1lQ2FjaGU6OmdldE9yQ3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWVDb21wb25lbnRzJiBjb21wb25lbnRzKQoreworICAgIFFOYW1lU2V0OjpBZGRSZXN1
bHQgYWRkUmVzdWx0ID0gbV9jYWNoZS5hZGQ8UU5hbWVDb21wb25lbnRzVHJhbnNsYXRvcj4oY29t
cG9uZW50cyk7CisgICAgcmV0dXJuIGFkZFJlc3VsdC5pc05ld0VudHJ5ID8gYWRvcHRSZWYoKiph
ZGRSZXN1bHQuaXRlcmF0b3IpIDogUmVmPFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBs
PiB7ICoqYWRkUmVzdWx0Lml0ZXJhdG9yIH07Cit9CisKK3ZvaWQgUXVhbGlmaWVkTmFtZUNhY2hl
OjpyZW1vdmUoUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwmIGltcGwpCit7CisgICAg
bV9jYWNoZS5yZW1vdmUoJmltcGwpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZUNhY2hlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJhOTY1YjE2OWYw
YTUxNTI3NjI5NThmNTIxNzEwMmI1MzA1MjY0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lQ2FjaGUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUgIlhN
TE5TTmFtZXMuaCIKKyNpbmNsdWRlICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorCisjaWYgRU5BQkxFKE1BVEhNTCkKKyNpbmNsdWRl
ICJNYXRoTUxOYW1lcy5oIgorI2VuZGlmCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBRdWFsaWZpZWROYW1lQ2FjaGUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFF1YWxpZmllZE5hbWVDYWNoZSgpID0gZGVmYXVsdDsKKworICAgIFJlZjxRdWFs
aWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbD4gZ2V0T3JDcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZUNvbXBvbmVudHMmKTsKKyAgICB2b2lkIHJlbW92ZShRdWFsaWZpZWROYW1lOjpRdWFsaWZp
ZWROYW1lSW1wbCYpOworCitwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgc3RhdGljUXVh
bGlmaWVkTmFtZXNDb3VudCA9IEhUTUxOYW1lczo6SFRNTFRhZ3NDb3VudCArIEhUTUxOYW1lczo6
SFRNTEF0dHJzQ291bnQKKyNpZiBFTkFCTEUoTUFUSE1MKQorICAgICAgICArIE1hdGhNTE5hbWVz
OjpNYXRoTUxUYWdzQ291bnQgKyBNYXRoTUxOYW1lczo6TWF0aE1MQXR0cnNDb3VudAorI2VuZGlm
CisgICAgICAgICsgU1ZHTmFtZXM6OlNWR1RhZ3NDb3VudCArIFNWR05hbWVzOjpTVkdBdHRyc0Nv
dW50CisgICAgICAgICsgWExpbmtOYW1lczo6WExpbmtBdHRyc0NvdW50CisgICAgICAgICsgWE1M
TlNOYW1lczo6WE1MTlNBdHRyc0NvdW50CisgICAgICAgICsgWE1MTmFtZXM6OlhNTEF0dHJzQ291
bnQ7CisKKyAgICBzdHJ1Y3QgUXVhbGlmaWVkTmFtZUhhc2hUcmFpdHMgOiBwdWJsaWMgSGFzaFRy
YWl0czxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbCo+IHsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IGludCBtaW5pbXVtVGFibGVTaXplID0gV1RGOjpIYXNoVGFibGVDYXBhY2l0eUZvclNp
emU8c3RhdGljUXVhbGlmaWVkTmFtZXNDb3VudD46OnZhbHVlOworICAgIH07CisKKyAgICB1c2lu
ZyBRTmFtZVNldCA9IEhhc2hTZXQ8UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqLCBR
dWFsaWZpZWROYW1lSGFzaCwgUXVhbGlmaWVkTmFtZUhhc2hUcmFpdHM+OworICAgIFFOYW1lU2V0
IG1fY2FjaGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2Jh
bERhdGEuY3BwCmluZGV4IDA1MDc0ZmNkODFkODJhNjFhYjNlN2Q3YzMzNmE4N2QxM2YwNTBmYzUu
LmI4ZmFmNWE4ZDc5MTAyZjJlZmRkOGJkYTY0MzFjMDc3YmZmMTNiZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIlF1YWxpZmllZE5hbWVDYWNoZS5oIgogI2luY2x1ZGUg
IlRleHRDb2RlY0lDVS5oIgogI2luY2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CkBAIC01Miw2ICs1Myw3IEBAIFRocmVhZEdsb2JhbERhdGE6OlRocmVh
ZEdsb2JhbERhdGEoKQogICAgIDogbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKHN0
ZDo6bWFrZV91bmlxdWU8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4oKSkKICAgICAs
IG1fZXZlbnROYW1lcyhFdmVudE5hbWVzOjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkVGltZXJz
KHN0ZDo6bWFrZV91bmlxdWU8VGhyZWFkVGltZXJzPigpKQorICAgICwgbV9xdWFsaWZpZWROYW1l
Q2FjaGUoc3RkOjptYWtlX3VuaXF1ZTxRdWFsaWZpZWROYW1lQ2FjaGU+KCkpCiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9pc01haW5UaHJlYWQoaXNNYWluVGhyZWFkKCkpCiAjZW5kaWYKQEAgLTgy
LDYgKzg0LDcgQEAgdm9pZCBUaHJlYWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKIAogICAgIG1fZXZl
bnROYW1lcyA9IG51bGxwdHI7CiAgICAgbV90aHJlYWRUaW1lcnMgPSBudWxscHRyOworICAgIG1f
cXVhbGlmaWVkTmFtZUNhY2hlID0gbnVsbHB0cjsKIH0KIAogI2lmIFVTRShXRUJfVEhSRUFEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCmluZGV4IGY5YWMxMzg4
YmM5ZDNjMmYyZmM2ZTkzZjU4ZDY2MTNjNTNmYzU1MmMuLmMwZGI2NjUyNjAzYjQ3MzNkNGQ3YWM3
OGJmOTRhNWJlMDllMjI0YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Ro
cmVhZEdsb2JhbERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9i
YWxEYXRhLmgKQEAgLTM2LDYgKzM2LDcgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgY2xhc3MgUXVhbGlmaWVkTmFtZUNhY2hlOwogICAg
IGNsYXNzIFRocmVhZFRpbWVyczsKIAogICAgIHN0cnVjdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzOwpAQCAtNTMsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291cmNlUmVx
dWVzdEluaXRpYXRvcnMoKSB7IHJldHVybiAqbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0
b3JzOyB9CiAgICAgICAgIEV2ZW50TmFtZXMmIGV2ZW50TmFtZXMoKSB7IHJldHVybiAqbV9ldmVu
dE5hbWVzOyB9CiAgICAgICAgIFRocmVhZFRpbWVycyYgdGhyZWFkVGltZXJzKCkgeyByZXR1cm4g
Km1fdGhyZWFkVGltZXJzOyB9CisgICAgICAgIFF1YWxpZmllZE5hbWVDYWNoZSYgcXVhbGlmaWVk
TmFtZUNhY2hlKCkgeyByZXR1cm4gKm1fcXVhbGlmaWVkTmFtZUNhY2hlOyB9CiAKICAgICAgICAg
SUNVQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1fY2Fj
aGVkQ29udmVydGVySUNVOyB9CiAKQEAgLTY4LDYgKzcwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cz4gbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwogICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8RXZlbnROYW1lcz4gbV9ldmVudE5hbWVzOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
VGhyZWFkVGltZXJzPiBtX3RocmVhZFRpbWVyczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFF1
YWxpZmllZE5hbWVDYWNoZT4gbV9xdWFsaWZpZWROYW1lQ2FjaGU7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgIGJvb2wgbV9pc01haW5UaHJlYWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311639</attachid>
            <date>2017-05-31 14:49:03 -0700</date>
            <delta_ts>2017-05-31 16:33:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172778-20170531144902.patch</filename>
            <type>text/plain</type>
            <size>18079</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVhOWVhNWNmNWJhZDcw
OTcxMzdiODBmZDAzMTI3NDVkYjY2N2IwNy4uZDA0ZWM2OTBlZTc1MjVjMzUwMWIyZTI0YTk3NGMy
YWIxNzJiNjdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA1LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBRdWFsaWZpZWROYW1l
IGNhY2hlIHBlciB0aHJlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3Mjc3OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI0OTA5NDI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBRdWFsaWZp
ZWROYW1lIGNhY2hlIHBlciB0aHJlYWQgc2luY2UgaXQgaXMgY3VycmVudGx5IHVzZWQgZnJvbSBt
dWx0aXBsZSB0aHJlYWRzLAorICAgICAgICBpbiBhbiB1bnNhZmUgZmFzaGlvbi4gV2Ugc3RhcnRl
ZCB1c2luZyBRdWFsaWZpZWROYW1lIG9iamVjdHMgaW4gYmFja2dyb3VuZCB0aHJlYWRzCisgICAg
ICAgIGFmdGVyIHIxOTA2MDIgd2hpY2ggc3RhcnRlZCB1c2luZyBhIENTU1NlbGVjdG9yUGFyc2Vy
IGluIHRoZSBDb250ZW50RXh0ZW5zaW9uUGFyc2VyLgorCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6On5RdWFsaWZpZWRO
YW1lSW1wbCk6CisgICAgICAgICogZG9tL1F1YWxpZmllZE5hbWVDYWNoZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UU5hbWVDb21wb25lbnRzVHJhbnNsYXRvcjo6aGFzaCk6CisgICAg
ICAgIChXZWJDb3JlOjpRTmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yOjplcXVhbCk6CisgICAgICAg
IChXZWJDb3JlOjpRTmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yOjp0cmFuc2xhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UXVhbGlmaWVkTmFtZUNhY2hlOjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpRdWFsaWZpZWROYW1lQ2FjaGU6OnJlbW92ZSk6CisgICAgICAgICogZG9tL1F1YWxp
ZmllZE5hbWVDYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9UaHJlYWRHbG9iYWxE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2Jh
bERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkR2xvYmFsRGF0YTo6ZGVzdHJveSk6Cisg
ICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkR2xvYmFsRGF0YTo6cXVhbGlmaWVkTmFtZUNhY2hlKToKKwogMjAxNy0wNS0zMCAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjIxNjg4Mik6IE5vIGltYWdlIGRlY29kaW5nIGlzIG5lZWRlZCBpZiB0aGUgQml0bWFw
SW1hZ2UgaXMgY3JlYXRlZCB3aXRoIGEgTmF0aXZlSW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggNzRmZmRlM2EyODc2NmEyNjQzMGM0ZDIyMzAxOWQxOGEwOGFlNmQwMS4uY2FmZDI3MGIxZDZl
Mzc5ZTUzZjU5NTFkNTA1NjNlNjYxZTQ0MjNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1
MjQsNiArMTUyNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vUHJvbWlzZVJlamVj
dGlvbkV2ZW50LmNwcAogICAgIGRvbS9Qc2V1ZG9FbGVtZW50LmNwcAogICAgIGRvbS9RdWFsaWZp
ZWROYW1lLmNwcAorICAgIGRvbS9RdWFsaWZpZWROYW1lQ2FjaGUuY3BwCiAgICAgZG9tL1JhZGlv
QnV0dG9uR3JvdXBzLmNwcAogICAgIGRvbS9SYW5nZS5jcHAKICAgICBkb20vUmVqZWN0ZWRQcm9t
aXNlVHJhY2tlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA4MGEwZWM1Y2MxZDhkOTBlNzRkNDI5NDY1NzRiMzAwOTc2MTVl
NTczLi5jNGNhZWIyNmMxMGJkZDJiNDZhZjM3YmNmMWExYWI0YzA5MzY0YzNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDA0
LDYgKzM0MDQsOCBAQAogCQk4M0MxRDQzNDE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0MxRDQyMjE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsUmVsLmggKi87IH07CiAJCTgzQzFENDM1MTc4RDVBQjUwMDE0MUU2OCAvKiBTVkdQYXRoU2Vn
TW92ZXRvQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0MxRDQyMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b0Ficy5oICovOyB9
OwogCQk4M0MxRDQzNjE3OEQ1QUI1MDAxNDFFNjggLyogU1ZHUGF0aFNlZ01vdmV0b1JlbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMUQ0MjQxNzhE
NUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9SZWwuaCAqLzsgfTsKKwkJODNDMUY1OTMx
RURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRjU5MTFFREY2OUQzMDA0MTBEMjcg
LyogUXVhbGlmaWVkTmFtZUNhY2hlLmNwcCAqLzsgfTsKKwkJODNDMUY1OTQxRURGNjlEMzAwNDEw
RDI3IC8qIFF1YWxpZmllZE5hbWVDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNDMUY1OTIxRURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5h
bWVDYWNoZS5oICovOyB9OwogCQk4M0M0NUI4QzFEQzJCNjY3MDA4ODcxQkEgLyogVmFsaWRhdGlv
bkJ1YmJsZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzQzQ1QjhCMURDMkI2NjMwMDg4NzFCQSAvKiBWYWxpZGF0aW9uQnViYmxlTWFjLm1tICov
OyB9OwogCQk4M0M0NUI4RTFEQzJCNjhBMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDNDVCOEQxREMy
QjY3QzAwODg3MUJBIC8qIFZhbGlkYXRpb25CdWJibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4M0M1Nzk1RDFEQTVDMzAxMDA2RkFDQTggLyog
U2Nyb2xsVG9PcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MzUwQzNFNzFEQTU5QjYyMDAzNTY0NDYgLyogU2Nyb2xsVG9PcHRpb25zLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDczLDYg
KzExNDc1LDggQEAKIAkJODNDMUQ0MjIxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbFJlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRo
U2VnTGluZXRvVmVydGljYWxSZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODND
MUQ0MjMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdNb3ZldG9BYnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aFNlZ01vdmV0b0Ficy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4M0MxRDQyNDE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNl
Z01vdmV0b1JlbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2Vn
TW92ZXRvUmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQzFGNTkxMUVERjY5
RDMwMDQxMEQyNyAvKiBRdWFsaWZpZWROYW1lQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZUNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODNDMUY1OTIxRURGNjlEMzAwNDEwRDI3IC8qIFF1YWxpZmllZE5hbWVD
YWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lQ2Fj
aGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNDNDVCOEIxREMyQjY2MzAwODg3
MUJBIC8qIFZhbGlkYXRpb25CdWJibGVNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0M0NUI4RDFEQzJCNjdDMDA4ODcxQkEgLyogVmFsaWRhdGlvbkJ1YmJsZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzRDI2RDNDMUFGRENDNTAwMDFCMzg3MyAvKiBD
aGlsZE5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IENoaWxkTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNTgwOSw2ICsyNTgxMyw4IEBACiAJCQkJRkY5NDVFQ0ExNjFGN0YzNjAwOTcxQkM4
IC8qIFBzZXVkb0VsZW1lbnQuaCAqLywKIAkJCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5jcHAgKi8sCiAJCQkJNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1
YWxpZmllZE5hbWUuaCAqLywKKwkJCQk4M0MxRjU5MTFFREY2OUQzMDA0MTBEMjcgLyogUXVhbGlm
aWVkTmFtZUNhY2hlLmNwcCAqLywKKwkJCQk4M0MxRjU5MjFFREY2OUQzMDA0MTBEMjcgLyogUXVh
bGlmaWVkTmFtZUNhY2hlLmggKi8sCiAJCQkJOTNGOTI1NDIwRjdFRjVCODAwN0UzN0M5IC8qIFJh
ZGlvQnV0dG9uR3JvdXBzLmNwcCAqLywKIAkJCQk5M0Y5MjU0MTBGN0VGNUI4MDA3RTM3QzkgLyog
UmFkaW9CdXR0b25Hcm91cHMuaCAqLywKIAkJCQlGNTIzRDMwMzAyREU0NDc2MDE4NjM1Q0EgLyog
UmFuZ2UuY3BwICovLApAQCAtMjk2MDUsNiArMjk2MTEsNyBAQAogCQkJCUIyMjI3QTQ3MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNYXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NDMkRE
RkIxRUM5NDE1QTAwMjdCNzc0IC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MDZFNTdBMTI4OTMwNDUwMDdDRUQzMiAvKiBTVkdNYXRyaXguaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzQzFGNTk0MUVERjY5RDMwMDQxMEQyNyAvKiBRdWFsaWZpZWROYW1lQ2Fj
aGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4Q0EzRDQ0MTI4OTRBMzgwMEZGRjI2MCAvKiBTVkdN
YXRyaXhUZWFyT2ZmLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1QzFERDdFQzlDMDAxMjg1
NTIgLyogU1ZHTWF0cml4VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTRCMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE2
NjYsNiArMzE2NzMsNyBAQAogCQkJCUZEQTE1RUE3MTJCMDNFRTEwMDNBNTgzQSAvKiBKU0F1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEQTE1RUFEMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBMTVF
QUYxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTgzQzFGNTkzMUVERjY5RDMwMDQxMEQyNyAvKiBRdWFsaWZpZWROYW1lQ2FjaGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRkRBMTVFQjMxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9QYXJhbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGREExNUVCNTEyQjAzRUUxMDAzQTU4M0EgLyogSlNBdWRp
b1Byb2Nlc3NpbmdFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCRThFRjA0MjE3MUM4RkY5
MDA5QjQ4QzMgLyogSlNBdWRpb1RyYWNrLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1F1YWxpZmllZE5hbWUuY3BwCmluZGV4IDYzOGJiOTE2ZTU2MWZiZDAxN2M4ZmMwMWYxOTE0OTYy
ZWViNmFjNmIuLjRjZjU2NzE0MGViYjYzMjNiMTcwMzQ3MTkyM2Y1Y2E3MGEzM2M5Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAKQEAgLTI2LDY4ICsyNiwyMiBAQAogI2VuZGlm
CiAKICNpbmNsdWRlICJRdWFsaWZpZWROYW1lLmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0j
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNpbmNsdWRlICJYTGlua05hbWVzLmgiCi0jaW5jbHVkZSAi
WE1MTlNOYW1lcy5oIgotI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVk
TmFtZUNhY2hlLmgiCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RhdGljQ29uc3RydWN0b3JzLmg+CiAK
LSNpZiBFTkFCTEUoTUFUSE1MKQotI2luY2x1ZGUgIk1hdGhNTE5hbWVzLmgiCi0jZW5kaWYKLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgaW50IHN0YXRpY1F1YWxpZmllZE5h
bWVzQ291bnQgPSBIVE1MTmFtZXM6OkhUTUxUYWdzQ291bnQgKyBIVE1MTmFtZXM6OkhUTUxBdHRy
c0NvdW50Ci0jaWYgRU5BQkxFKE1BVEhNTCkKLSAgICArIE1hdGhNTE5hbWVzOjpNYXRoTUxUYWdz
Q291bnQgKyBNYXRoTUxOYW1lczo6TWF0aE1MQXR0cnNDb3VudAotI2VuZGlmCi0gICAgKyBTVkdO
YW1lczo6U1ZHVGFnc0NvdW50ICsgU1ZHTmFtZXM6OlNWR0F0dHJzQ291bnQKLSAgICArIFhMaW5r
TmFtZXM6OlhMaW5rQXR0cnNDb3VudAotICAgICsgWE1MTlNOYW1lczo6WE1MTlNBdHRyc0NvdW50
Ci0gICAgKyBYTUxOYW1lczo6WE1MQXR0cnNDb3VudDsKLQotc3RydWN0IFF1YWxpZmllZE5hbWVI
YXNoVHJhaXRzIDogcHVibGljIEhhc2hUcmFpdHM8UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFt
ZUltcGwqPiB7Ci0gICAgc3RhdGljIGNvbnN0IGludCBtaW5pbXVtVGFibGVTaXplID0gV1RGOjpI
YXNoVGFibGVDYXBhY2l0eUZvclNpemU8c3RhdGljUXVhbGlmaWVkTmFtZXNDb3VudD46OnZhbHVl
OwotfTsKLQotdHlwZWRlZiBIYXNoU2V0PFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBs
KiwgUXVhbGlmaWVkTmFtZUhhc2gsIFF1YWxpZmllZE5hbWVIYXNoVHJhaXRzPiBRTmFtZVNldDsK
LQotc3RydWN0IFFOYW1lQ29tcG9uZW50c1RyYW5zbGF0b3IgewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRzJiBjb21wb25lbnRzKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGhhc2hDb21wb25lbnRzKGNvbXBvbmVudHMpOyAKLSAgICB9Ci0gICAg
c3RhdGljIGJvb2wgZXF1YWwoUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqIG5hbWUs
IGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRzJiBjKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGMubV9wcmVmaXggPT0gbmFtZS0+bV9wcmVmaXguaW1wbCgpICYmIGMubV9sb2NhbE5hbWUgPT0g
bmFtZS0+bV9sb2NhbE5hbWUuaW1wbCgpICYmIGMubV9uYW1lc3BhY2UgPT0gbmFtZS0+bV9uYW1l
c3BhY2UuaW1wbCgpOwotICAgIH0KLSAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoUXVhbGlmaWVk
TmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqJiBsb2NhdGlvbiwgY29uc3QgUXVhbGlmaWVkTmFtZUNv
bXBvbmVudHMmIGNvbXBvbmVudHMsIHVuc2lnbmVkKQotICAgIHsKLSAgICAgICAgbG9jYXRpb24g
PSAmUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6OmNyZWF0ZShjb21wb25lbnRzLm1f
cHJlZml4LCBjb21wb25lbnRzLm1fbG9jYWxOYW1lLCBjb21wb25lbnRzLm1fbmFtZXNwYWNlKS5s
ZWFrUmVmKCk7Ci0gICAgfQotfTsKLQotc3RhdGljIGlubGluZSBRTmFtZVNldCYgcXVhbGlmaWVk
TmFtZUNhY2hlKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UU5hbWVTZXQ+IG5hbWVD
YWNoZTsKLSAgICByZXR1cm4gbmFtZUNhY2hlOwotfQotCiBRdWFsaWZpZWROYW1lOjpRdWFsaWZp
ZWROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcCwgY29uc3QgQXRvbWljU3RyaW5nJiBsLCBjb25z
dCBBdG9taWNTdHJpbmcmIG4pCisgICAgOiBtX2ltcGwodGhyZWFkR2xvYmFsRGF0YSgpLnF1YWxp
ZmllZE5hbWVDYWNoZSgpLmdldE9yQ3JlYXRlKFF1YWxpZmllZE5hbWVDb21wb25lbnRzIHsgcC5p
bXBsKCksIGwuaW1wbCgpLCBuLmlzRW1wdHkoKSA/IG51bGxwdHIgOiBuLmltcGwoKSB9KSkKIHsK
LSAgICBRdWFsaWZpZWROYW1lQ29tcG9uZW50cyBjb21wb25lbnRzID0geyBwLmltcGwoKSwgbC5p
bXBsKCksIG4uaXNFbXB0eSgpID8gbnVsbHB0ciA6IG4uaW1wbCgpIH07Ci0gICAgUU5hbWVTZXQ6
OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBxdWFsaWZpZWROYW1lQ2FjaGUoKS5hZGQ8UU5hbWVDb21w
b25lbnRzVHJhbnNsYXRvcj4oY29tcG9uZW50cyk7Ci0gICAgbV9pbXBsID0gYWRkUmVzdWx0Lmlz
TmV3RW50cnkgPyBhZG9wdFJlZigqYWRkUmVzdWx0Lml0ZXJhdG9yKSA6ICphZGRSZXN1bHQuaXRl
cmF0b3I7CiB9CiAKIFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBsOjp+UXVhbGlmaWVk
TmFtZUltcGwoKQogewotICAgIHF1YWxpZmllZE5hbWVDYWNoZSgpLnJlbW92ZSh0aGlzKTsKKyAg
ICB0aHJlYWRHbG9iYWxEYXRhKCkucXVhbGlmaWVkTmFtZUNhY2hlKCkucmVtb3ZlKCp0aGlzKTsK
IH0KIAogLy8gR2xvYmFsIGluaXQgcm91dGluZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9RdWFsaWZpZWROYW1lQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmll
ZE5hbWVDYWNoZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc0YWJhODAzNGUyY2M4NTZlN2MxMGVhOWM4M2Jh
OTE5ZmRjYWZiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZp
ZWROYW1lQ2FjaGUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlF1YWxpZmllZE5hbWVDYWNoZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBR
TmFtZUNvbXBvbmVudHNUcmFuc2xhdG9yIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBRdWFsaWZpZWROYW1lQ29tcG9uZW50cyYgY29tcG9uZW50cykKKyAgICB7CisgICAgICAgIHJl
dHVybiBoYXNoQ29tcG9uZW50cyhjb21wb25lbnRzKTsKKyAgICB9CisgICAgc3RhdGljIGJvb2wg
ZXF1YWwoUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqIG5hbWUsIGNvbnN0IFF1YWxp
ZmllZE5hbWVDb21wb25lbnRzJiBjKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGMubV9wcmVmaXgg
PT0gbmFtZS0+bV9wcmVmaXguaW1wbCgpICYmIGMubV9sb2NhbE5hbWUgPT0gbmFtZS0+bV9sb2Nh
bE5hbWUuaW1wbCgpICYmIGMubV9uYW1lc3BhY2UgPT0gbmFtZS0+bV9uYW1lc3BhY2UuaW1wbCgp
OworICAgIH0KKyAgICBzdGF0aWMgdm9pZCB0cmFuc2xhdGUoUXVhbGlmaWVkTmFtZTo6UXVhbGlm
aWVkTmFtZUltcGwqJiBsb2NhdGlvbiwgY29uc3QgUXVhbGlmaWVkTmFtZUNvbXBvbmVudHMmIGNv
bXBvbmVudHMsIHVuc2lnbmVkKQorICAgIHsKKyAgICAgICAgbG9jYXRpb24gPSAmUXVhbGlmaWVk
TmFtZTo6UXVhbGlmaWVkTmFtZUltcGw6OmNyZWF0ZShjb21wb25lbnRzLm1fcHJlZml4LCBjb21w
b25lbnRzLm1fbG9jYWxOYW1lLCBjb21wb25lbnRzLm1fbmFtZXNwYWNlKS5sZWFrUmVmKCk7Cisg
ICAgfQorfTsKKworUmVmPFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBsPiBRdWFsaWZp
ZWROYW1lQ2FjaGU6OmdldE9yQ3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWVDb21wb25lbnRzJiBj
b21wb25lbnRzKQoreworICAgIFFOYW1lU2V0OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gbV9jYWNo
ZS5hZGQ8UU5hbWVDb21wb25lbnRzVHJhbnNsYXRvcj4oY29tcG9uZW50cyk7CisgICAgcmV0dXJu
IGFkZFJlc3VsdC5pc05ld0VudHJ5ID8gYWRvcHRSZWYoKiphZGRSZXN1bHQuaXRlcmF0b3IpIDog
UmVmPFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBsPiB7ICoqYWRkUmVzdWx0Lml0ZXJh
dG9yIH07Cit9CisKK3ZvaWQgUXVhbGlmaWVkTmFtZUNhY2hlOjpyZW1vdmUoUXVhbGlmaWVkTmFt
ZTo6UXVhbGlmaWVkTmFtZUltcGwmIGltcGwpCit7CisgICAgbV9jYWNoZS5yZW1vdmUoJmltcGwp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUXVhbGlmaWVkTmFtZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVk
TmFtZUNhY2hlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJhOTY1YjE2OWYwYTUxNTI3NjI5NThmNTIxNzEwMmI1
MzA1MjY0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lQ2FjaGUuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCisj
aW5jbHVkZSAiWExpbmtOYW1lcy5oIgorI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKKyNpbmNsdWRl
ICJYTUxOYW1lcy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Jl
Zi5oPgorCisjaWYgRU5BQkxFKE1BVEhNTCkKKyNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgorI2Vu
ZGlmCisKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBRdWFsaWZpZWROYW1lQ2FjaGUg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFF1YWxpZmllZE5h
bWVDYWNoZSgpID0gZGVmYXVsdDsKKworICAgIFJlZjxRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWRO
YW1lSW1wbD4gZ2V0T3JDcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZUNvbXBvbmVudHMmKTsKKyAg
ICB2b2lkIHJlbW92ZShRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1lSW1wbCYpOworCitwcml2
YXRlOgorICAgIHN0YXRpYyBjb25zdCBpbnQgc3RhdGljUXVhbGlmaWVkTmFtZXNDb3VudCA9IEhU
TUxOYW1lczo6SFRNTFRhZ3NDb3VudCArIEhUTUxOYW1lczo6SFRNTEF0dHJzQ291bnQKKyNpZiBF
TkFCTEUoTUFUSE1MKQorICAgICAgICArIE1hdGhNTE5hbWVzOjpNYXRoTUxUYWdzQ291bnQgKyBN
YXRoTUxOYW1lczo6TWF0aE1MQXR0cnNDb3VudAorI2VuZGlmCisgICAgICAgICsgU1ZHTmFtZXM6
OlNWR1RhZ3NDb3VudCArIFNWR05hbWVzOjpTVkdBdHRyc0NvdW50CisgICAgICAgICsgWExpbmtO
YW1lczo6WExpbmtBdHRyc0NvdW50CisgICAgICAgICsgWE1MTlNOYW1lczo6WE1MTlNBdHRyc0Nv
dW50CisgICAgICAgICsgWE1MTmFtZXM6OlhNTEF0dHJzQ291bnQ7CisKKyAgICBzdHJ1Y3QgUXVh
bGlmaWVkTmFtZUhhc2hUcmFpdHMgOiBwdWJsaWMgSGFzaFRyYWl0czxRdWFsaWZpZWROYW1lOjpR
dWFsaWZpZWROYW1lSW1wbCo+IHsKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBtaW5pbXVtVGFi
bGVTaXplID0gV1RGOjpIYXNoVGFibGVDYXBhY2l0eUZvclNpemU8c3RhdGljUXVhbGlmaWVkTmFt
ZXNDb3VudD46OnZhbHVlOworICAgIH07CisKKyAgICB1c2luZyBRTmFtZVNldCA9IEhhc2hTZXQ8
UXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZUltcGwqLCBRdWFsaWZpZWROYW1lSGFzaCwgUXVh
bGlmaWVkTmFtZUhhc2hUcmFpdHM+OworICAgIFFOYW1lU2V0IG1fY2FjaGU7Cit9OworCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwCmluZGV4IDA1MDc0
ZmNkODFkODJhNjFhYjNlN2Q3YzMzNmE4N2QxM2YwNTBmYzUuLmI4ZmFmNWE4ZDc5MTAyZjJlZmRk
OGJkYTY0MzFjMDc3YmZmMTNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RocmVhZEdsb2JhbERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVh
ZEdsb2JhbERhdGEuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIlF1YWxpZmllZE5hbWVDYWNoZS5oIgogI2luY2x1ZGUgIlRleHRDb2RlY0lDVS5oIgogI2lu
Y2x1ZGUgIlRocmVhZFRpbWVycy5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01
Miw2ICs1Myw3IEBAIFRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEoKQogICAgIDog
bV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKHN0ZDo6bWFrZV91bmlxdWU8Q2FjaGVk
UmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4oKSkKICAgICAsIG1fZXZlbnROYW1lcyhFdmVudE5h
bWVzOjpjcmVhdGUoKSkKICAgICAsIG1fdGhyZWFkVGltZXJzKHN0ZDo6bWFrZV91bmlxdWU8VGhy
ZWFkVGltZXJzPigpKQorICAgICwgbV9xdWFsaWZpZWROYW1lQ2FjaGUoc3RkOjptYWtlX3VuaXF1
ZTxRdWFsaWZpZWROYW1lQ2FjaGU+KCkpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc01haW5U
aHJlYWQoaXNNYWluVGhyZWFkKCkpCiAjZW5kaWYKQEAgLTgyLDYgKzg0LDcgQEAgdm9pZCBUaHJl
YWRHbG9iYWxEYXRhOjpkZXN0cm95KCkKIAogICAgIG1fZXZlbnROYW1lcyA9IG51bGxwdHI7CiAg
ICAgbV90aHJlYWRUaW1lcnMgPSBudWxscHRyOworICAgIG1fcXVhbGlmaWVkTmFtZUNhY2hlID0g
bnVsbHB0cjsKIH0KIAogI2lmIFVTRShXRUJfVEhSRUFEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5oCmluZGV4IGY5YWMxMzg4YmM5ZDNjMmYyZmM2ZTkzZjU4ZDY2
MTNjNTNmYzU1MmMuLmMwZGI2NjUyNjAzYjQ3MzNkNGQ3YWM3OGJmOTRhNWJlMDllMjI0YzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKQEAgLTM2LDYgKzM2
LDcgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CisgICAgY2xhc3MgUXVhbGlmaWVkTmFtZUNhY2hlOwogICAgIGNsYXNzIFRocmVhZFRpbWVyczsK
IAogICAgIHN0cnVjdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwpAQCAtNTMsNiAr
NTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKSB7IHJl
dHVybiAqbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOyB9CiAgICAgICAgIEV2ZW50
TmFtZXMmIGV2ZW50TmFtZXMoKSB7IHJldHVybiAqbV9ldmVudE5hbWVzOyB9CiAgICAgICAgIFRo
cmVhZFRpbWVycyYgdGhyZWFkVGltZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9Cisg
ICAgICAgIFF1YWxpZmllZE5hbWVDYWNoZSYgcXVhbGlmaWVkTmFtZUNhY2hlKCkgeyByZXR1cm4g
Km1fcXVhbGlmaWVkTmFtZUNhY2hlOyB9CiAKICAgICAgICAgSUNVQ29udmVydGVyV3JhcHBlciYg
Y2FjaGVkQ29udmVydGVySUNVKCkgeyByZXR1cm4gKm1fY2FjaGVkQ29udmVydGVySUNVOyB9CiAK
QEAgLTY4LDYgKzcwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycz4gbV9jYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXZlbnROYW1lcz4gbV9l
dmVudE5hbWVzOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkVGltZXJzPiBtX3RocmVh
ZFRpbWVyczsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFF1YWxpZmllZE5hbWVDYWNoZT4gbV9x
dWFsaWZpZWROYW1lQ2FjaGU7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgIGJvb2wgbV9pc01h
aW5UaHJlYWQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>