<?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>153052</bug_id>
          
          <creation_ts>2016-01-12 18:24:59 -0800</creation_ts>
          <short_desc>[Content Filtering] De-virtualize PlatformContentFilter::{needsMoreData, didBlockData}()</short_desc>
          <delta_ts>2016-01-12 19:23:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1154985</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-01-12 18:24:59 -0800</bug_when>
    <thetext>[Content Filtering] De-virtualize PlatformContentFilter::{needsMoreData, didBlockData}()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154987</commentid>
    <comment_count>1</comment_count>
      <attachid>268834</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-01-12 18:27:39 -0800</bug_when>
    <thetext>Created attachment 268834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154988</commentid>
    <comment_count>2</comment_count>
      <attachid>268834</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2016-01-12 18:32:01 -0800</bug_when>
    <thetext>Comment on attachment 268834
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154998</commentid>
    <comment_count>3</comment_count>
      <attachid>268834</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-12 19:23:28 -0800</bug_when>
    <thetext>Comment on attachment 268834
Patch

Clearing flags on attachment: 268834

Committed r194952: &lt;http://trac.webkit.org/changeset/194952&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154999</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-12 19:23:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268834</attachid>
            <date>2016-01-12 18:27:39 -0800</date>
            <delta_ts>2016-01-12 19:23:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-153052-20160112182708.patch</filename>
            <type>text/plain</type>
            <size>16979</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0OTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjkxNWFmYTY0YmEzOTMw
NGM4ZjU1OTFjZjcxODIyNGRhYjVmM2UwZC4uZjg5Yjk2Y2JhOTRlNzJlZDc3MmU3NDFmZTkyNjVm
Y2VmMDRhNmIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDE2LTAxLTEyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAorICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IERlLXZpcnR1YWxpemUgUGxhdGZvcm1Db250ZW50RmlsdGVyOjp7bmVlZHNNb3JlRGF0YSwgZGlk
QmxvY2tEYXRhfSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTMwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICBJbnN0
ZWFkIG9mIGhhdmluZyB2aXJ0dWFsIGZ1bmN0aW9ucyB0aGF0IGVhY2ggcGxhdGZvcm0gY29udGVu
dCBmaWx0ZXIgaW1wbGVtZW50IGluIHRlcm1zIG9mIHRoZWlyIG93biBzdGF0ZSwKKyAgICAgICAg
c3RvcmUgdGhlIHN0YXRlIGluIHRoZSBiYXNlIGNsYXNzIHNvIHRoYXQgdGhlc2UgZnVuY3Rpb25z
IGNhbiBiZSBub24tdmlydHVhbC4gVGVhY2ggZWFjaCBzdWJjbGFzcyB0byB1cGRhdGUgdGhlCisg
ICAgICAgIGJhc2UgY2xhc3Mgc3RhdGUgYXBwcm9wcmlhdGVseS4KKworICAgICAgICAqIGxvYWRl
ci9Db250ZW50RmlsdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Db250ZW50Rmls
dGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRlbnRGaWx0ZXI6Om5lZWRzTW9y
ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZW50RmlsdGVyOjpkaWRCbG9j
a0RhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXIubW06CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZp
bHRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpoYW5kbGVEZWNpc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6TmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpy
ZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBhcmVudGFsQ29udHJvbHNDb250
ZW50RmlsdGVyOjp1cGRhdGVGaWx0ZXJTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXJlbnRh
bENvbnRyb2xzQ29udGVudEZpbHRlcjo6UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6
Om5lZWRzTW9yZURhdGEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vc3BpL2NvY29hL05FRmlsdGVyU291cmNlU1BJLmg6CisgICAgICAgICogdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRl
cjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVy
OjptYXliZURldGVybWluZVN0YXR1cyk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZp
bHRlcjo6bmVlZHNNb3JlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01v
Y2tDb250ZW50RmlsdGVyLmg6CisKKzIwMTYtMDEtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBw
bGUuY29tPgorCiAgICAgICAgIEFkZHJlc3MgbWlzc2VkIHJldmlldyBmZWVkYmFjayBhZnRlciBy
MTk0OTUwLgogCiAgICAgICAgICogcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXIubW06CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZp
bHRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuaAppbmRleCBlMmI0
ZDExZWQ3YzNiYjFkMjU4MzkzNTNmNjA5NGE5NjA3NzFhMzMyLi5lZjcyY2I5NjUwYTYwNmRmMmQz
MTc5YzRhOTBlODZiYWI3OGFjZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Db250ZW50RmlsdGVy
LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCiAKICNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ29udGVu
dEZpbHRlci5oIgogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCkBAIC0zNyw3ICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhY2hlZFJh
d1Jlc291cmNlOwogY2xhc3MgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwogY2xhc3MgRG9j
dW1lbnRMb2FkZXI7Ci1jbGFzcyBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXI7CiBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpA
QCAtNjcsMTIgKzY3LDcgQEAgcHVibGljOgogICAgIFN0cmluZyB1bmJsb2NrUmVxdWVzdERlbmll
ZFNjcmlwdCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGVudW0gY2xhc3MgU3RhdGUgewotICAg
ICAgICBTdG9wcGVkLAotICAgICAgICBGaWx0ZXJpbmcsCi0gICAgICAgIEFsbG93ZWQsCi0gICAg
ICAgIEJsb2NrZWQsCi0gICAgfTsKKyAgICB1c2luZyBTdGF0ZSA9IFBsYXRmb3JtQ29udGVudEZp
bHRlcjo6U3RhdGU7CiAKICAgICBzdHJ1Y3QgVHlwZSB7CiAgICAgICAgIGNvbnN0IHN0ZDo6ZnVu
Y3Rpb248c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtQ29udGVudEZpbHRlcj4oKT4gY3JlYXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Db250ZW50RmlsdGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaAppbmRl
eCBkMWUzY2MzZGUwMTU0ZTZjYzMxZTg1OWNkNjQ0MzA2NGIzNTQxMGY2Li40YjkyNWNiYTE1ZDVi
ZmIwZWNlZGQxYjA3ZjVkY2U2MmI2NDEyYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaApAQCAtNDAsMjAgKzQwLDI5IEBAIGNsYXNzIFBs
YXRmb3JtQ29udGVudEZpbHRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGxhdGZvcm1Db250ZW50RmlsdGVyKTsKIAotcHJvdGVjdGVk
OgotICAgIFBsYXRmb3JtQ29udGVudEZpbHRlcigpID0gZGVmYXVsdDsKLQogcHVibGljOgorICAg
IGVudW0gY2xhc3MgU3RhdGUgeworICAgICAgICBTdG9wcGVkLAorICAgICAgICBGaWx0ZXJpbmcs
CisgICAgICAgIEFsbG93ZWQsCisgICAgICAgIEJsb2NrZWQsCisgICAgfTsKKworICAgIGJvb2wg
bmVlZHNNb3JlRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU3RhdGU6OkZpbHRlcmlu
ZzsgfQorICAgIGJvb2wgZGlkQmxvY2tEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZSA9PSBT
dGF0ZTo6QmxvY2tlZDsgfQorCiAgICAgdmlydHVhbCB+UGxhdGZvcm1Db250ZW50RmlsdGVyKCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJl
Y2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFk
ZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIG5lZWRzTW9yZURh
dGEoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGRpZEJsb2NrRGF0YSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFJlZjxTaGFyZWRCdWZmZXI+IHJlcGxhY2VtZW50RGF0YSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJsb2NrSGFu
ZGxlcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyB1bmJsb2NrUmVxdWVzdERlbmll
ZFNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKworcHJvdGVjdGVkOgor
ICAgIFBsYXRmb3JtQ29udGVudEZpbHRlcigpID0gZGVmYXVsdDsKKyAgICBTdGF0ZSBtX3N0YXRl
IHsgU3RhdGU6OkZpbHRlcmluZyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmgKaW5kZXggN2I2NTk3MzViOWIwZjAzMzgzYTUzZTIwMjcxZTQy
N2M0MDQzYjVjNS4uZTg4ZjdjNmEwYmRjYzY4MWFjMzYzNDk4N2RkYWU4MDVjMzhmYWMxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCkBAIC01MSwxOSArNTEsMTYgQEAgcHVibGljOgogICAg
IHZvaWQgcmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBhZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIG92ZXJyaWRl
OwogICAgIHZvaWQgZmluaXNoZWRBZGRpbmdEYXRhKCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBuZWVk
c01vcmVEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBkaWRCbG9ja0RhdGEoKSBjb25z
dCBvdmVycmlkZTsKICAgICBSZWY8U2hhcmVkQnVmZmVyPiByZXBsYWNlbWVudERhdGEoKSBjb25z
dCBvdmVycmlkZTsKICAgICBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRs
ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBlbmFibGVk
KCk7CiAKLSAgICBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcigpOworICAgIE5ldHdvcmtF
eHRlbnNpb25Db250ZW50RmlsdGVyKCkgPSBkZWZhdWx0OwogICAgIHZvaWQgaW5pdGlhbGl6ZShj
b25zdCBVUkwqID0gbnVsbHB0cik7CiAgICAgdm9pZCBoYW5kbGVEZWNpc2lvbihORUZpbHRlclNv
dXJjZVN0YXR1cywgTlNEYXRhICpyZXBsYWNlbWVudERhdGEpOwogCi0gICAgTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXMgbV9zdGF0dXM7CiAgICAgT1NPYmplY3RQdHI8ZGlzcGF0Y2hfcXVldWVfdD4gbV9x
dWV1ZTsKICAgICBPU09iamVjdFB0cjxkaXNwYXRjaF9zZW1hcGhvcmVfdD4gbV9zZW1hcGhvcmU7
CiAgICAgUmV0YWluUHRyPE5TRGF0YT4gbV9yZXBsYWNlbWVudERhdGE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyLm1tCmluZGV4IDM4M2FhMWFlYWY4NjY3NzE0MzdkMTgwMDM2MDcxZTA2Y2Q0N2I3
N2YuLjJkNTYyY2E4OWRhMDI4MjVkYWNkNWU4NzM3Yjc1OGMzMDY2MWRmNzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50Rmls
dGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNp
b25Db250ZW50RmlsdGVyLm1tCkBAIC02MywxMSArNjMsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8TmV0
d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI+IE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpjcgogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyPigpOwogfQogCi1OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6TmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXIoKQotICAgIDogbV9zdGF0dXMgeyBORUZpbHRlclNvdXJjZVN0
YXR1c05lZWRzTW9yZURhdGEgfQotewotfQotCiB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyOjppbml0aWFsaXplKGNvbnN0IFVSTCogdXJsKQogewogICAgIEFTU0VSVCghbV9xdWV1
ZSk7CkBAIC04OSw3ICs4NCw3IEBAIHZvaWQgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6
OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvCiAjaWYgSEFWRShN
T0RFUk5fTkVfRklMVEVSX1NPVVJDRSkKICAgICBBU1NFUlQoIXJlcXVlc3QuaXNOdWxsKCkpOwog
ICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgIWVuYWJs
ZWQoKSkgewotICAgICAgICBtX3N0YXR1cyA9IE5FRmlsdGVyU291cmNlU3RhdHVzUGFzczsKKyAg
ICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBbGxvd2VkOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xMzIsMTMgKzEyNywxMyBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
Ojp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogdm9pZCBOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIXJlc3BvbnNlLnVybCgpLnByb3RvY29s
SXNJbkhUVFBGYW1pbHkoKSkgewotICAgICAgICBtX3N0YXR1cyA9IE5FRmlsdGVyU291cmNlU3Rh
dHVzUGFzczsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBbGxvd2VkOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAjaWYgIUhBVkUoTU9ERVJOX05FX0ZJTFRFUl9TT1VSQ0UpCiAgICAgaWYg
KCFlbmFibGVkKCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBORUZpbHRlclNvdXJjZVN0YXR1c1Bh
c3M7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWxsb3dlZDsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTk1LDE2ICsxOTAsNiBAQCB2b2lkIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEoKQogICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0
KG1fc2VtYXBob3JlLmdldCgpLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwogfQogCi1ib29sIE5l
dHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpuZWVkc01vcmVEYXRhKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9zdGF0dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNOZWVkc01vcmVEYXRhOwot
fQotCi1ib29sIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpkaWRCbG9ja0RhdGEoKSBj
b25zdAotewotICAgIHJldHVybiBtX3N0YXR1cyA9PSBORUZpbHRlclNvdXJjZVN0YXR1c0Jsb2Nr
OwotfQotCiBSZWY8U2hhcmVkQnVmZmVyPiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6
cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQoZGlkQmxvY2tEYXRhKCkpOwpA
QCAtMjMzLDggKzIxOCwyMyBAQCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgTmV0d29ya0V4
dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29ucwogdm9pZCBOZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6aGFuZGxlRGVjaXNpb24oTkVGaWx0ZXJTb3VyY2VTdGF0
dXMgc3RhdHVzLCBOU0RhdGEgKnJlcGxhY2VtZW50RGF0YSkKIHsKICAgICBBU1NFUlRfV0lUSF9T
RUNVUklUWV9JTVBMSUNBVElPTighcmVwbGFjZW1lbnREYXRhIHx8IFtyZXBsYWNlbWVudERhdGEg
aXNLaW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pOwotICAgIG1fc3RhdHVzID0gc3RhdHVzOwot
ICAgIGlmIChzdGF0dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNCbG9jaykKKworICAgIHN3aXRj
aCAoc3RhdHVzKSB7CisgICAgY2FzZSBORUZpbHRlclNvdXJjZVN0YXR1c1Bhc3M6CisgICAgY2Fz
ZSBORUZpbHRlclNvdXJjZVN0YXR1c0Vycm9yOgorICAgIGNhc2UgTkVGaWx0ZXJTb3VyY2VTdGF0
dXNXaGl0ZWxpc3RlZDoKKyAgICBjYXNlIE5FRmlsdGVyU291cmNlU3RhdHVzQmxhY2tsaXN0ZWQ6
CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWxsb3dlZDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBORUZpbHRlclNvdXJjZVN0YXR1c0Jsb2NrOgorICAgICAgICBtX3N0YXRlID0gU3RhdGU6
OkJsb2NrZWQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTkVGaWx0ZXJTb3VyY2VTdGF0dXNO
ZWVkc01vcmVEYXRhOgorICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkZpbHRlcmluZzsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKGRpZEJsb2NrRGF0YSgpKQogICAgICAgICBtX3Jl
cGxhY2VtZW50RGF0YSA9IHJlcGxhY2VtZW50RGF0YTsKICNpZiAhTE9HX0RJU0FCTEVECiAgICAg
aWYgKCFuZWVkc01vcmVEYXRhKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaAppbmRleCA1ZjM3
MmEwOTM5YjFjOGY0YzczOGYyNWJlMTczMGY0NTg4M2M1ZThkLi5iNmVkMGEzZTYxM2FjM2ZkZDg4
ZWEyOGYwOTVlMDAwZjFmZDRkMWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmgKQEAgLTQ1
LDE4ICs0NSwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKICAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEo
KSBvdmVycmlkZTsKLSAgICBib29sIG5lZWRzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKLSAg
ICBib29sIGRpZEJsb2NrRGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZjxTaGFyZWRCdWZm
ZXI+IHJlcGxhY2VtZW50RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIENvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciB1bmJsb2NrSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRl
OgogICAgIHN0YXRpYyBib29sIGVuYWJsZWQoKTsKIAotICAgIFBhcmVudGFsQ29udHJvbHNDb250
ZW50RmlsdGVyKCk7CisgICAgUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIoKSA9IGRlZmF1
bHQ7CiAgICAgdm9pZCB1cGRhdGVGaWx0ZXJTdGF0ZSgpOwogCi0gICAgT1NTdGF0dXMgbV9maWx0
ZXJTdGF0ZTsKICAgICBSZXRhaW5QdHI8V2ViRmlsdGVyRXZhbHVhdG9yPiBtX3dlYkZpbHRlckV2
YWx1YXRvcjsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBtX3JlcGxhY2VtZW50RGF0YTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xz
Q29udGVudEZpbHRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFs
Q29udHJvbHNDb250ZW50RmlsdGVyLm1tCmluZGV4IDQ2NjFiMTljMWVlZTNmMWMwMDQ4ZTAwMWIw
MzQwYTk3Yjk0ZTQ0MjYuLmU4OTc2MjQ2N2M3OTJkZTE5OTEwMGRlMzdlMDYwMDQ0ZDM3OTFkM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BhcmVudGFsQ29udHJv
bHNDb250ZW50RmlsdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
cmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tCkBAIC01MywxMSArNTMsNiBAQCBzdGQ6OnVu
aXF1ZV9wdHI8UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI+IFBhcmVudGFsQ29udHJvbHND
b250ZW50RmlsdGVyOjpjcgogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhcmVudGFsQ29u
dHJvbHNDb250ZW50RmlsdGVyPigpOwogfQogCi1QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRl
cjo6UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIoKQotICAgIDogbV9maWx0ZXJTdGF0ZSB7
IGtXRkVTdGF0ZUJ1ZmZlcmluZyB9Ci17Ci19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBjYW5IYW5k
bGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBQTEFU
Rk9STShNQUMpCkBAIC03Miw3ICs2Nyw3IEBAIHZvaWQgUGFyZW50YWxDb250cm9sc0NvbnRlbnRG
aWx0ZXI6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzCiAgICAg
QVNTRVJUKCFtX3dlYkZpbHRlckV2YWx1YXRvcik7CiAKICAgICBpZiAoIWNhbkhhbmRsZVJlc3Bv
bnNlKHJlc3BvbnNlKSB8fCAhZW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fZmlsdGVyU3RhdGUgPSBr
V0ZFU3RhdGVBbGxvd2VkOworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFsbG93ZWQ7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTk1LDE2ICs5MCw2IEBAIHZvaWQgUGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpCiAgICAgdXBkYXRlRmlsdGVy
U3RhdGUoKTsKIH0KIAotYm9vbCBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcjo6bmVlZHNN
b3JlRGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fZmlsdGVyU3RhdGUgPT0ga1dGRVN0YXRl
QnVmZmVyaW5nOwotfQotCi1ib29sIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjpkaWRC
bG9ja0RhdGEoKSBjb25zdAotewotICAgIHJldHVybiBtX2ZpbHRlclN0YXRlID09IGtXRkVTdGF0
ZUJsb2NrZWQ7Ci19Ci0KIFJlZjxTaGFyZWRCdWZmZXI+IFBhcmVudGFsQ29udHJvbHNDb250ZW50
RmlsdGVyOjpyZXBsYWNlbWVudERhdGEoKSBjb25zdAogewogICAgIEFTU0VSVChkaWRCbG9ja0Rh
dGEoKSk7CkBAIC0xMjIsMTAgKzEwNywyMiBAQCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIg
UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI6OnVuYmxvY2tIYW5kbGVyKCkgY29ucwogCiB2
b2lkIFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyOjp1cGRhdGVGaWx0ZXJTdGF0ZSgpCiB7
Ci0gICAgbV9maWx0ZXJTdGF0ZSA9IFttX3dlYkZpbHRlckV2YWx1YXRvciBmaWx0ZXJTdGF0ZV07
CisgICAgc3dpdGNoIChbbV93ZWJGaWx0ZXJFdmFsdWF0b3IgZmlsdGVyU3RhdGVdKSB7CisgICAg
Y2FzZSBrV0ZFU3RhdGVBbGxvd2VkOgorICAgIGNhc2Uga1dGRVN0YXRlRXZhbHVhdGluZzoKKyAg
ICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpBbGxvd2VkOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IGtXRkVTdGF0ZUJsb2NrZWQ6CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6QmxvY2tlZDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBrV0ZFU3RhdGVCdWZmZXJpbmc6CisgICAgICAgIG1fc3Rh
dGUgPSBTdGF0ZTo6RmlsdGVyaW5nOworICAgICAgICBicmVhazsKKyAgICB9CisKICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgaWYgKCFuZWVkc01vcmVEYXRhKCkpCi0gICAgICAgIExPRyhDb250ZW50
RmlsdGVyaW5nLCAiUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIgc3RvcHBlZCBidWZmZXJp
bmcgd2l0aCBzdGF0ZSAlZCBhbmQgcmVwbGFjZW1lbnQgZGF0YSBsZW5ndGggJXp1LlxuIiwgbV9m
aWx0ZXJTdGF0ZSwgW21fcmVwbGFjZW1lbnREYXRhIGxlbmd0aF0pOworICAgICAgICBMT0coQ29u
dGVudEZpbHRlcmluZywgIlBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyIHN0b3BwZWQgYnVm
ZmVyaW5nIHdpdGggc3RhdGUgJWQgYW5kIHJlcGxhY2VtZW50IGRhdGEgbGVuZ3RoICV6dS5cbiIs
IG1fc3RhdGUsIFttX3JlcGxhY2VtZW50RGF0YSBsZW5ndGhdKTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvTkVGaWx0ZXJTb3VyY2VT
UEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQ
SS5oCmluZGV4IDMzMDZiY2Q5MmY2MTBkZjFlYjY4MmNmZjc3ZmEwNWZkZTBhMTRmYTMuLjljMThm
MDE1NTY4OWE3YmFmNThhODRjN2I1OGMxOTQzYzU1ZTNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9ORUZpbHRlclNvdXJjZVNQSS5oCkBAIC0zNiw2
ICszNiw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIE5FRmlsdGVyU291cmNlU3RhdHVz
KSB7CiAgICAgTkVGaWx0ZXJTb3VyY2VTdGF0dXNCbG9jayA9IDIsCiAgICAgTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXNOZWVkc01vcmVEYXRhID0gMywKICAgICBORUZpbHRlclNvdXJjZVN0YXR1c0Vycm9y
ID0gNCwKKyAgICBORUZpbHRlclNvdXJjZVN0YXR1c1doaXRlbGlzdGVkID0gNSwKKyAgICBORUZp
bHRlclNvdXJjZVN0YXR1c0JsYWNrbGlzdGVkID0gNiwKIH07CiAKIHR5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIE5FRmlsdGVyU291cmNlRGlyZWN0aW9uKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3BwCmluZGV4IDAyZjk1OWYxZThjYjMyYzY0NTdiNTBm
ZjM2N2VmNzdhNjY4MDdkODIuLmNkYjkxM2RjNmQ5MTVkMGNkZDA2OWE3OGFlZjFhNzFkODA3MGFm
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3BwCkBA
IC03MSw3ICs3MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxNb2NrQ29udGVudEZpbHRlcj4gTW9ja0Nv
bnRlbnRGaWx0ZXI6OmNyZWF0ZSgpCiB2b2lkIE1vY2tDb250ZW50RmlsdGVyOjp3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZWRpcmVjdFJlc3BvbnNlKQogewogICAgIGlmICghZW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fc3Rh
dHVzID0gU3RhdHVzOjpBbGxvd2VkOworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkFsbG93ZWQ7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBNb2NrQ29u
dGVudEZpbHRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgUmVzb3VyY2UKICAgICBlbHNlCiAgICAgICAgIG1heWJlRGV0ZXJtaW5lU3RhdHVzKERlY2lz
aW9uUG9pbnQ6OkFmdGVyUmVkaXJlY3QpOwogCi0gICAgaWYgKG1fc3RhdHVzID09IFN0YXR1czo6
TmVlZHNNb3JlRGF0YSkKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6RmlsdGVyaW5nKQogICAg
ICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgbW9kaWZpZWRSZXF1ZXN0VVJMU3RyaW5nIHsgc2V0
dGluZ3MoKS5tb2RpZmllZFJlcXVlc3RVUkwoKSB9OwpAQCAtMTExLDE2ICsxMTEsNiBAQCB2b2lk
IE1vY2tDb250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGluZ0RhdGEoKQogICAgIG1heWJlRGV0ZXJt
aW5lU3RhdHVzKERlY2lzaW9uUG9pbnQ6OkFmdGVyRmluaXNoZWRBZGRpbmdEYXRhKTsKIH0KIAot
Ym9vbCBNb2NrQ29udGVudEZpbHRlcjo6bmVlZHNNb3JlRGF0YSgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc3RhdHVzID09IFN0YXR1czo6TmVlZHNNb3JlRGF0YTsKLX0KLQotYm9vbCBNb2NrQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zdGF0dXMg
PT0gU3RhdHVzOjpCbG9ja2VkOwotfQotCiBSZWY8U2hhcmVkQnVmZmVyPiBNb2NrQ29udGVudEZp
bHRlcjo6cmVwbGFjZW1lbnREYXRhKCkgY29uc3QKIHsKICAgICBBU1NFUlQoZGlkQmxvY2tEYXRh
KCkpOwpAQCAtMTUwLDEzICsxNDAsMTMgQEAgU3RyaW5nIE1vY2tDb250ZW50RmlsdGVyOjp1bmJs
b2NrUmVxdWVzdERlbmllZFNjcmlwdCgpIGNvbnN0CiAKIHZvaWQgTW9ja0NvbnRlbnRGaWx0ZXI6
Om1heWJlRGV0ZXJtaW5lU3RhdHVzKERlY2lzaW9uUG9pbnQgZGVjaXNpb25Qb2ludCkKIHsKLSAg
ICBpZiAobV9zdGF0dXMgIT0gU3RhdHVzOjpOZWVkc01vcmVEYXRhIHx8IGRlY2lzaW9uUG9pbnQg
IT0gc2V0dGluZ3MoKS5kZWNpc2lvblBvaW50KCkpCisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6
OkZpbHRlcmluZyB8fCBkZWNpc2lvblBvaW50ICE9IHNldHRpbmdzKCkuZGVjaXNpb25Qb2ludCgp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBMT0coQ29udGVudEZpbHRlcmluZywgIk1vY2tDb250
ZW50RmlsdGVyIHN0b3BwZWQgYnVmZmVyaW5nIHdpdGggc3RhdHVzICV1IGF0IGRlY2lzaW9uIHBv
aW50ICV1LlxuIiwgbV9zdGF0dXMsIGRlY2lzaW9uUG9pbnQpOworICAgIExPRyhDb250ZW50Rmls
dGVyaW5nLCAiTW9ja0NvbnRlbnRGaWx0ZXIgc3RvcHBlZCBidWZmZXJpbmcgd2l0aCBzdGF0ZSAl
dSBhdCBkZWNpc2lvbiBwb2ludCAldS5cbiIsIG1fc3RhdGUsIGRlY2lzaW9uUG9pbnQpOwogCi0g
ICAgbV9zdGF0dXMgPSBzZXR0aW5ncygpLmRlY2lzaW9uKCkgPT0gRGVjaXNpb246OkFsbG93ID8g
U3RhdHVzOjpBbGxvd2VkIDogU3RhdHVzOjpCbG9ja2VkOwotICAgIGlmIChtX3N0YXR1cyAhPSBT
dGF0dXM6OkJsb2NrZWQpCisgICAgbV9zdGF0ZSA9IHNldHRpbmdzKCkuZGVjaXNpb24oKSA9PSBE
ZWNpc2lvbjo6QWxsb3cgPyBTdGF0ZTo6QWxsb3dlZCA6IFN0YXRlOjpCbG9ja2VkOworICAgIGlm
IChtX3N0YXRlICE9IFN0YXRlOjpCbG9ja2VkKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Jl
cGxhY2VtZW50RGF0YS5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlci5oCmluZGV4IGY2ZjE5ZTgyNzY1MzdlZDM1ZDMzNTM2OTViODY4NjIxMTY2NTQ1OTku
LjM0YWYxNjZkNmIxNjVkMjMxNzgzMGRkYWExOTRiOTIxNjkyZDFmYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmgKQEAgLTQyLDI2ICs0MiwxNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBv
dmVycmlkZTsKICAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSBvdmVycmlkZTsKLSAgICBi
b29sIG5lZWRzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGRpZEJsb2NrRGF0
YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZjxTaGFyZWRCdWZmZXI+IHJlcGxhY2VtZW50RGF0
YSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB1bmJs
b2NrSGFuZGxlcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyB1bmJsb2NrUmVxdWVzdERl
bmllZFNjcmlwdCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIGVudW0gY2xhc3Mg
U3RhdHVzIHsKLSAgICAgICAgTmVlZHNNb3JlRGF0YSwKLSAgICAgICAgQWxsb3dlZCwKLSAgICAg
ICAgQmxvY2tlZAotICAgIH07Ci0KICAgICBzdGF0aWMgYm9vbCBlbmFibGVkKCk7CiAKICAgICBN
b2NrQ29udGVudEZpbHRlcigpID0gZGVmYXVsdDsKICAgICB2b2lkIG1heWJlRGV0ZXJtaW5lU3Rh
dHVzKE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OkRlY2lzaW9uUG9pbnQpOwogCiAgICAgVmVj
dG9yPGNoYXI+IG1fcmVwbGFjZW1lbnREYXRhOwotICAgIFN0YXR1cyBtX3N0YXR1cyB7IFN0YXR1
czo6TmVlZHNNb3JlRGF0YSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>