<?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>127979</bug_id>
          
          <creation_ts>2014-01-30 18:28:06 -0800</creation_ts>
          <short_desc>[Cocoa] Add NEFilterSource support to ContentFilterMac</short_desc>
          <delta_ts>2014-02-05 16:16:06 -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>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>InRadar</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>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>974160</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-30 18:28:06 -0800</bug_when>
    <thetext>[Cocoa] Add NEFilterSource support to ContentFilterMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974161</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-30 18:28:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/15061531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974170</commentid>
    <comment_count>2</comment_count>
      <attachid>222781</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-30 18:49:59 -0800</bug_when>
    <thetext>Created attachment 222781
[Cocoa] Add NEFilterSource support to ContentFilterMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974171</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-30 18:51:54 -0800</bug_when>
    <thetext>Attachment 222781 did not pass style-queue:


ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:62:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:63:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:64:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:65:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:69:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Source/WebCore/platform/mac/ContentFilterMac.mm:70:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 6 in 3 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>974449</commentid>
    <comment_count>4</comment_count>
      <attachid>222842</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-31 13:25:44 -0800</bug_when>
    <thetext>Created attachment 222842
[Cocoa] Add NEFilterSource support to ContentFilterMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974450</commentid>
    <comment_count>5</comment_count>
      <attachid>222843</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-31 13:27:04 -0800</bug_when>
    <thetext>Created attachment 222843
[Cocoa] Add NEFilterSource support to ContentFilterMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974545</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-31 17:36:40 -0800</bug_when>
    <thetext>Committed r163226: &lt;http://trac.webkit.org/changeset/163226&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976604</commentid>
    <comment_count>7</comment_count>
      <attachid>223192</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-02-04 18:02:51 -0800</bug_when>
    <thetext>Created attachment 223192
Buffer incoming data in ContentFilter when using NEFilterSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976605</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-02-04 18:03:18 -0800</bug_when>
    <thetext>Re-opening to post an additional patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976673</commentid>
    <comment_count>9</comment_count>
      <attachid>223217</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-02-05 00:42:01 -0800</bug_when>
    <thetext>Created attachment 223217
Buffer incoming data in ContentFilter when using NEFilterSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977123</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-02-05 16:16:06 -0800</bug_when>
    <thetext>Committed r163486: &lt;http://trac.webkit.org/changeset/163486&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222781</attachid>
            <date>2014-01-30 18:49:59 -0800</date>
            <delta_ts>2014-01-31 13:25:42 -0800</delta_ts>
            <desc>[Cocoa] Add NEFilterSource support to ContentFilterMac</desc>
            <filename>bug-127979-20140130184958.patch</filename>
            <type>text/plain</type>
            <size>9782</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjMzAzN2ZkYzZmMzNl
NWQ1YjNhYjc5OTdhYjc3N2MwZTk3ZDk4NC4uZTFjZDI4MTdmOTVmYjI3N2JkZmFiYzg2YWU2ODRl
ZmQ4YjVmODMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAxLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBORUZpbHRl
clNvdXJjZSBzdXBwb3J0IHRvIENvbnRlbnRGaWx0ZXJNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBDb250ZW50RmlsdGVyTWFjIHRvIHdv
cmsgd2l0aCBib3RoIFdlYkZpbHRlckV2YWx1YXRvciBhbmQKKyAgICAgICAgTkVGaWx0ZXJTb3Vy
Y2UsIGlmIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6IFNl
dCBIQVZFX05FX0ZJTFRFUl9TT1VSQ0UgYmFzZWQgb24gcGxhdGZvcm0KKyAgICAgICAgY29uZGl0
aW9uYWxzLCBhbmQgZm9yd2FyZC1kZWNsYXJlIE5FRmlsdGVyU291cmNlLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tOiBJbmNsdWRlZCBORUZpbHRlclNvdXJjZS5o
IGlmIHRoZSBTREsKKyAgICAgICAgaGFzIGl0OyBkZWNsYXJlZCB0aGUgY2xhc3MgZGlyZWN0bHkg
aWYgbm90LiBBbHNvIHNvZnQtbGlua2VkCisgICAgICAgIE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3
b3JrLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6IElu
aXRpYWxpemVkCisgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgdG8gTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXNOZWVkc01vcmVEYXRhIGFuZCBjcmVhdGVkCisgICAgICAgIG1fcGxhdGZvcm1Db250
ZW50RmlsdGVyIGFuZCBtX25lRmlsdGVyU291cmNlIG9iamVjdHMgaWYgdGhlaXIKKyAgICAgICAg
cmVzcGVjdGl2ZSBmaWx0ZXJzIHdlcmUgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXI6OmlzRW5hYmxlZCk6IFJldHVybmVkIHRydWUgaWYgZWl0aGVyIGZpbHRlciBpcwor
ICAgICAgICBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6YWRkRGF0
YSk6IEFkZGVkIGluY29taW5nIGRhdGEgdG8gZWFjaCBmaWx0ZXIKKyAgICAgICAgdGhhdCBpcyBl
bmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdE
YXRhKTogTm90aWZpZWQgZWFjaCBlbmFibGVkCisgICAgICAgIGZpbHRlciB0aGF0IHdlIGFyZSBm
aW5pc2hlZCBhZGRpbmcgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5l
ZWRzTW9yZURhdGEpOiBSZXR1cm5lZCB0cnVlIGlmIGVpdGhlciBmaWx0ZXIKKyAgICAgICAgbmVl
ZHMgbW9yZSBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGlkQmxvY2tE
YXRhKTogUmV0dXJuZWQgdHJ1ZSBpZiBlaXRoZXIgZmlsdGVyCisgICAgICAgIGJsb2NrZWQgZGF0
YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YSk6
IFJldHVybmVkCisgICAgICAgIG1fcmVwbGFjZW1lbnREYXRhLiBDb21tZW50ZWQgdGhhdCB0aGlz
IHdpbGwgY3VycmVudGx5IHJldHVybiBhIG51bGwKKyAgICAgICAgc3RyaW5nIGlmIE5FRmlsdGVy
U291cmNlIGJsb2NrZWQgdGhlIGxvYWQuCisKIDIwMTQtMDEtMzAgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2VjdXJpdHktY2hlY2tlZCBjYXN0IGZv
ciBXZWJDb3JlOjpDYWNoZWRJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRl
ci5oCmluZGV4IGQwNWUyYWEyODdmNGMyYTYzOGQzYTc4M2I2ODZhMWFlM2VhM2NkZTMuLjFmOGQ4
ZDg3ZWU3MjhiMmQwNjc0ZTlhOTIxNDA5OThkNTBhMjNlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZW50RmlsdGVyLmgKQEAgLTQwLDYgKzQwLDEzIEBACiBPQkpDX0NMQVNTIFdlYkZp
bHRlckV2YWx1YXRvcjsKICNlbmRpZgogCisjZGVmaW5lIEhBVkVfTkVfRklMVEVSX1NPVVJDRSBU
QVJHRVRfT1NfRU1CRURERUQgfHwgKCFUQVJHRVRfT1NfSVBIT05FICYmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDApCisKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0Up
CisjaW1wb3J0IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgorT0JKQ19DTEFTUyBORUZpbHRlclNvdXJj
ZTsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7CkBAIC02Nyw2ICs3NCwxMiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxXZWJGaWx0ZXJF
dmFsdWF0b3I+IG1fcGxhdGZvcm1Db250ZW50RmlsdGVyOwogICAgIFJldGFpblB0cjxOU0RhdGE+
IG1fcmVwbGFjZW1lbnREYXRhOwogI2VuZGlmCisKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0Up
CisgICAgbG9uZyBtX25lRmlsdGVyU291cmNlU3RhdHVzOworICAgIFJldGFpblB0cjxORUZpbHRl
clNvdXJjZT4gbV9uZUZpbHRlclNvdXJjZTsKKyAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX25l
RmlsdGVyU291cmNlU2VtYXBob3JlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1t
CmluZGV4IGIzN2FmZTczNTM1NmU3MDBiMDgwYWYzZjk1MjRmZDFkYjIyZjRiMGEuLjBjOWVhODFk
YTIxNGE4ZTU1NGZhNzc2YTQ4ZWYwNzk4MWIwZDNmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCkBAIC0zMiw2ICszMiwxMCBAQAogI2lt
cG9ydCAiU29mdExpbmtpbmcuaCIKICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogCisjaWYgUExB
VEZPUk0oSU9TKQorI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgorI2VuZGlmCisKICNpZiBk
ZWZpbmVkKF9faGFzX2luY2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPFdlYkNvbnRlbnRBbmFseXNp
cy9XZWJGaWx0ZXJFdmFsdWF0b3IuaD4pCiAjaW1wb3J0IDxXZWJDb250ZW50QW5hbHlzaXMvV2Vi
RmlsdGVyRXZhbHVhdG9yLmg+CiAjZWxzZQpAQCAtNDksNiArNTMsNDAgQEAgQGVuZAogU09GVF9M
SU5LX1BSSVZBVEVfRlJBTUVXT1JLKFdlYkNvbnRlbnRBbmFseXNpcyk7CiBTT0ZUX0xJTktfQ0xB
U1MoV2ViQ29udGVudEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOwogCisjaWYgSEFWRShO
RV9GSUxURVJfU09VUkNFKQorCisjaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKSAmJiBfX2hhc19p
bmNsdWRlKDxOZXR3b3JrRXh0ZW5zaW9uL05FRmlsdGVyU291cmNlLmg+KQorI2ltcG9ydCA8TmV0
d29ya0V4dGVuc2lvbi9ORUZpbHRlclNvdXJjZS5oPgorI2Vsc2UKK3R5cGVkZWYgTlNfRU5VTShO
U0ludGVnZXIsIE5FRmlsdGVyU291cmNlU3RhdHVzKSB7CisJTkVGaWx0ZXJTb3VyY2VTdGF0dXNQ
YXNzID0gMSwKKwlORUZpbHRlclNvdXJjZVN0YXR1c0Jsb2NrID0gMiwKKwlORUZpbHRlclNvdXJj
ZVN0YXR1c05lZWRzTW9yZURhdGEgPSAzLAorCU5FRmlsdGVyU291cmNlU3RhdHVzRXJyb3IgPSA0
LAorfTsKKwordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTkVGaWx0ZXJTb3VyY2VEaXJlY3Rp
b24pIHsKKwlORUZpbHRlclNvdXJjZURpcmVjdGlvbk91dGJvdW5kID0gMSwKKwlORUZpbHRlclNv
dXJjZURpcmVjdGlvbkluYm91bmQgPSAyLAorfTsKKworQGludGVyZmFjZSBORUZpbHRlclNvdXJj
ZSA6IE5TT2JqZWN0CisrIChCT09MKWZpbHRlclJlcXVpcmVkOworLSAoaWQpaW5pdFdpdGhVUkw6
KE5TVVJMICopdXJsIGRpcmVjdGlvbjooTkVGaWx0ZXJTb3VyY2VEaXJlY3Rpb24pZGlyZWN0aW9u
IHNvY2tldElkZW50aWZpZXI6KHVpbnQ2NF90KXNvY2tldElkZW50aWZpZXI7CistICh2b2lkKWFk
ZERhdGE6KE5TRGF0YSAqKWRhdGEgd2l0aENvbXBsZXRpb25RdWV1ZTooZGlzcGF0Y2hfcXVldWVf
dClxdWV1ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTkVGaWx0ZXJTb3VyY2VTdGF0dXMs
IE5TRGF0YSAqKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpZGF0YUNvbXBsZXRlV2l0aENv
bXBsZXRpb25RdWV1ZTooZGlzcGF0Y2hfcXVldWVfdClxdWV1ZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikoTkVGaWx0ZXJTb3VyY2VTdGF0dXMsIE5TRGF0YSAqKSljb21wbGV0aW9uSGFuZGxl
cjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1czsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIE5TVVJMICp1cmw7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBORUZp
bHRlclNvdXJjZURpcmVjdGlvbiBkaXJlY3Rpb247CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1aW50
NjRfdCBzb2NrZXRJZGVudGlmaWVyOworQGVuZAorI2VuZGlmCisKK1NPRlRfTElOS19GUkFNRVdP
UksoTmV0d29ya0V4dGVuc2lvbik7CitTT0ZUX0xJTktfQ0xBU1MoTmV0d29ya0V4dGVuc2lvbiwg
TkVGaWx0ZXJTb3VyY2UpOworCisjZW5kaWYgLy8gSEFWRShORV9GSUxURVJfU09VUkNFKQorCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8Q29udGVudEZpbHRlcj4gQ29udGVudEZp
bHRlcjo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQpAQCAtNTcsNDcg
Kzk1LDExOCBAQCBQYXNzUmVmUHRyPENvbnRlbnRGaWx0ZXI+IENvbnRlbnRGaWx0ZXI6OmNyZWF0
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZQogfQogCiBDb250ZW50RmlsdGVyOjpD
b250ZW50RmlsdGVyKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQotICAgIDogbV9w
bGF0Zm9ybUNvbnRlbnRGaWx0ZXIoYWRvcHROUyhbW2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNz
KCkgYWxsb2NdIGluaXRXaXRoUmVzcG9uc2U6cmVzcG9uc2UubnNVUkxSZXNwb25zZSgpXSkpCisj
aWYgSEFWRShORV9GSUxURVJfU09VUkNFKQorICAgIDogbV9uZUZpbHRlclNvdXJjZVN0YXR1cyhO
RUZpbHRlclNvdXJjZVN0YXR1c05lZWRzTW9yZURhdGEpCisjZW5kaWYKIHsKLSAgICBBU1NFUlQo
bV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIpOworICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBpc01hbmFnZWRTZXNzaW9uXSkKKyAgICAgICAgbV9wbGF0Zm9ybUNvbnRlbnRGaWx0
ZXIgPSBhZG9wdE5TKFtbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBhbGxvY10gaW5pdFdp
dGhSZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCldKTsKKworI2lmIEhBVkUoTkVfRklM
VEVSX1NPVVJDRSkKKyAgICBpZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1
aXJlZF0pCisgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2UgPSBhZG9wdE5TKFtbZ2V0TkVGaWx0ZXJT
b3VyY2VDbGFzcygpIGFsbG9jXSBpbml0V2l0aFVSTDpbcmVzcG9uc2UubnNVUkxSZXNwb25zZSgp
IFVSTF0gZGlyZWN0aW9uOk5FRmlsdGVyU291cmNlRGlyZWN0aW9uSW5ib3VuZCBzb2NrZXRJZGVu
dGlmaWVyOjBdKTsKKyNlbmRpZgogfQogCiBib29sIENvbnRlbnRGaWx0ZXI6OmlzRW5hYmxlZCgp
CiB7Ci0gICAgcmV0dXJuIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFzcygpIGlzTWFuYWdlZFNl
c3Npb25dOworICAgIHJldHVybiBbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFn
ZWRTZXNzaW9uXQorI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKKyAgICAgICAgfHwgW2dldE5F
RmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0KKyNlbmRpZgorICAgIDsKIH0KIAog
dm9pZCBDb250ZW50RmlsdGVyOjphZGREYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CiB7CiAgICAgQVNTRVJUKG5lZWRzTW9yZURhdGEoKSk7Ci0gICAgQVNTRVJUKCFbbV9yZXBsYWNl
bWVudERhdGEuZ2V0KCkgbGVuZ3RoXSk7Ci0gICAgbV9yZXBsYWNlbWVudERhdGEgPSBbbV9wbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIgYWRkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZv
aWQqKWRhdGEgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dXTsKLSAgICBBU1NFUlQobmVl
ZHNNb3JlRGF0YSgpIHx8IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKKworICAg
IGlmIChtX3BsYXRmb3JtQ29udGVudEZpbHRlcikgeworICAgICAgICBBU1NFUlQoIVttX3JlcGxh
Y2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKKyAgICAgICAgbV9yZXBsYWNlbWVudERhdGEgPSBb
bV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgYWRkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0Nv
cHk6KHZvaWQqKWRhdGEgbGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dXTsKKyAgICAgICAg
QVNTRVJUKG5lZWRzTW9yZURhdGEoKSB8fCBbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3Ro
XSk7CisgICAgfQorCisjaWYgSEFWRShORV9GSUxURVJfU09VUkNFKQorICAgIGlmICghbV9uZUZp
bHRlclNvdXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVmKCk7CisgICAgW21fbmVGaWx0
ZXJTb3VyY2UgYWRkRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXNOb0NvcHk6KHZvaWQqKWRhdGEg
bGVuZ3RoOmxlbmd0aCBmcmVlV2hlbkRvbmU6Tk9dIHdpdGhDb21wbGV0aW9uUXVldWU6ZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSBjb21wbGV0aW9uSGFuZGxlcjpeKE5FRmlsdGVyU291cmNlU3Rh
dHVzIHN0YXR1cywgTlNEYXRhICopIHsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgV2ViVGhy
ZWFkUnVuKF57CisjZW5kaWYKKyAgICAgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9IHN0
YXR1czsKKyAgICAgICAgICAgZGVyZWYoKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgfSk7
CisjZW5kaWYKKyAgICB9XTsKKyNlbmRpZgogfQogICAgIAogdm9pZCBDb250ZW50RmlsdGVyOjpm
aW5pc2hlZEFkZGluZ0RhdGEoKQogewotICAgIEFTU0VSVChuZWVkc01vcmVEYXRhKCkpOwotICAg
IEFTU0VSVCghW21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGxlbmd0aF0pOwotICAgIG1fcmVwbGFj
ZW1lbnREYXRhID0gW21fcGxhdGZvcm1Db250ZW50RmlsdGVyIGRhdGFDb21wbGV0ZV07CisgICAg
aWYgKG1fcGxhdGZvcm1Db250ZW50RmlsdGVyKSB7CisgICAgICAgIEFTU0VSVChuZWVkc01vcmVE
YXRhKCkpOworICAgICAgICBBU1NFUlQoIVttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhd
KTsKKyAgICAgICAgbV9yZXBsYWNlbWVudERhdGEgPSBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIg
ZGF0YUNvbXBsZXRlXTsKKyAgICB9CisKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAg
aWYgKCFtX25lRmlsdGVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICByZWYoKTsKKyAg
ICBtX25lRmlsdGVyU291cmNlU2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgw
KTsKKyAgICBbbV9uZUZpbHRlclNvdXJjZSBkYXRhQ29tcGxldGVXaXRoQ29tcGxldGlvblF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCkgY29tcGxldGlvbkhhbmRsZXI6XihORUZpbHRlclNv
dXJjZVN0YXR1cyBzdGF0dXMsIE5TRGF0YSAqKSB7CisjaWYgUExBVEZPUk0oSU9TKQorICAgICAg
ICBXZWJUaHJlYWRSdW4oXnsKKyNlbmRpZgorICAgICAgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0
YXR1cyA9IHN0YXR1czsKKyAgICAgICAgICAgIGRlcmVmKCk7CisKKyAgICAgICAgICAgIGRpc3Bh
dGNoX3NlbWFwaG9yZV9zaWduYWwobV9uZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CisjaWYgUExB
VEZPUk0oSU9TKQorICAgICAgICB9KTsKKyNlbmRpZgorICAgIH1dOworICAgIAorICAgIC8vIEZJ
WE1FOiBXZSBoYXZlIHRvIGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0
byBoYXZlIGEKKyAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0
ZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZworICAgIC8vIGZpbmlzaGVkQWRkaW5nRGF0YSgp
LiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLgorICAgIGRp
c3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUsIERJU1BBVENI
X1RJTUVfRk9SRVZFUik7CisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX25lRmlsdGVyU291cmNlU2Vt
YXBob3JlKTsKKyNlbmRpZgorCiAgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOwogfQogCiBi
b29sIENvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURhdGEoKSBjb25zdAogewotICAgIHJldHVybiBb
bV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZmlsdGVyU3RhdGVdID09IGtXRkVTdGF0ZUJ1ZmZlcmlu
ZzsKKyAgICByZXR1cm4gW21fcGxhdGZvcm1Db250ZW50RmlsdGVyIGZpbHRlclN0YXRlXSA9PSBr
V0ZFU3RhdGVCdWZmZXJpbmcKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgICAgIHx8
IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNOZWVkc01vcmVE
YXRhCisjZW5kaWYKKyAgICA7CiB9CiAKIGJvb2wgQ29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRh
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fcGxhdGZvcm1Db250ZW50RmlsdGVyIHdhc0Jsb2Nr
ZWRdOworICAgIHJldHVybiBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgd2FzQmxvY2tlZF0KKyNp
ZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgICAgIHx8IG1fbmVGaWx0ZXJTb3VyY2VTdGF0
dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNCbG9jaworI2VuZGlmCisgICAgOwogfQogCiBjb25z
dCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNv
bnN0CiB7CisgICAgLy8gRklYTUU6IFRoaXMgd2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgd2l0
aCBsZW5ndGggMCB3aGVuIHVzaW5nCisgICAgLy8gTkVGaWx0ZXJTb3VyY2UuIFdlIG5lZWQgdG8g
c2hvdyBhIHByb3BlciBlcnJvciBwYWdlIGluc3RlYWQuCiAgICAgQVNTRVJUKCFuZWVkc01vcmVE
YXRhKCkpOwotICAgIGxlbmd0aCA9IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW21fcmVwbGFjZW1lbnREYXRhLmdl
dCgpIGJ5dGVzXSk7CisgICAgbGVuZ3RoID0gW21fcmVwbGFjZW1lbnREYXRhIGxlbmd0aF07Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihbbV9yZXBsYWNlbWVudERhdGEgYnl0
ZXNdKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222842</attachid>
            <date>2014-01-31 13:25:44 -0800</date>
            <delta_ts>2014-01-31 13:27:02 -0800</delta_ts>
            <desc>[Cocoa] Add NEFilterSource support to ContentFilterMac</desc>
            <filename>bug-127979-20140131132543.patch</filename>
            <type>text/plain</type>
            <size>10208</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjMzAzN2ZkYzZmMzNl
NWQ1YjNhYjc5OTdhYjc3N2MwZTk3ZDk4NC4uZTFjZDI4MTdmOTVmYjI3N2JkZmFiYzg2YWU2ODRl
ZmQ4YjVmODMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAxLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBORUZpbHRl
clNvdXJjZSBzdXBwb3J0IHRvIENvbnRlbnRGaWx0ZXJNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBDb250ZW50RmlsdGVyTWFjIHRvIHdv
cmsgd2l0aCBib3RoIFdlYkZpbHRlckV2YWx1YXRvciBhbmQKKyAgICAgICAgTkVGaWx0ZXJTb3Vy
Y2UsIGlmIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6IFNl
dCBIQVZFX05FX0ZJTFRFUl9TT1VSQ0UgYmFzZWQgb24gcGxhdGZvcm0KKyAgICAgICAgY29uZGl0
aW9uYWxzLCBhbmQgZm9yd2FyZC1kZWNsYXJlIE5FRmlsdGVyU291cmNlLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tOiBJbmNsdWRlZCBORUZpbHRlclNvdXJjZS5o
IGlmIHRoZSBTREsKKyAgICAgICAgaGFzIGl0OyBkZWNsYXJlZCB0aGUgY2xhc3MgZGlyZWN0bHkg
aWYgbm90LiBBbHNvIHNvZnQtbGlua2VkCisgICAgICAgIE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3
b3JrLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6IElu
aXRpYWxpemVkCisgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgdG8gTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXNOZWVkc01vcmVEYXRhIGFuZCBjcmVhdGVkCisgICAgICAgIG1fcGxhdGZvcm1Db250
ZW50RmlsdGVyIGFuZCBtX25lRmlsdGVyU291cmNlIG9iamVjdHMgaWYgdGhlaXIKKyAgICAgICAg
cmVzcGVjdGl2ZSBmaWx0ZXJzIHdlcmUgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXI6OmlzRW5hYmxlZCk6IFJldHVybmVkIHRydWUgaWYgZWl0aGVyIGZpbHRlciBpcwor
ICAgICAgICBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6YWRkRGF0
YSk6IEFkZGVkIGluY29taW5nIGRhdGEgdG8gZWFjaCBmaWx0ZXIKKyAgICAgICAgdGhhdCBpcyBl
bmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdE
YXRhKTogTm90aWZpZWQgZWFjaCBlbmFibGVkCisgICAgICAgIGZpbHRlciB0aGF0IHdlIGFyZSBm
aW5pc2hlZCBhZGRpbmcgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5l
ZWRzTW9yZURhdGEpOiBSZXR1cm5lZCB0cnVlIGlmIGVpdGhlciBmaWx0ZXIKKyAgICAgICAgbmVl
ZHMgbW9yZSBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGlkQmxvY2tE
YXRhKTogUmV0dXJuZWQgdHJ1ZSBpZiBlaXRoZXIgZmlsdGVyCisgICAgICAgIGJsb2NrZWQgZGF0
YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YSk6
IFJldHVybmVkCisgICAgICAgIG1fcmVwbGFjZW1lbnREYXRhLiBDb21tZW50ZWQgdGhhdCB0aGlz
IHdpbGwgY3VycmVudGx5IHJldHVybiBhIG51bGwKKyAgICAgICAgc3RyaW5nIGlmIE5FRmlsdGVy
U291cmNlIGJsb2NrZWQgdGhlIGxvYWQuCisKIDIwMTQtMDEtMzAgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2VjdXJpdHktY2hlY2tlZCBjYXN0IGZv
ciBXZWJDb3JlOjpDYWNoZWRJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRl
ci5oCmluZGV4IGQwNWUyYWEyODdmNGMyYTYzOGQzYTc4M2I2ODZhMWFlM2VhM2NkZTMuLjA0MjVk
MjczYjhkZGNkY2MyMzI5MTVhYjdlODAxNjI2YzczY2JmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZW50RmlsdGVyLmgKQEAgLTI5LDggKzI5LDggQEAKICNpZiBVU0UoQ09OVEVOVF9G
SUxURVJJTkcpCiAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbmFsLmg+CkBAIC00MCwxNSArNDAsMjUgQEAKIE9CSkNfQ0xBU1MgV2ViRmlsdGVy
RXZhbHVhdG9yOwogI2VuZGlmCiAKKyNkZWZpbmUgSEFWRV9ORV9GSUxURVJfU09VUkNFIFRBUkdF
VF9PU19FTUJFRERFRCB8fCAoIVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMCkKKworI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKKyNp
bXBvcnQgPGF0b21pYz4KKyNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CitPQkpDX0NMQVNT
IE5FRmlsdGVyU291cmNlOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKIAotY2xhc3MgQ29udGVudEZpbHRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPENvbnRlbnRGaWx0ZXI+IHsKK2NsYXNzIENvbnRlbnRGaWx0ZXIgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q29udGVudEZpbHRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbnRlbnRGaWx0ZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAg
ICAgc3RhdGljIGJvb2wgaXNFbmFibGVkKCk7Ci0gICAgCisKKyAgICB2aXJ0dWFsIH5Db250ZW50
RmlsdGVyKCk7CisKICAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCk7CiAgICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKTsKICAgICBib29sIG5lZWRzTW9yZURh
dGEoKSBjb25zdDsKQEAgLTY3LDYgKzc3LDEzIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdl
YkZpbHRlckV2YWx1YXRvcj4gbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXI7CiAgICAgUmV0YWluUHRy
PE5TRGF0YT4gbV9yZXBsYWNlbWVudERhdGE7CiAjZW5kaWYKKworI2lmIEhBVkUoTkVfRklMVEVS
X1NPVVJDRSkKKyAgICBzdGQ6OmF0b21pYzxsb25nPiBtX25lRmlsdGVyU291cmNlU3RhdHVzOwor
ICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJjZT4gbV9uZUZpbHRlclNvdXJjZTsKKyAgICBkaXNw
YXRjaF9xdWV1ZV90IG1fbmVGaWx0ZXJTb3VyY2VRdWV1ZTsKKyAgICBkaXNwYXRjaF9zZW1hcGhv
cmVfdCBtX25lRmlsdGVyU291cmNlU2VtYXBob3JlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29u
dGVudEZpbHRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50Rmls
dGVyTWFjLm1tCmluZGV4IGIzN2FmZTczNTM1NmU3MDBiMDgwYWYzZjk1MjRmZDFkYjIyZjRiMGEu
LmZkNjkxMzg2MjBiMjRjYzg3ODVkMmRhYWI2NTc5ZmM0YzY1NzRiODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCkBAIC00OSw2ICs0OSw0
MCBAQCBAZW5kCiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lz
KTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisKKyNpZiBkZWZpbmVkKF9faGFzX2lu
Y2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPE5ldHdvcmtFeHRlbnNpb24vTkVGaWx0ZXJTb3VyY2Uu
aD4pCisjaW1wb3J0IDxOZXR3b3JrRXh0ZW5zaW9uL05FRmlsdGVyU291cmNlLmg+CisjZWxzZQor
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTkVGaWx0ZXJTb3VyY2VTdGF0dXMpIHsKKwlORUZp
bHRlclNvdXJjZVN0YXR1c1Bhc3MgPSAxLAorCU5FRmlsdGVyU291cmNlU3RhdHVzQmxvY2sgPSAy
LAorCU5FRmlsdGVyU291cmNlU3RhdHVzTmVlZHNNb3JlRGF0YSA9IDMsCisJTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXNFcnJvciA9IDQsCit9OworCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBORUZp
bHRlclNvdXJjZURpcmVjdGlvbikgeworCU5FRmlsdGVyU291cmNlRGlyZWN0aW9uT3V0Ym91bmQg
PSAxLAorCU5FRmlsdGVyU291cmNlRGlyZWN0aW9uSW5ib3VuZCA9IDIsCit9OworCitAaW50ZXJm
YWNlIE5FRmlsdGVyU291cmNlIDogTlNPYmplY3QKKysgKEJPT0wpZmlsdGVyUmVxdWlyZWQ7Cist
IChpZClpbml0V2l0aFVSTDooTlNVUkwgKil1cmwgZGlyZWN0aW9uOihORUZpbHRlclNvdXJjZURp
cmVjdGlvbilkaXJlY3Rpb24gc29ja2V0SWRlbnRpZmllcjoodWludDY0X3Qpc29ja2V0SWRlbnRp
ZmllcjsKKy0gKHZvaWQpYWRkRGF0YTooTlNEYXRhICopZGF0YSB3aXRoQ29tcGxldGlvblF1ZXVl
OihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShORUZp
bHRlclNvdXJjZVN0YXR1cywgTlNEYXRhICopKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClk
YXRhQ29tcGxldGVXaXRoQ29tcGxldGlvblF1ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkICheKShORUZpbHRlclNvdXJjZVN0YXR1cywgTlNEYXRhICop
KWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25seSkgTkVGaWx0ZXJTb3VyY2VT
dGF0dXMgc3RhdHVzOworQHByb3BlcnR5IChyZWFkb25seSkgTlNVUkwgKnVybDsKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIE5FRmlsdGVyU291cmNlRGlyZWN0aW9uIGRpcmVjdGlvbjsKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIHVpbnQ2NF90IHNvY2tldElkZW50aWZpZXI7CitAZW5kCisjZW5kaWYKKwor
U09GVF9MSU5LX0ZSQU1FV09SSyhOZXR3b3JrRXh0ZW5zaW9uKTsKK1NPRlRfTElOS19DTEFTUyhO
ZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CisKKyNlbmRpZiAvLyBIQVZFKE5FX0ZJ
TFRFUl9TT1VSQ0UpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxDb250ZW50
RmlsdGVyPiBDb250ZW50RmlsdGVyOjpjcmVhdGUoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCkBAIC01Nyw0NyArOTEsMTE2IEBAIFBhc3NSZWZQdHI8Q29udGVudEZpbHRlcj4gQ29u
dGVudEZpbHRlcjo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlCiB9CiAK
IENvbnRlbnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCi0gICAgOiBtX3BsYXRmb3JtQ29udGVudEZpbHRlcihhZG9wdE5TKFtbZ2V0V2ViRmls
dGVyRXZhbHVhdG9yQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhSZXNwb25zZTpyZXNwb25zZS5uc1VS
TFJlc3BvbnNlKCldKSkKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgOiBtX25lRmls
dGVyU291cmNlU3RhdHVzKE5FRmlsdGVyU291cmNlU3RhdHVzTmVlZHNNb3JlRGF0YSkKKyNlbmRp
ZgoreworICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBpc01hbmFnZWRTZXNz
aW9uXSkKKyAgICAgICAgbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgPSBhZG9wdE5TKFtbZ2V0V2Vi
RmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhSZXNwb25zZTpyZXNwb25zZS5u
c1VSTFJlc3BvbnNlKCldKTsKKworI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKKyAgICBpZiAo
W2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJlZF0pIHsKKyAgICAgICAgbV9u
ZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMoW1tnZXRORUZpbHRlclNvdXJjZUNsYXNzKCkgYWxsb2Nd
IGluaXRXaXRoVVJMOltyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgVVJMXSBkaXJlY3Rpb246TkVG
aWx0ZXJTb3VyY2VEaXJlY3Rpb25JbmJvdW5kIHNvY2tldElkZW50aWZpZXI6MF0pOworICAgICAg
ICBtX25lRmlsdGVyU291cmNlUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoImNvbS5hcHBs
ZS5XZWJDb3JlLk5FRmlsdGVyU291cmNlUXVldWUiLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwpOwor
ICAgIH0KKyNlbmRpZgorfQorCitDb250ZW50RmlsdGVyOjp+Q29udGVudEZpbHRlcigpCiB7Ci0g
ICAgQVNTRVJUKG1fcGxhdGZvcm1Db250ZW50RmlsdGVyKTsKKyNpZiBIQVZFKE5FX0ZJTFRFUl9T
T1VSQ0UpCisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX25lRmlsdGVyU291cmNlUXVldWUpOworI2Vu
ZGlmCiB9CiAKIGJvb2wgQ29udGVudEZpbHRlcjo6aXNFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
W2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgaXNNYW5hZ2VkU2Vzc2lvbl07CisgICAgcmV0
dXJuIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFzcygpIGlzTWFuYWdlZFNlc3Npb25dCisjaWYg
SEFWRShORV9GSUxURVJfU09VUkNFKQorICAgICAgICB8fCBbZ2V0TkVGaWx0ZXJTb3VyY2VDbGFz
cygpIGZpbHRlclJlcXVpcmVkXQorI2VuZGlmCisgICAgOwogfQogCiB2b2lkIENvbnRlbnRGaWx0
ZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKIHsKICAgICBBU1NFUlQo
bmVlZHNNb3JlRGF0YSgpKTsKLSAgICBBU1NFUlQoIVttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBs
ZW5ndGhdKTsKLSAgICBtX3JlcGxhY2VtZW50RGF0YSA9IFttX3BsYXRmb3JtQ29udGVudEZpbHRl
ciBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6
bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT11dOwotICAgIEFTU0VSVChuZWVkc01vcmVEYXRhKCkgfHwg
W21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGxlbmd0aF0pOworCisgICAgaWYgKG1fcGxhdGZvcm1D
b250ZW50RmlsdGVyKSB7CisgICAgICAgIEFTU0VSVCghW21fcmVwbGFjZW1lbnREYXRhLmdldCgp
IGxlbmd0aF0pOworICAgICAgICBtX3JlcGxhY2VtZW50RGF0YSA9IFttX3BsYXRmb3JtQ29udGVu
dEZpbHRlciBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCopZGF0YSBs
ZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT11dOworICAgICAgICBBU1NFUlQobmVlZHNNb3Jl
RGF0YSgpIHx8IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKKyAgICB9CisKKyNp
ZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgaWYgKCFtX25lRmlsdGVyU291cmNlKQorICAg
ICAgICByZXR1cm47CisKKyAgICByZWYoKTsKKyAgICBbbV9uZUZpbHRlclNvdXJjZSBhZGREYXRh
OltOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoIGZy
ZWVXaGVuRG9uZTpOT10gd2l0aENvbXBsZXRpb25RdWV1ZTptX25lRmlsdGVyU291cmNlUXVldWUg
Y29tcGxldGlvbkhhbmRsZXI6XihORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGF0YSAq
KSB7CisgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9IHN0YXR1czsKKyAgICAgICBkZXJl
ZigpOworICAgIH1dOworI2VuZGlmCiB9CiAgICAgCiB2b2lkIENvbnRlbnRGaWx0ZXI6OmZpbmlz
aGVkQWRkaW5nRGF0YSgpCiB7CiAgICAgQVNTRVJUKG5lZWRzTW9yZURhdGEoKSk7Ci0gICAgQVNT
RVJUKCFbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3RoXSk7Ci0gICAgbV9yZXBsYWNlbWVu
dERhdGEgPSBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZGF0YUNvbXBsZXRlXTsKKworICAgIGlm
IChtX3BsYXRmb3JtQ29udGVudEZpbHRlcikgeworICAgICAgICBBU1NFUlQoIVttX3JlcGxhY2Vt
ZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKKyAgICAgICAgbV9yZXBsYWNlbWVudERhdGEgPSBbbV9w
bGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZGF0YUNvbXBsZXRlXTsKKyAgICB9CisKKyNpZiBIQVZFKE5F
X0ZJTFRFUl9TT1VSQ0UpCisgICAgaWYgKCFtX25lRmlsdGVyU291cmNlKQorICAgICAgICByZXR1
cm47CisKKyAgICByZWYoKTsKKyAgICBtX25lRmlsdGVyU291cmNlU2VtYXBob3JlID0gZGlzcGF0
Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKKyAgICBbbV9uZUZpbHRlclNvdXJjZSBkYXRhQ29tcGxl
dGVXaXRoQ29tcGxldGlvblF1ZXVlOm1fbmVGaWx0ZXJTb3VyY2VRdWV1ZSBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEYXRhICopIHsKKyAgICAgICAg
bV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9IHN0YXR1czsKKyAgICAgICAgZGVyZWYoKTsKKworICAg
ICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUp
OworICAgIH1dOworICAgIAorICAgIC8vIEZJWE1FOiBXZSBoYXZlIHRvIGJsb2NrIGhlcmUgc2lu
Y2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKKyAgICAvLyBibG9ja2VkL25vdCBi
bG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGluZwor
ICAgIC8vIGZpbmlzaGVkQWRkaW5nRGF0YSgpLiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBtYWtl
IHRoaXMgYXN5bmNocm9ub3VzLgorICAgIGRpc3BhdGNoX3NlbWFwaG9yZV93YWl0KG1fbmVGaWx0
ZXJTb3VyY2VTZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAgZGlzcGF0Y2hf
cmVsZWFzZShtX25lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKKyNlbmRpZgorCiAgICAgQVNTRVJU
KCFuZWVkc01vcmVEYXRhKCkpOwogfQogCiBib29sIENvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURh
dGEoKSBjb25zdAogewotICAgIHJldHVybiBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZmlsdGVy
U3RhdGVdID09IGtXRkVTdGF0ZUJ1ZmZlcmluZzsKKyAgICByZXR1cm4gW21fcGxhdGZvcm1Db250
ZW50RmlsdGVyIGZpbHRlclN0YXRlXSA9PSBrV0ZFU3RhdGVCdWZmZXJpbmcKKyNpZiBIQVZFKE5F
X0ZJTFRFUl9TT1VSQ0UpCisgICAgICAgIHx8IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgPT0gTkVG
aWx0ZXJTb3VyY2VTdGF0dXNOZWVkc01vcmVEYXRhCisjZW5kaWYKKyAgICA7CiB9CiAKIGJvb2wg
Q29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIHsKLSAgICByZXR1cm4gW21fcGxh
dGZvcm1Db250ZW50RmlsdGVyIHdhc0Jsb2NrZWRdOworICAgIHJldHVybiBbbV9wbGF0Zm9ybUNv
bnRlbnRGaWx0ZXIgd2FzQmxvY2tlZF0KKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAg
ICAgIHx8IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNCbG9j
aworI2VuZGlmCisgICAgOwogfQogCiBjb25zdCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBs
YWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0CiB7CisgICAgLy8gRklYTUU6IFRoaXMgd2ls
bCByZXR1cm4gYSBudWxsIHBvaW50ZXIgd2l0aCBsZW5ndGggMCB3aGVuIHVzaW5nCisgICAgLy8g
TkVGaWx0ZXJTb3VyY2UuIFdlIG5lZWQgdG8gc2hvdyBhIHByb3BlciBlcnJvciBwYWdlIGluc3Rl
YWQuCiAgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOwotICAgIGxlbmd0aCA9IFttX3JlcGxh
Y2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4oW21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGJ5dGVzXSk7CisgICAgbGVuZ3RoID0gW21f
cmVwbGFjZW1lbnREYXRhIGxlbmd0aF07CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNo
YXIqPihbbV9yZXBsYWNlbWVudERhdGEgYnl0ZXNdKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222843</attachid>
            <date>2014-01-31 13:27:04 -0800</date>
            <delta_ts>2014-02-04 18:02:46 -0800</delta_ts>
            <desc>[Cocoa] Add NEFilterSource support to ContentFilterMac</desc>
            <filename>bug-127979-20140131132703.patch</filename>
            <type>text/plain</type>
            <size>10226</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMTQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjJjMzAzN2ZkYzZmMzNl
NWQ1YjNhYjc5OTdhYjc3N2MwZTk3ZDk4NC4uZTFjZDI4MTdmOTVmYjI3N2JkZmFiYzg2YWU2ODRl
ZmQ4YjVmODMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE0LTAxLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBORUZpbHRl
clNvdXJjZSBzdXBwb3J0IHRvIENvbnRlbnRGaWx0ZXJNYWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk3OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBDb250ZW50RmlsdGVyTWFjIHRvIHdv
cmsgd2l0aCBib3RoIFdlYkZpbHRlckV2YWx1YXRvciBhbmQKKyAgICAgICAgTkVGaWx0ZXJTb3Vy
Y2UsIGlmIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6IFNl
dCBIQVZFX05FX0ZJTFRFUl9TT1VSQ0UgYmFzZWQgb24gcGxhdGZvcm0KKyAgICAgICAgY29uZGl0
aW9uYWxzLCBhbmQgZm9yd2FyZC1kZWNsYXJlIE5FRmlsdGVyU291cmNlLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tOiBJbmNsdWRlZCBORUZpbHRlclNvdXJjZS5o
IGlmIHRoZSBTREsKKyAgICAgICAgaGFzIGl0OyBkZWNsYXJlZCB0aGUgY2xhc3MgZGlyZWN0bHkg
aWYgbm90LiBBbHNvIHNvZnQtbGlua2VkCisgICAgICAgIE5ldHdvcmtFeHRlbnNpb24uZnJhbWV3
b3JrLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6IElu
aXRpYWxpemVkCisgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgdG8gTkVGaWx0ZXJTb3Vy
Y2VTdGF0dXNOZWVkc01vcmVEYXRhIGFuZCBjcmVhdGVkCisgICAgICAgIG1fcGxhdGZvcm1Db250
ZW50RmlsdGVyIGFuZCBtX25lRmlsdGVyU291cmNlIG9iamVjdHMgaWYgdGhlaXIKKyAgICAgICAg
cmVzcGVjdGl2ZSBmaWx0ZXJzIHdlcmUgZW5hYmxlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRGaWx0ZXI6OmlzRW5hYmxlZCk6IFJldHVybmVkIHRydWUgaWYgZWl0aGVyIGZpbHRlciBpcwor
ICAgICAgICBlbmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6YWRkRGF0
YSk6IEFkZGVkIGluY29taW5nIGRhdGEgdG8gZWFjaCBmaWx0ZXIKKyAgICAgICAgdGhhdCBpcyBl
bmFibGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdE
YXRhKTogTm90aWZpZWQgZWFjaCBlbmFibGVkCisgICAgICAgIGZpbHRlciB0aGF0IHdlIGFyZSBm
aW5pc2hlZCBhZGRpbmcgZGF0YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6Om5l
ZWRzTW9yZURhdGEpOiBSZXR1cm5lZCB0cnVlIGlmIGVpdGhlciBmaWx0ZXIKKyAgICAgICAgbmVl
ZHMgbW9yZSBkYXRhLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGlkQmxvY2tE
YXRhKTogUmV0dXJuZWQgdHJ1ZSBpZiBlaXRoZXIgZmlsdGVyCisgICAgICAgIGJsb2NrZWQgZGF0
YS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YSk6
IFJldHVybmVkCisgICAgICAgIG1fcmVwbGFjZW1lbnREYXRhLiBDb21tZW50ZWQgdGhhdCB0aGlz
IHdpbGwgY3VycmVudGx5IHJldHVybiBhIG51bGwKKyAgICAgICAgc3RyaW5nIGlmIE5FRmlsdGVy
U291cmNlIGJsb2NrZWQgdGhlIGxvYWQuCisKIDIwMTQtMDEtMzAgIERhdmlkIEtpbHplciAgPGRk
a2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2VjdXJpdHktY2hlY2tlZCBjYXN0IGZv
ciBXZWJDb3JlOjpDYWNoZWRJbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRl
ci5oCmluZGV4IGQwNWUyYWEyODdmNGMyYTYzOGQzYTc4M2I2ODZhMWFlM2VhM2NkZTMuLjA0MjVk
MjczYjhkZGNkY2MyMzI5MTVhYjdlODAxNjI2YzczY2JmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZW50RmlsdGVyLmgKQEAgLTI5LDggKzI5LDggQEAKICNpZiBVU0UoQ09OVEVOVF9G
SUxURVJJTkcpCiAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbmFsLmg+CkBAIC00MCwxNSArNDAsMjUgQEAKIE9CSkNfQ0xBU1MgV2ViRmlsdGVy
RXZhbHVhdG9yOwogI2VuZGlmCiAKKyNkZWZpbmUgSEFWRV9ORV9GSUxURVJfU09VUkNFIFRBUkdF
VF9PU19FTUJFRERFRCB8fCAoIVRBUkdFVF9PU19JUEhPTkUgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMCkKKworI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKKyNp
bXBvcnQgPGF0b21pYz4KKyNpbXBvcnQgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CitPQkpDX0NMQVNT
IE5FRmlsdGVyU291cmNlOworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UmVzb3VyY2VSZXNwb25zZTsKIAotY2xhc3MgQ29udGVudEZpbHRlciA6IHB1YmxpYyBSZWZDb3Vu
dGVkPENvbnRlbnRGaWx0ZXI+IHsKK2NsYXNzIENvbnRlbnRGaWx0ZXIgOiBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8Q29udGVudEZpbHRlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbnRlbnRGaWx0ZXI+IGNyZWF0ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAg
ICAgc3RhdGljIGJvb2wgaXNFbmFibGVkKCk7Ci0gICAgCisKKyAgICB2aXJ0dWFsIH5Db250ZW50
RmlsdGVyKCk7CisKICAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCk7CiAgICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKTsKICAgICBib29sIG5lZWRzTW9yZURh
dGEoKSBjb25zdDsKQEAgLTY3LDYgKzc3LDEzIEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPFdl
YkZpbHRlckV2YWx1YXRvcj4gbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXI7CiAgICAgUmV0YWluUHRy
PE5TRGF0YT4gbV9yZXBsYWNlbWVudERhdGE7CiAjZW5kaWYKKworI2lmIEhBVkUoTkVfRklMVEVS
X1NPVVJDRSkKKyAgICBzdGQ6OmF0b21pYzxsb25nPiBtX25lRmlsdGVyU291cmNlU3RhdHVzOwor
ICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJjZT4gbV9uZUZpbHRlclNvdXJjZTsKKyAgICBkaXNw
YXRjaF9xdWV1ZV90IG1fbmVGaWx0ZXJTb3VyY2VRdWV1ZTsKKyAgICBkaXNwYXRjaF9zZW1hcGhv
cmVfdCBtX25lRmlsdGVyU291cmNlU2VtYXBob3JlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29u
dGVudEZpbHRlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50Rmls
dGVyTWFjLm1tCmluZGV4IGIzN2FmZTczNTM1NmU3MDBiMDgwYWYzZjk1MjRmZDFkYjIyZjRiMGEu
LjNiYmE2NzUzZTRjYTEzM2ZkOTc2ZGJiNzQ2ODE1M2U4YzJiNmE0NDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tCkBAIC00OSw2ICs0OSw0
MCBAQCBAZW5kCiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5c2lz
KTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1YXRv
cik7CiAKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisKKyNpZiBkZWZpbmVkKF9faGFzX2lu
Y2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPE5ldHdvcmtFeHRlbnNpb24vTkVGaWx0ZXJTb3VyY2Uu
aD4pCisjaW1wb3J0IDxOZXR3b3JrRXh0ZW5zaW9uL05FRmlsdGVyU291cmNlLmg+CisjZWxzZQor
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgTkVGaWx0ZXJTb3VyY2VTdGF0dXMpIHsKKyAgICBO
RUZpbHRlclNvdXJjZVN0YXR1c1Bhc3MgPSAxLAorICAgIE5FRmlsdGVyU291cmNlU3RhdHVzQmxv
Y2sgPSAyLAorICAgIE5FRmlsdGVyU291cmNlU3RhdHVzTmVlZHNNb3JlRGF0YSA9IDMsCisgICAg
TkVGaWx0ZXJTb3VyY2VTdGF0dXNFcnJvciA9IDQsCit9OworCit0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBORUZpbHRlclNvdXJjZURpcmVjdGlvbikgeworICAgIE5FRmlsdGVyU291cmNlRGly
ZWN0aW9uT3V0Ym91bmQgPSAxLAorICAgIE5FRmlsdGVyU291cmNlRGlyZWN0aW9uSW5ib3VuZCA9
IDIsCit9OworCitAaW50ZXJmYWNlIE5FRmlsdGVyU291cmNlIDogTlNPYmplY3QKKysgKEJPT0wp
ZmlsdGVyUmVxdWlyZWQ7CistIChpZClpbml0V2l0aFVSTDooTlNVUkwgKil1cmwgZGlyZWN0aW9u
OihORUZpbHRlclNvdXJjZURpcmVjdGlvbilkaXJlY3Rpb24gc29ja2V0SWRlbnRpZmllcjoodWlu
dDY0X3Qpc29ja2V0SWRlbnRpZmllcjsKKy0gKHZvaWQpYWRkRGF0YTooTlNEYXRhICopZGF0YSB3
aXRoQ29tcGxldGlvblF1ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShORUZpbHRlclNvdXJjZVN0YXR1cywgTlNEYXRhICopKWNvbXBsZXRpb25I
YW5kbGVyOworLSAodm9pZClkYXRhQ29tcGxldGVXaXRoQ29tcGxldGlvblF1ZXVlOihkaXNwYXRj
aF9xdWV1ZV90KXF1ZXVlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShORUZpbHRlclNvdXJj
ZVN0YXR1cywgTlNEYXRhICopKWNvbXBsZXRpb25IYW5kbGVyOworQHByb3BlcnR5IChyZWFkb25s
eSkgTkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzOworQHByb3BlcnR5IChyZWFkb25seSkgTlNV
UkwgKnVybDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIE5FRmlsdGVyU291cmNlRGlyZWN0aW9uIGRp
cmVjdGlvbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVpbnQ2NF90IHNvY2tldElkZW50aWZpZXI7
CitAZW5kCisjZW5kaWYKKworU09GVF9MSU5LX0ZSQU1FV09SSyhOZXR3b3JrRXh0ZW5zaW9uKTsK
K1NPRlRfTElOS19DTEFTUyhOZXR3b3JrRXh0ZW5zaW9uLCBORUZpbHRlclNvdXJjZSk7CisKKyNl
bmRpZiAvLyBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
UGFzc1JlZlB0cjxDb250ZW50RmlsdGVyPiBDb250ZW50RmlsdGVyOjpjcmVhdGUoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkBAIC01Nyw0NyArOTEsMTE2IEBAIFBhc3NSZWZQdHI8
Q29udGVudEZpbHRlcj4gQ29udGVudEZpbHRlcjo6Y3JlYXRlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlCiB9CiAKIENvbnRlbnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCi0gICAgOiBtX3BsYXRmb3JtQ29udGVudEZpbHRlcihh
ZG9wdE5TKFtbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhSZXNw
b25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCldKSkKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VS
Q0UpCisgICAgOiBtX25lRmlsdGVyU291cmNlU3RhdHVzKE5FRmlsdGVyU291cmNlU3RhdHVzTmVl
ZHNNb3JlRGF0YSkKKyNlbmRpZgoreworICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xh
c3MoKSBpc01hbmFnZWRTZXNzaW9uXSkKKyAgICAgICAgbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIg
PSBhZG9wdE5TKFtbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhS
ZXNwb25zZTpyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCldKTsKKworI2lmIEhBVkUoTkVfRklMVEVS
X1NPVVJDRSkKKyAgICBpZiAoW2dldE5FRmlsdGVyU291cmNlQ2xhc3MoKSBmaWx0ZXJSZXF1aXJl
ZF0pIHsKKyAgICAgICAgbV9uZUZpbHRlclNvdXJjZSA9IGFkb3B0TlMoW1tnZXRORUZpbHRlclNv
dXJjZUNsYXNzKCkgYWxsb2NdIGluaXRXaXRoVVJMOltyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkg
VVJMXSBkaXJlY3Rpb246TkVGaWx0ZXJTb3VyY2VEaXJlY3Rpb25JbmJvdW5kIHNvY2tldElkZW50
aWZpZXI6MF0pOworICAgICAgICBtX25lRmlsdGVyU291cmNlUXVldWUgPSBkaXNwYXRjaF9xdWV1
ZV9jcmVhdGUoImNvbS5hcHBsZS5XZWJDb3JlLk5FRmlsdGVyU291cmNlUXVldWUiLCBESVNQQVRD
SF9RVUVVRV9TRVJJQUwpOworICAgIH0KKyNlbmRpZgorfQorCitDb250ZW50RmlsdGVyOjp+Q29u
dGVudEZpbHRlcigpCiB7Ci0gICAgQVNTRVJUKG1fcGxhdGZvcm1Db250ZW50RmlsdGVyKTsKKyNp
ZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX25lRmlsdGVy
U291cmNlUXVldWUpOworI2VuZGlmCiB9CiAKIGJvb2wgQ29udGVudEZpbHRlcjo6aXNFbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gW2dldFdlYkZpbHRlckV2YWx1YXRvckNsYXNzKCkgaXNNYW5hZ2Vk
U2Vzc2lvbl07CisgICAgcmV0dXJuIFtnZXRXZWJGaWx0ZXJFdmFsdWF0b3JDbGFzcygpIGlzTWFu
YWdlZFNlc3Npb25dCisjaWYgSEFWRShORV9GSUxURVJfU09VUkNFKQorICAgICAgICB8fCBbZ2V0
TkVGaWx0ZXJTb3VyY2VDbGFzcygpIGZpbHRlclJlcXVpcmVkXQorI2VuZGlmCisgICAgOwogfQog
CiB2b2lkIENvbnRlbnRGaWx0ZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkKIHsKICAgICBBU1NFUlQobmVlZHNNb3JlRGF0YSgpKTsKLSAgICBBU1NFUlQoIVttX3JlcGxh
Y2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKLSAgICBtX3JlcGxhY2VtZW50RGF0YSA9IFttX3Bs
YXRmb3JtQ29udGVudEZpbHRlciBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToo
dm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT11dOwotICAgIEFTU0VSVChu
ZWVkc01vcmVEYXRhKCkgfHwgW21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGxlbmd0aF0pOworCisg
ICAgaWYgKG1fcGxhdGZvcm1Db250ZW50RmlsdGVyKSB7CisgICAgICAgIEFTU0VSVCghW21fcmVw
bGFjZW1lbnREYXRhLmdldCgpIGxlbmd0aF0pOworICAgICAgICBtX3JlcGxhY2VtZW50RGF0YSA9
IFttX3BsYXRmb3JtQ29udGVudEZpbHRlciBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlc05v
Q29weToodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT11dOworICAgICAg
ICBBU1NFUlQobmVlZHNNb3JlRGF0YSgpIHx8IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5n
dGhdKTsKKyAgICB9CisKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgaWYgKCFtX25l
RmlsdGVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICByZWYoKTsKKyAgICBbbV9uZUZp
bHRlclNvdXJjZSBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlc05vQ29weToodm9pZCopZGF0
YSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT10gd2l0aENvbXBsZXRpb25RdWV1ZTptX25l
RmlsdGVyU291cmNlUXVldWUgY29tcGxldGlvbkhhbmRsZXI6XihORUZpbHRlclNvdXJjZVN0YXR1
cyBzdGF0dXMsIE5TRGF0YSAqKSB7CisgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9IHN0
YXR1czsKKyAgICAgICBkZXJlZigpOworICAgIH1dOworI2VuZGlmCiB9CiAgICAgCiB2b2lkIENv
bnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRkaW5nRGF0YSgpCiB7CiAgICAgQVNTRVJUKG5lZWRzTW9y
ZURhdGEoKSk7Ci0gICAgQVNTRVJUKCFbbV9yZXBsYWNlbWVudERhdGEuZ2V0KCkgbGVuZ3RoXSk7
Ci0gICAgbV9yZXBsYWNlbWVudERhdGEgPSBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZGF0YUNv
bXBsZXRlXTsKKworICAgIGlmIChtX3BsYXRmb3JtQ29udGVudEZpbHRlcikgeworICAgICAgICBB
U1NFUlQoIVttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdKTsKKyAgICAgICAgbV9yZXBs
YWNlbWVudERhdGEgPSBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgZGF0YUNvbXBsZXRlXTsKKyAg
ICB9CisKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgaWYgKCFtX25lRmlsdGVyU291
cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICByZWYoKTsKKyAgICBtX25lRmlsdGVyU291cmNl
U2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKKyAgICBbbV9uZUZpbHRl
clNvdXJjZSBkYXRhQ29tcGxldGVXaXRoQ29tcGxldGlvblF1ZXVlOm1fbmVGaWx0ZXJTb3VyY2VR
dWV1ZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5FRmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNE
YXRhICopIHsKKyAgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9IHN0YXR1czsKKyAgICAg
ICAgZGVyZWYoKTsKKworICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fbmVGaWx0
ZXJTb3VyY2VTZW1hcGhvcmUpOworICAgIH1dOworICAgIAorICAgIC8vIEZJWE1FOiBXZSBoYXZl
IHRvIGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEKKyAg
ICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRpYXRl
bHkgYWZ0ZXIgY2FsbGluZworICAgIC8vIGZpbmlzaGVkQWRkaW5nRGF0YSgpLiBXZSBzaG91bGQg
ZmluZCBhIHdheSB0byBtYWtlIHRoaXMgYXN5bmNocm9ub3VzLgorICAgIGRpc3BhdGNoX3NlbWFw
aG9yZV93YWl0KG1fbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZF
Uik7CisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX25lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKKyNl
bmRpZgorCiAgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOwogfQogCiBib29sIENvbnRlbnRG
aWx0ZXI6Om5lZWRzTW9yZURhdGEoKSBjb25zdAogewotICAgIHJldHVybiBbbV9wbGF0Zm9ybUNv
bnRlbnRGaWx0ZXIgZmlsdGVyU3RhdGVdID09IGtXRkVTdGF0ZUJ1ZmZlcmluZzsKKyAgICByZXR1
cm4gW21fcGxhdGZvcm1Db250ZW50RmlsdGVyIGZpbHRlclN0YXRlXSA9PSBrV0ZFU3RhdGVCdWZm
ZXJpbmcKKyNpZiBIQVZFKE5FX0ZJTFRFUl9TT1VSQ0UpCisgICAgICAgIHx8IG1fbmVGaWx0ZXJT
b3VyY2VTdGF0dXMgPT0gTkVGaWx0ZXJTb3VyY2VTdGF0dXNOZWVkc01vcmVEYXRhCisjZW5kaWYK
KyAgICA7CiB9CiAKIGJvb2wgQ29udGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gW21fcGxhdGZvcm1Db250ZW50RmlsdGVyIHdhc0Jsb2NrZWRdOworICAgIHJl
dHVybiBbbV9wbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgd2FzQmxvY2tlZF0KKyNpZiBIQVZFKE5FX0ZJ
TFRFUl9TT1VSQ0UpCisgICAgICAgIHx8IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMgPT0gTkVGaWx0
ZXJTb3VyY2VTdGF0dXNCbG9jaworI2VuZGlmCisgICAgOwogfQogCiBjb25zdCBjaGFyKiBDb250
ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNvbnN0CiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgd2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgd2l0aCBsZW5ndGggMCB3
aGVuIHVzaW5nCisgICAgLy8gTkVGaWx0ZXJTb3VyY2UuIFdlIG5lZWQgdG8gc2hvdyBhIHByb3Bl
ciBlcnJvciBwYWdlIGluc3RlYWQuCiAgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOwotICAg
IGxlbmd0aCA9IFttX3JlcGxhY2VtZW50RGF0YS5nZXQoKSBsZW5ndGhdOwotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oW21fcmVwbGFjZW1lbnREYXRhLmdldCgpIGJ5dGVzXSk7
CisgICAgbGVuZ3RoID0gW21fcmVwbGFjZW1lbnREYXRhIGxlbmd0aF07CisgICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihbbV9yZXBsYWNlbWVudERhdGEgYnl0ZXNdKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223192</attachid>
            <date>2014-02-04 18:02:51 -0800</date>
            <delta_ts>2014-02-05 00:41:58 -0800</delta_ts>
            <desc>Buffer incoming data in ContentFilter when using NEFilterSource</desc>
            <filename>bug-127979-20140204180250.patch</filename>
            <type>text/plain</type>
            <size>6501</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ExMzlhODlmMTI2MGI1
ZmQ5Mjg0NTcxNTVlMjdjN2RiMmY3NmZkZC4uOWIyMTNiODdlMzJlODM3NjliYTc2N2I0YzFkMjVh
MTFiMTA5ZjdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAyLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBCdWZmZXIgaW5jb21pbmcgZGF0
YSBpbiBDb250ZW50RmlsdGVyIHdoZW4gdXNpbmcgTkVGaWx0ZXJTb3VyY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkZpbHRlckV2YWx1YXRvciBi
dWZmZXJzIGluY29taW5nIGRhdGEgYW5kIHJldHVybnMgaXQgdG8gdXMgYXMKKyAgICAgICAgcmVw
bGFjZW1lbnQgZGF0YSBpZiB0aGUgbG9hZCBpcyBhbGxvd2VkLiBORUZpbHRlclNvdXJjZSBkb2Vz
bid0IGRvCisgICAgICAgIHRoaXMsIHNvIHdlIG5lZWQgdG8gZG8gb3VyIG93biBidWZmZXJpbmcu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6IEZvcndhcmQtZGVjbGFyZWQg
TlNNdXRhYmxlRGF0YSBhbmQgYWRkZWQKKyAgICAgICAgbV9vcmlnaW5hbERhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0NvbnRlbnRGaWx0ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RmlsdGVyOjpDb250ZW50RmlsdGVyKTogQ29uc3RydWN0ZWQgbV9vcmlnaW5hbERhdGEK
KyAgICAgICAgd2l0aCBhbiBpbml0aWFsIGNhcGFjaXR5IChpZiB3ZSBrbm93IHRoZSBleHBlY3Rl
ZCBjb250ZW50IHNpemUpLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6YWRkRGF0
YSk6IEJ1ZmZlcmVkIGluY29taW5nIGRhdGEgaWYgd2UgYXJlCisgICAgICAgIHVzaW5nIE5FRmls
dGVyU291cmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRp
bmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50
RGF0YSk6IFJldHVybmVkIG1fb3JpZ2luYWxEYXRhCisgICAgICAgIGlmIHRoZSBsb2FkIHdhc24n
dCBibG9ja2VkLgorCiAyMDE0LTAyLTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFN0cmluZzo6Z2V0Q2hhcmFjdGVycyB0byBTdHJpbmc6
OmNoYXJhY3RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRG
aWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAppbmRleCAw
NDI1ZDI3M2I4ZGRjZGNjMjMyOTE1YWI3ZTgwMTYyNmM3M2NiZjhiLi42ODMxZGViNmUxMjc5MjZl
MTk5YzJmYWI3YWUxMzJjZGQzODU5MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZW50RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVu
dEZpbHRlci5oCkBAIC0zNyw2ICszNyw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
K09CSkNfQ0xBU1MgTlNNdXRhYmxlRGF0YTsKIE9CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVhdG9y
OwogI2VuZGlmCiAKQEAgLTgyLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmF0b21pYzxs
b25nPiBtX25lRmlsdGVyU291cmNlU3RhdHVzOwogICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJj
ZT4gbV9uZUZpbHRlclNvdXJjZTsKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fbmVGaWx0ZXJTb3Vy
Y2VRdWV1ZTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX25lRmlsdGVyU291cmNlU2VtYXBo
b3JlOworICAgIFJldGFpblB0cjxOU011dGFibGVEYXRhPiBtX29yaWdpbmFsRGF0YTsKICNlbmRp
ZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NvbnRlbnRG
aWx0ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1h
Yy5tbQppbmRleCAzYmJhNjc1M2U0Y2ExMzNmZDk3NmRiYjc0NjgxNTNlOGMyYjZhNDQ3Li45ZWMz
ZDc5OGJmNGVhNjIyYWNmNzlhNTMxOTZhMTliNWZiNTY1YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQpAQCAtMTAyLDYgKzEwMiwxMiBA
QCBDb250ZW50RmlsdGVyOjpDb250ZW50RmlsdGVyKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogICAgIGlmIChbZ2V0TkVGaWx0ZXJTb3VyY2VDbGFzcygpIGZpbHRlclJlcXVpcmVk
XSkgewogICAgICAgICBtX25lRmlsdGVyU291cmNlID0gYWRvcHROUyhbW2dldE5FRmlsdGVyU291
cmNlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhVUkw6W3Jlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBV
UkxdIGRpcmVjdGlvbjpORUZpbHRlclNvdXJjZURpcmVjdGlvbkluYm91bmQgc29ja2V0SWRlbnRp
ZmllcjowXSk7CiAgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVl
X2NyZWF0ZSgiY29tLmFwcGxlLldlYkNvcmUuTkVGaWx0ZXJTb3VyY2VRdWV1ZSIsIERJU1BBVENI
X1FVRVVFX1NFUklBTCk7CisgICAgICAgIAorICAgICAgICBsb25nIGxvbmcgZXhwZWN0ZWRDb250
ZW50U2l6ZSA9IFtyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
XTsKKyAgICAgICAgaWYgKGV4cGVjdGVkQ29udGVudFNpemUgPCAwIHx8IGV4cGVjdGVkQ29udGVu
dFNpemUgPiBOU1VJbnRlZ2VyTWF4KQorICAgICAgICAgICAgbV9vcmlnaW5hbERhdGEgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX29yaWdpbmFsRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OihOU1VJbnRlZ2VyKWV4cGVjdGVkQ29udGVudFNpemVdKTsKICAgICB9CiAj
ZW5kaWYKIH0KQEAgLTEzNiwxMSArMTQyLDI1IEBAIHZvaWQgQ29udGVudEZpbHRlcjo6YWRkRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIGlmICghbV9uZUZpbHRlclNvdXJj
ZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUU6IE5FRmlsdGVyU291cmNlIGRvZXNu
J3QgYnVmZmVyIGRhdGEgbGlrZSBXZWJGaWx0ZXJFdmFsdWF0b3IgZG9lcywKKyAgICAvLyBzbyB3
ZSBuZWVkIHRvIGRvIGl0IG91cnNlbHZlcyBzbyBnZXRSZXBsYWNlbWVudERhdGEoKSBjYW4gcmV0
dXJuIHRoZQorICAgIC8vIG9yaWdpbmFsIGJ5dGVzIGJhY2sgdG8gdGhlIGxvYWRlci4gV2Ugc2hv
dWxkIGZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMKKyAgICAvLyBzZWNvbmQgY29weS4KKyAgICBb
bV9vcmlnaW5hbERhdGEgYXBwZW5kQnl0ZXM6ZGF0YSBsZW5ndGg6bGVuZ3RoXTsKKwogICAgIHJl
ZigpOwotICAgIFttX25lRmlsdGVyU291cmNlIGFkZERhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVz
Tm9Db3B5Oih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGggZnJlZVdoZW5Eb25lOk5PXSB3aXRoQ29t
cGxldGlvblF1ZXVlOm1fbmVGaWx0ZXJTb3VyY2VRdWV1ZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5F
RmlsdGVyU291cmNlU3RhdHVzIHN0YXR1cywgTlNEYXRhICopIHsKLSAgICAgICBtX25lRmlsdGVy
U291cmNlU3RhdHVzID0gc3RhdHVzOwotICAgICAgIGRlcmVmKCk7CisgICAgZGlzcGF0Y2hfc2Vt
YXBob3JlX3QgbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUgPSBkaXNwYXRjaF9zZW1hcGhvcmVfY3Jl
YXRlKDApOworICAgIFttX25lRmlsdGVyU291cmNlIGFkZERhdGE6W05TRGF0YSBkYXRhV2l0aEJ5
dGVzOih2b2lkKilkYXRhIGxlbmd0aDpsZW5ndGhdIHdpdGhDb21wbGV0aW9uUXVldWU6bV9uZUZp
bHRlclNvdXJjZVF1ZXVlIGNvbXBsZXRpb25IYW5kbGVyOl4oTkVGaWx0ZXJTb3VyY2VTdGF0dXMg
c3RhdHVzLCBOU0RhdGEgKikgeworICAgICAgICBtX25lRmlsdGVyU291cmNlU3RhdHVzID0gc3Rh
dHVzOworICAgICAgICBkZXJlZigpOworICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFs
KG5lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKICAgICB9XTsKKworICAgIC8vIEZJWE1FOiBXZSBo
YXZlIHRvIGJsb2NrIGhlcmUgc2luY2UgRG9jdW1lbnRMb2FkZXIgZXhwZWN0cyB0byBoYXZlIGEK
KyAgICAvLyBibG9ja2VkL25vdCBibG9ja2VkIGFuc3dlciBmcm9tIHRoZSBmaWx0ZXIgaW1tZWRp
YXRlbHkgYWZ0ZXIgY2FsbGluZworICAgIC8vIGFkZERhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3
YXkgdG8gbWFrZSB0aGlzIGFzeW5jaHJvbm91cy4KKyAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2Fp
dChuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKKyAgICBk
aXNwYXRjaF9yZWxlYXNlKG5lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKICNlbmRpZgogfQogICAg
IApAQCAtMTU4LDE5ICsxNzgsMTggQEAgdm9pZCBDb250ZW50RmlsdGVyOjpmaW5pc2hlZEFkZGlu
Z0RhdGEoKQogICAgICAgICByZXR1cm47CiAKICAgICByZWYoKTsKLSAgICBtX25lRmlsdGVyU291
cmNlU2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3JlX2NyZWF0ZSgwKTsKKyAgICBkaXNwYXRj
aF9zZW1hcGhvcmVfdCBuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSA9IGRpc3BhdGNoX3NlbWFwaG9y
ZV9jcmVhdGUoMCk7CiAgICAgW21fbmVGaWx0ZXJTb3VyY2UgZGF0YUNvbXBsZXRlV2l0aENvbXBs
ZXRpb25RdWV1ZTptX25lRmlsdGVyU291cmNlUXVldWUgY29tcGxldGlvbkhhbmRsZXI6XihORUZp
bHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGF0YSAqKSB7CiAgICAgICAgIG1fbmVGaWx0ZXJT
b3VyY2VTdGF0dXMgPSBzdGF0dXM7CiAgICAgICAgIGRlcmVmKCk7Ci0KLSAgICAgICAgZGlzcGF0
Y2hfc2VtYXBob3JlX3NpZ25hbChtX25lRmlsdGVyU291cmNlU2VtYXBob3JlKTsKKyAgICAgICAg
ZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CiAgICAg
fV07Ci0gICAgCisKICAgICAvLyBGSVhNRTogV2UgaGF2ZSB0byBibG9jayBoZXJlIHNpbmNlIERv
Y3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2ZSBhCiAgICAgLy8gYmxvY2tlZC9ub3QgYmxvY2tl
ZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGltbWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcKICAgICAv
LyBmaW5pc2hlZEFkZGluZ0RhdGEoKS4gV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gbWFrZSB0aGlz
IGFzeW5jaHJvbm91cy4KLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfd2FpdChtX25lRmlsdGVyU291
cmNlU2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwotICAgIGRpc3BhdGNoX3JlbGVh
c2UobV9uZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CisgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dh
aXQobmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7CisgICAg
ZGlzcGF0Y2hfcmVsZWFzZShuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CiAjZW5kaWYKIAogICAg
IEFTU0VSVCghbmVlZHNNb3JlRGF0YSgpKTsKQEAgLTE5NiwxMSArMjE1LDE1IEBAIGJvb2wgQ29u
dGVudEZpbHRlcjo6ZGlkQmxvY2tEYXRhKCkgY29uc3QKIAogY29uc3QgY2hhciogQ29udGVudEZp
bHRlcjo6Z2V0UmVwbGFjZW1lbnREYXRhKGludCYgbGVuZ3RoKSBjb25zdAogewotICAgIC8vIEZJ
WE1FOiBUaGlzIHdpbGwgcmV0dXJuIGEgbnVsbCBwb2ludGVyIHdpdGggbGVuZ3RoIDAgd2hlbiB1
c2luZwotICAgIC8vIE5FRmlsdGVyU291cmNlLiBXZSBuZWVkIHRvIHNob3cgYSBwcm9wZXIgZXJy
b3IgcGFnZSBpbnN0ZWFkLgogICAgIEFTU0VSVCghbmVlZHNNb3JlRGF0YSgpKTsKLSAgICBsZW5n
dGggPSBbbV9yZXBsYWNlbWVudERhdGEgbGVuZ3RoXTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgY2hhcio+KFttX3JlcGxhY2VtZW50RGF0YSBieXRlc10pOworCisgICAgaWYgKGRpZEJs
b2NrRGF0YSgpIHx8IG1fcmVwbGFjZW1lbnREYXRhKSB7CisgICAgICAgIGxlbmd0aCA9IFttX3Jl
cGxhY2VtZW50RGF0YSBsZW5ndGhdOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
Y2hhcio+KFttX3JlcGxhY2VtZW50RGF0YSBieXRlc10pOworICAgIH0KKworICAgIGxlbmd0aCA9
IFttX29yaWdpbmFsRGF0YSBsZW5ndGhdOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBj
aGFyKj4oW21fb3JpZ2luYWxEYXRhIGJ5dGVzXSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223217</attachid>
            <date>2014-02-05 00:42:01 -0800</date>
            <delta_ts>2014-02-05 15:44:06 -0800</delta_ts>
            <desc>Buffer incoming data in ContentFilter when using NEFilterSource</desc>
            <filename>bug-127979-20140205004200.patch</filename>
            <type>text/plain</type>
            <size>6641</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ExMzlhODlmMTI2MGI1
ZmQ5Mjg0NTcxNTVlMjdjN2RiMmY3NmZkZC4uOWIyMTNiODdlMzJlODM3NjliYTc2N2I0YzFkMjVh
MTFiMTA5ZjdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAyLTA0ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBCdWZmZXIgaW5jb21pbmcgZGF0
YSBpbiBDb250ZW50RmlsdGVyIHdoZW4gdXNpbmcgTkVGaWx0ZXJTb3VyY2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzk3OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkZpbHRlckV2YWx1YXRvciBi
dWZmZXJzIGluY29taW5nIGRhdGEgYW5kIHJldHVybnMgaXQgdG8gdXMgYXMKKyAgICAgICAgcmVw
bGFjZW1lbnQgZGF0YSBpZiB0aGUgbG9hZCBpcyBhbGxvd2VkLiBORUZpbHRlclNvdXJjZSBkb2Vz
bid0IGRvCisgICAgICAgIHRoaXMsIHNvIHdlIG5lZWQgdG8gZG8gb3VyIG93biBidWZmZXJpbmcu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6IEZvcndhcmQtZGVjbGFyZWQg
TlNNdXRhYmxlRGF0YSBhbmQgYWRkZWQKKyAgICAgICAgbV9vcmlnaW5hbERhdGEuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL0NvbnRlbnRGaWx0ZXJNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RmlsdGVyOjpDb250ZW50RmlsdGVyKTogQ29uc3RydWN0ZWQgbV9vcmlnaW5hbERhdGEK
KyAgICAgICAgd2l0aCBhbiBpbml0aWFsIGNhcGFjaXR5IChpZiB3ZSBrbm93IHRoZSBleHBlY3Rl
ZCBjb250ZW50IHNpemUpLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6YWRkRGF0
YSk6IEJ1ZmZlcmVkIGluY29taW5nIGRhdGEgaWYgd2UgYXJlCisgICAgICAgIHVzaW5nIE5FRmls
dGVyU291cmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRp
bmdEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50
RGF0YSk6IFJldHVybmVkIG1fb3JpZ2luYWxEYXRhCisgICAgICAgIGlmIHRoZSBsb2FkIHdhc24n
dCBibG9ja2VkLgorCiAyMDE0LTAyLTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFN0cmluZzo6Z2V0Q2hhcmFjdGVycyB0byBTdHJpbmc6
OmNoYXJhY3RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRG
aWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAppbmRleCAw
NDI1ZDI3M2I4ZGRjZGNjMjMyOTE1YWI3ZTgwMTYyNmM3M2NiZjhiLi42ODMxZGViNmUxMjc5MjZl
MTk5YzJmYWI3YWUxMzJjZGQzODU5MTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db250ZW50RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVu
dEZpbHRlci5oCkBAIC0zNyw2ICszNyw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
K09CSkNfQ0xBU1MgTlNNdXRhYmxlRGF0YTsKIE9CSkNfQ0xBU1MgV2ViRmlsdGVyRXZhbHVhdG9y
OwogI2VuZGlmCiAKQEAgLTgyLDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OmF0b21pYzxs
b25nPiBtX25lRmlsdGVyU291cmNlU3RhdHVzOwogICAgIFJldGFpblB0cjxORUZpbHRlclNvdXJj
ZT4gbV9uZUZpbHRlclNvdXJjZTsKICAgICBkaXNwYXRjaF9xdWV1ZV90IG1fbmVGaWx0ZXJTb3Vy
Y2VRdWV1ZTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfdCBtX25lRmlsdGVyU291cmNlU2VtYXBo
b3JlOworICAgIFJldGFpblB0cjxOU011dGFibGVEYXRhPiBtX29yaWdpbmFsRGF0YTsKICNlbmRp
ZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NvbnRlbnRG
aWx0ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1h
Yy5tbQppbmRleCAzYmJhNjc1M2U0Y2ExMzNmZDk3NmRiYjc0NjgxNTNlOGMyYjZhNDQ3Li5kMzI0
MmNkYzdjNTA3YjIwNmE1MTQwNWFhOGY4ZWMzM2FjNzg3MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ29udGVudEZpbHRlck1hYy5tbQpAQCAtMTAyLDYgKzEwMiwxMiBA
QCBDb250ZW50RmlsdGVyOjpDb250ZW50RmlsdGVyKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogICAgIGlmIChbZ2V0TkVGaWx0ZXJTb3VyY2VDbGFzcygpIGZpbHRlclJlcXVpcmVk
XSkgewogICAgICAgICBtX25lRmlsdGVyU291cmNlID0gYWRvcHROUyhbW2dldE5FRmlsdGVyU291
cmNlQ2xhc3MoKSBhbGxvY10gaW5pdFdpdGhVUkw6W3Jlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSBV
UkxdIGRpcmVjdGlvbjpORUZpbHRlclNvdXJjZURpcmVjdGlvbkluYm91bmQgc29ja2V0SWRlbnRp
ZmllcjowXSk7CiAgICAgICAgIG1fbmVGaWx0ZXJTb3VyY2VRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVl
X2NyZWF0ZSgiY29tLmFwcGxlLldlYkNvcmUuTkVGaWx0ZXJTb3VyY2VRdWV1ZSIsIERJU1BBVENI
X1FVRVVFX1NFUklBTCk7CisgICAgICAgIAorICAgICAgICBsb25nIGxvbmcgZXhwZWN0ZWRDb250
ZW50U2l6ZSA9IFtyZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
XTsKKyAgICAgICAgaWYgKGV4cGVjdGVkQ29udGVudFNpemUgPCAwIHx8IGV4cGVjdGVkQ29udGVu
dFNpemUgPiBOU1VJbnRlZ2VyTWF4KQorICAgICAgICAgICAgbV9vcmlnaW5hbERhdGEgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBtX29yaWdpbmFsRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0
V2l0aENhcGFjaXR5OihOU1VJbnRlZ2VyKWV4cGVjdGVkQ29udGVudFNpemVdKTsKICAgICB9CiAj
ZW5kaWYKIH0KQEAgLTEzNiwxMSArMTQyLDI1IEBAIHZvaWQgQ29udGVudEZpbHRlcjo6YWRkRGF0
YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogICAgIGlmICghbV9uZUZpbHRlclNvdXJj
ZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRklYTUU6IE5FRmlsdGVyU291cmNlIGRvZXNu
J3QgYnVmZmVyIGRhdGEgbGlrZSBXZWJGaWx0ZXJFdmFsdWF0b3IgZG9lcywKKyAgICAvLyBzbyB3
ZSBuZWVkIHRvIGRvIGl0IG91cnNlbHZlcyBzbyBnZXRSZXBsYWNlbWVudERhdGEoKSBjYW4gcmV0
dXJuIHRoZQorICAgIC8vIG9yaWdpbmFsIGJ5dGVzIGJhY2sgdG8gdGhlIGxvYWRlci4gV2Ugc2hv
dWxkIGZpbmQgYSB3YXkgdG8gcmVtb3ZlIHRoaXMKKyAgICAvLyBhZGRpdGlvbmFsIGNvcHkuCisg
ICAgW21fb3JpZ2luYWxEYXRhIGFwcGVuZEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF07CisKICAg
ICByZWYoKTsKLSAgICBbbV9uZUZpbHRlclNvdXJjZSBhZGREYXRhOltOU0RhdGEgZGF0YVdpdGhC
eXRlc05vQ29weToodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoIGZyZWVXaGVuRG9uZTpOT10gd2l0
aENvbXBsZXRpb25RdWV1ZTptX25lRmlsdGVyU291cmNlUXVldWUgY29tcGxldGlvbkhhbmRsZXI6
XihORUZpbHRlclNvdXJjZVN0YXR1cyBzdGF0dXMsIE5TRGF0YSAqKSB7Ci0gICAgICAgbV9uZUZp
bHRlclNvdXJjZVN0YXR1cyA9IHN0YXR1czsKLSAgICAgICBkZXJlZigpOworICAgIGRpc3BhdGNo
X3NlbWFwaG9yZV90IG5lRmlsdGVyU291cmNlU2VtYXBob3JlID0gZGlzcGF0Y2hfc2VtYXBob3Jl
X2NyZWF0ZSgwKTsKKyAgICBbbV9uZUZpbHRlclNvdXJjZSBhZGREYXRhOltOU0RhdGEgZGF0YVdp
dGhCeXRlczoodm9pZCopZGF0YSBsZW5ndGg6bGVuZ3RoXSB3aXRoQ29tcGxldGlvblF1ZXVlOm1f
bmVGaWx0ZXJTb3VyY2VRdWV1ZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5FRmlsdGVyU291cmNlU3Rh
dHVzIHN0YXR1cywgTlNEYXRhICopIHsKKyAgICAgICAgbV9uZUZpbHRlclNvdXJjZVN0YXR1cyA9
IHN0YXR1czsKKyAgICAgICAgZGVyZWYoKTsKKyAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3Np
Z25hbChuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CiAgICAgfV07CisKKyAgICAvLyBGSVhNRTog
V2UgaGF2ZSB0byBibG9jayBoZXJlIHNpbmNlIERvY3VtZW50TG9hZGVyIGV4cGVjdHMgdG8gaGF2
ZSBhCisgICAgLy8gYmxvY2tlZC9ub3QgYmxvY2tlZCBhbnN3ZXIgZnJvbSB0aGUgZmlsdGVyIGlt
bWVkaWF0ZWx5IGFmdGVyIGNhbGxpbmcKKyAgICAvLyBhZGREYXRhKCkuIFdlIHNob3VsZCBmaW5k
IGEgd2F5IHRvIG1ha2UgdGhpcyBhc3luY2hyb25vdXMuCisgICAgZGlzcGF0Y2hfc2VtYXBob3Jl
X3dhaXQobmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7Cisg
ICAgZGlzcGF0Y2hfcmVsZWFzZShuZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CiAjZW5kaWYKIH0K
ICAgICAKQEAgLTE1OCwxOSArMTc4LDE4IEBAIHZvaWQgQ29udGVudEZpbHRlcjo6ZmluaXNoZWRB
ZGRpbmdEYXRhKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcmVmKCk7Ci0gICAgbV9uZUZpbHRl
clNvdXJjZVNlbWFwaG9yZSA9IGRpc3BhdGNoX3NlbWFwaG9yZV9jcmVhdGUoMCk7CisgICAgZGlz
cGF0Y2hfc2VtYXBob3JlX3QgbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUgPSBkaXNwYXRjaF9zZW1h
cGhvcmVfY3JlYXRlKDApOwogICAgIFttX25lRmlsdGVyU291cmNlIGRhdGFDb21wbGV0ZVdpdGhD
b21wbGV0aW9uUXVldWU6bV9uZUZpbHRlclNvdXJjZVF1ZXVlIGNvbXBsZXRpb25IYW5kbGVyOl4o
TkVGaWx0ZXJTb3VyY2VTdGF0dXMgc3RhdHVzLCBOU0RhdGEgKikgewogICAgICAgICBtX25lRmls
dGVyU291cmNlU3RhdHVzID0gc3RhdHVzOwogICAgICAgICBkZXJlZigpOwotCi0gICAgICAgIGRp
c3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobV9uZUZpbHRlclNvdXJjZVNlbWFwaG9yZSk7CisgICAg
ICAgIGRpc3BhdGNoX3NlbWFwaG9yZV9zaWduYWwobmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUpOwog
ICAgIH1dOwotICAgIAorCiAgICAgLy8gRklYTUU6IFdlIGhhdmUgdG8gYmxvY2sgaGVyZSBzaW5j
ZSBEb2N1bWVudExvYWRlciBleHBlY3RzIHRvIGhhdmUgYQogICAgIC8vIGJsb2NrZWQvbm90IGJs
b2NrZWQgYW5zd2VyIGZyb20gdGhlIGZpbHRlciBpbW1lZGlhdGVseSBhZnRlciBjYWxsaW5nCiAg
ICAgLy8gZmluaXNoZWRBZGRpbmdEYXRhKCkuIFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIG1ha2Ug
dGhpcyBhc3luY2hyb25vdXMuCi0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3dhaXQobV9uZUZpbHRl
clNvdXJjZVNlbWFwaG9yZSwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKLSAgICBkaXNwYXRjaF9y
ZWxlYXNlKG1fbmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUpOworICAgIGRpc3BhdGNoX3NlbWFwaG9y
ZV93YWl0KG5lRmlsdGVyU291cmNlU2VtYXBob3JlLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOwor
ICAgIGRpc3BhdGNoX3JlbGVhc2UobmVGaWx0ZXJTb3VyY2VTZW1hcGhvcmUpOwogI2VuZGlmCiAK
ICAgICBBU1NFUlQoIW5lZWRzTW9yZURhdGEoKSk7CkBAIC0xOTYsMTEgKzIxNSwyMSBAQCBib29s
IENvbnRlbnRGaWx0ZXI6OmRpZEJsb2NrRGF0YSgpIGNvbnN0CiAKIGNvbnN0IGNoYXIqIENvbnRl
bnRGaWx0ZXI6OmdldFJlcGxhY2VtZW50RGF0YShpbnQmIGxlbmd0aCkgY29uc3QKIHsKLSAgICAv
LyBGSVhNRTogVGhpcyB3aWxsIHJldHVybiBhIG51bGwgcG9pbnRlciB3aXRoIGxlbmd0aCAwIHdo
ZW4gdXNpbmcKLSAgICAvLyBORUZpbHRlclNvdXJjZS4gV2UgbmVlZCB0byBzaG93IGEgcHJvcGVy
IGVycm9yIHBhZ2UgaW5zdGVhZC4KICAgICBBU1NFUlQoIW5lZWRzTW9yZURhdGEoKSk7Ci0gICAg
bGVuZ3RoID0gW21fcmVwbGFjZW1lbnREYXRhIGxlbmd0aF07Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IGNoYXIqPihbbV9yZXBsYWNlbWVudERhdGEgYnl0ZXNdKTsKKworICAgIGlmIChk
aWRCbG9ja0RhdGEoKSkgeworICAgICAgICBsZW5ndGggPSBbbV9yZXBsYWNlbWVudERhdGEgbGVu
Z3RoXTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihbbV9yZXBsYWNl
bWVudERhdGEgYnl0ZXNdKTsKKyAgICB9CisKKyAgICBOU0RhdGEgKm9yaWdpbmFsRGF0YSA9IG1f
cmVwbGFjZW1lbnREYXRhLmdldCgpOworI2lmIEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKKyAgICBp
ZiAoIW9yaWdpbmFsRGF0YSkKKyAgICAgICAgb3JpZ2luYWxEYXRhID0gbV9vcmlnaW5hbERhdGEu
Z2V0KCk7CisjZW5kaWYKKworICAgIGxlbmd0aCA9IFtvcmlnaW5hbERhdGEgbGVuZ3RoXTsKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KFtvcmlnaW5hbERhdGEgYnl0ZXNdKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="247222"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>