<?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>173145</bug_id>
          
          <creation_ts>2017-06-09 03:30:34 -0700</creation_ts>
          <short_desc>Add API::IconDatabaseClient</short_desc>
          <delta_ts>2017-06-12 10:19:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          
          <blocked>173146</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317324</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-09 03:30:34 -0700</bug_when>
    <thetext>We will use this instead of the C API in GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317326</commentid>
    <comment_count>1</comment_count>
      <attachid>312418</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-09 03:32:54 -0700</bug_when>
    <thetext>Created attachment 312418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317477</commentid>
    <comment_count>2</comment_count>
      <attachid>312418</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-09 10:24:40 -0700</bug_when>
    <thetext>Comment on attachment 312418
Patch

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

&gt; Source/WebKit2/UIProcess/WebIconDatabase.h:118
&gt; +    std::unique_ptr&lt;API::IconDatabaseClient&gt; m_client;

I think this is wrong.  Usually we have the API object own the WebKit namespace object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317882</commentid>
    <comment_count>3</comment_count>
      <attachid>312418</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-10 01:37:56 -0700</bug_when>
    <thetext>Comment on attachment 312418
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/WebIconDatabase.h:118
&gt;&gt; +    std::unique_ptr&lt;API::IconDatabaseClient&gt; m_client;
&gt; 
&gt; I think this is wrong.  Usually we have the API object own the WebKit namespace object.

Could you point to an example? I think I&apos;ve followed what all other objects do. 

 - WebPageProxy in WebKit namespace owns API::LoaderClient, API::PolicyClient, API::NavigationClient, and a lot more clients
 - WebProcessPool in WebKit namespace owns API::AutomationClient, API::DownloadClient, API::LegacyContextHistoryClient and API::CustomProtocolManagerClient

or did I misunderstand what you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318261</commentid>
    <comment_count>4</comment_count>
      <attachid>312418</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-12 09:59:28 -0700</bug_when>
    <thetext>Comment on attachment 312418
Patch

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

&gt; Source/WebKit2/UIProcess/API/APIIconDatabaseClient.h:2
&gt; + * Copyright (C) 2014 Apple Inc. All rights reserved.

2017

&gt;&gt;&gt; Source/WebKit2/UIProcess/WebIconDatabase.h:118
&gt;&gt;&gt; +    std::unique_ptr&lt;API::IconDatabaseClient&gt; m_client;
&gt;&gt; 
&gt;&gt; I think this is wrong.  Usually we have the API object own the WebKit namespace object.
&gt; 
&gt; Could you point to an example? I think I&apos;ve followed what all other objects do. 
&gt; 
&gt;  - WebPageProxy in WebKit namespace owns API::LoaderClient, API::PolicyClient, API::NavigationClient, and a lot more clients
&gt;  - WebProcessPool in WebKit namespace owns API::AutomationClient, API::DownloadClient, API::LegacyContextHistoryClient and API::CustomProtocolManagerClient
&gt; 
&gt; or did I misunderstand what you mean?

After talking to some people, I now think this is correct.  Sorry about the misunderstanding.  API namespace objects own WebKit namespace objects, but clients pass calls in the opposite direction.  This is correct.
We should us a UniqueRef here because it&apos;s never null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318264</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-12 10:04:47 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 312418 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312418&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/APIIconDatabaseClient.h:2
&gt; &gt; + * Copyright (C) 2014 Apple Inc. All rights reserved.
&gt; 
&gt; 2017
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/WebIconDatabase.h:118
&gt; &gt;&gt;&gt; +    std::unique_ptr&lt;API::IconDatabaseClient&gt; m_client;
&gt; &gt;&gt; 
&gt; &gt;&gt; I think this is wrong.  Usually we have the API object own the WebKit namespace object.
&gt; &gt; 
&gt; &gt; Could you point to an example? I think I&apos;ve followed what all other objects do. 
&gt; &gt; 
&gt; &gt;  - WebPageProxy in WebKit namespace owns API::LoaderClient, API::PolicyClient, API::NavigationClient, and a lot more clients
&gt; &gt;  - WebProcessPool in WebKit namespace owns API::AutomationClient, API::DownloadClient, API::LegacyContextHistoryClient and API::CustomProtocolManagerClient
&gt; &gt; 
&gt; &gt; or did I misunderstand what you mean?
&gt; 
&gt; After talking to some people, I now think this is correct.  Sorry about the
&gt; misunderstanding.

np, the whole thing is indeed confusing at first.

&gt;  API namespace objects own WebKit namespace objects, but
&gt; clients pass calls in the opposite direction.  This is correct.
&gt; We should us a UniqueRef here because it&apos;s never null.

Didn&apos;t know UniqueRef, do you want me to change this patch before landing to use UniqueRef, or better do that in a follow up and switch all clients to UniqueRef?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318267</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-12 10:11:50 -0700</bug_when>
    <thetext>Switching all clients to UniqueRef would be nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318268</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-12 10:13:40 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; Switching all clients to UniqueRef would be nice.

Then I&apos;ll keep this simple and switch all clients in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318272</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-06-12 10:19:35 -0700</bug_when>
    <thetext>Committed r218107: &lt;http://trac.webkit.org/changeset/218107&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312418</attachid>
            <date>2017-06-09 03:32:54 -0700</date>
            <delta_ts>2017-06-12 09:59:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-icon-database-client.diff</filename>
            <type>text/plain</type>
            <size>14612</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0MzUxODNiN2Q5NS4uZDMwOGQ0NDliNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzNiBAQAogMjAxNy0wNi0wOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgQWRkIEFQSTo6SWNvbkRhdGFiYXNlQ2xpZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMxNDUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJdCB3aWxsIGJlIHVzZWQg
YnkgR1RLKyBwb3J0IGluc3RlYWQgb2YgdGhlIEMgQVBJLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9BUElJY29uRGF0YWJhc2VDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SWNvbkRhdGFiYXNl
Q2xpZW50Ojp+SWNvbkRhdGFiYXNlQ2xpZW50KToKKyAgICAgICAgKEFQSTo6SWNvbkRhdGFiYXNl
Q2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAgIChBUEk6Okljb25EYXRh
YmFzZUNsaWVudDo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAoQVBJOjpJY29uRGF0YWJh
c2VDbGllbnQ6Omljb25EYXRhUmVhZHlGb3JQYWdlVVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV0tJY29uRGF0YWJhc2VTZXRJY29u
RGF0YWJhc2VDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2U6OldlYkljb25EYXRhYmFzZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkljb25EYXRhYmFzZTo6c2V0Q2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViSWNvbkRhdGFiYXNlOjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkljb25EYXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJY29uRGF0YWJhc2U6Om5vdGlmeUljb25EYXRhUmVhZHlGb3JQYWdlVVJMKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkljb25EYXRhYmFzZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkljb25E
YXRhYmFzZUNsaWVudDo6V2ViSWNvbkRhdGFiYXNlQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkljb25EYXRhYmFzZUNsaWVudDo6ZGlkUmVtb3ZlQWxsSWNvbnMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2VDbGllbnQ6Omljb25EYXRhUmVhZHlGb3JQYWdl
VVJMKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlQ2xpZW50Lmg6CisgICAg
ICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDE3LTA2LTA5ICBD
YXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBbR1RL
XSBSZW1vdmUgV0tJbnNwZWN0b3JDbGllbnRHdGsKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzE0MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0FQSUljb25EYXRhYmFzZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9BUElJY29uRGF0YWJhc2VDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNjM1NTc3NjczNDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUljb25EYXRhYmFzZUNsaWVudC5oCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViSWNvbkRhdGFiYXNlOworfQor
CituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgSWNvbkRhdGFiYXNlQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICB2aXJ0dWFsIH5JY29uRGF0YWJhc2VDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChXZWJLaXQ6OldlYkljb25EYXRhYmFzZSYsIGNvbnN0
IFdURjo6U3RyaW5nJikgeyB9OworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVBbGxJY29ucyhX
ZWJLaXQ6OldlYkljb25EYXRhYmFzZSYpIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgaWNvbkRhdGFS
ZWFkeUZvclBhZ2VVUkwoV2ViS2l0OjpXZWJJY29uRGF0YWJhc2UmLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIHsgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAKaW5kZXggMzkwMDY2MzFmNDIuLjAx
NmZkYzJkZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJ
Y29uRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0lj
b25EYXRhYmFzZS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElEYXRhLmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlLmgiCisjaW5j
bHVkZSAiV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAKQEAgLTM5LDcgKzQwLDcgQEAgV0tUeXBlSUQgV0tJY29uRGF0YWJhc2VHZXRUeXBlSUQoKQog
CiB2b2lkIFdLSWNvbkRhdGFiYXNlU2V0SWNvbkRhdGFiYXNlQ2xpZW50KFdLSWNvbkRhdGFiYXNl
UmVmIGljb25EYXRhYmFzZVJlZiwgY29uc3QgV0tJY29uRGF0YWJhc2VDbGllbnRCYXNlKiB3a0Ns
aWVudCkKIHsKLSAgICB0b0ltcGwoaWNvbkRhdGFiYXNlUmVmKS0+aW5pdGlhbGl6ZUljb25EYXRh
YmFzZUNsaWVudCh3a0NsaWVudCk7CisgICAgdG9JbXBsKGljb25EYXRhYmFzZVJlZiktPnNldENs
aWVudChzdGQ6Om1ha2VfdW5pcXVlPFdlYkljb25EYXRhYmFzZUNsaWVudD4od2tDbGllbnQpKTsK
IH0KIAogdm9pZCBXS0ljb25EYXRhYmFzZVJldGFpbkljb25Gb3JVUkwoV0tJY29uRGF0YWJhc2VS
ZWYgaWNvbkRhdGFiYXNlUmVmLCBXS1VSTFJlZiBwYWdlVVJMUmVmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlLmNwcAppbmRleCBjNjVlMzczMThjZS4uZTliYWJi
YWZmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuY3Bw
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViSWNv
bkRhdGFiYXNlLmgiCiAKKyNpbmNsdWRlICJBUElJY29uRGF0YWJhc2VDbGllbnQuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VzLmgiCkBAIC01Myw2ICs1NCw3IEBA
IFdlYkljb25EYXRhYmFzZTo6V2ViSWNvbkRhdGFiYXNlKFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCkKICAgICAsIG1fdXJsSW1wb3J0Q29tcGxldGVkKGZhbHNlKQogICAgICwgbV9kYXRhYmFz
ZUNsZWFudXBEaXNhYmxlZChmYWxzZSkKICAgICAsIG1fc2hvdWxkRGVyZWZXaGVuQXBwcm9wcmlh
dGUoZmFsc2UpCisgICAgLCBtX2NsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6SWNvbkRhdGFi
YXNlQ2xpZW50PigpKQogewogICAgIG1fcHJvY2Vzc1Bvb2wtPmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViSWNvbkRhdGFiYXNlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksICp0aGlzKTsK
IH0KQEAgLTIzMyw5ICsyMzUsMTIgQEAgdm9pZCBXZWJJY29uRGF0YWJhc2U6OmNsb3NlKCkKICAg
ICAgICAgbV9pY29uRGF0YWJhc2VJbXBsLT5jbG9zZSgpOwogfQogCi12b2lkIFdlYkljb25EYXRh
YmFzZTo6aW5pdGlhbGl6ZUljb25EYXRhYmFzZUNsaWVudChjb25zdCBXS0ljb25EYXRhYmFzZUNs
aWVudEJhc2UqIGNsaWVudCkKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlOjpzZXRDbGllbnQoc3RkOjp1
bmlxdWVfcHRyPEFQSTo6SWNvbkRhdGFiYXNlQ2xpZW50PiBjbGllbnQpCiB7Ci0gICAgbV9pY29u
RGF0YWJhc2VDbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworICAgIGlmICghY2xpZW50KQorICAg
ICAgICBtX2NsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8QVBJOjpJY29uRGF0YWJhc2VDbGllbnQ+
KCk7CisgICAgZWxzZQorICAgICAgICBtX2NsaWVudCA9IFdURk1vdmUoY2xpZW50KTsKIH0KIAog
Ly8gV2ViQ29yZTo6SWNvbkRhdGFiYXNlQ2xpZW50CkBAIC0yNTIsMTIgKzI1NywxMiBAQCB2b2lk
IFdlYkljb25EYXRhYmFzZTo6ZGlkSW1wb3J0SWNvbkRhdGFGb3JQYWdlVVJMKGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTCkKIAogdm9pZCBXZWJJY29uRGF0YWJhc2U6OmRpZENoYW5nZUljb25Gb3JQYWdl
VVJMKGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKLSAgICBtX2ljb25EYXRhYmFzZUNsaWVudC5k
aWRDaGFuZ2VJY29uRm9yUGFnZVVSTCh0aGlzLCBBUEk6OlVSTDo6Y3JlYXRlKHBhZ2VVUkwpLnB0
cigpKTsKKyAgICBtX2NsaWVudC0+ZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoKnRoaXMsIHBhZ2VV
UkwpOwogfQogCiB2b2lkIFdlYkljb25EYXRhYmFzZTo6ZGlkUmVtb3ZlQWxsSWNvbnMoKQogewot
ICAgIG1faWNvbkRhdGFiYXNlQ2xpZW50LmRpZFJlbW92ZUFsbEljb25zKHRoaXMpOworICAgIG1f
Y2xpZW50LT5kaWRSZW1vdmVBbGxJY29ucygqdGhpcyk7CiB9CiAKIHZvaWQgV2ViSWNvbkRhdGFi
YXNlOjpkaWRGaW5pc2hVUkxJbXBvcnQoKQpAQCAtMzA1LDcgKzMxMCw3IEBAIHZvaWQgV2ViSWNv
bkRhdGFiYXNlOjpkZXJlZldoZW5BcHByb3ByaWF0ZSgpCiAKIHZvaWQgV2ViSWNvbkRhdGFiYXNl
Ojpub3RpZnlJY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChjb25zdCBTdHJpbmcmIHBhZ2VVUkwpCiB7
Ci0gICAgbV9pY29uRGF0YWJhc2VDbGllbnQuaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwodGhpcywg
QVBJOjpVUkw6OmNyZWF0ZShwYWdlVVJMKS5wdHIoKSk7CisgICAgbV9jbGllbnQtPmljb25EYXRh
UmVhZHlGb3JQYWdlVVJMKCp0aGlzLCBwYWdlVVJMKTsKICAgICBkaWRDaGFuZ2VJY29uRm9yUGFn
ZVVSTChwYWdlVVJMKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkljb25EYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRh
YmFzZS5oCmluZGV4IGFiMTE5N2ZlNDU2Li4zYTU2MmJkODk0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJY29uRGF0YWJhc2UuaApAQCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3Bh
Y2UgQVBJIHsKIGNsYXNzIERhdGE7CitjbGFzcyBJY29uRGF0YWJhc2VDbGllbnQ7CiB9CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgwLDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2hl
Y2tJbnRlZ3JpdHlCZWZvcmVPcGVuaW5nKCk7CiAgICAgdm9pZCBjbG9zZSgpOwogCi0gICAgdm9p
ZCBpbml0aWFsaXplSWNvbkRhdGFiYXNlQ2xpZW50KGNvbnN0IFdLSWNvbkRhdGFiYXNlQ2xpZW50
QmFzZSopOworICAgIHZvaWQgc2V0Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okljb25EYXRh
YmFzZUNsaWVudD4pOwogCiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wp
OwogCkBAIC0xMTQsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRGVyZWZX
aGVuQXBwcm9wcmlhdGU7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgU3RyaW5nPiBtX3BlbmRpbmdM
b2FkRGVjaXNpb25VUkxNYXA7CiAKLSAgICBXZWJJY29uRGF0YWJhc2VDbGllbnQgbV9pY29uRGF0
YWJhc2VDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6SWNvbkRhdGFiYXNlQ2xpZW50
PiBtX2NsaWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcAppbmRleCA5NTU1YmMy
MzNiYy4uMWQ3MjA1MGM4ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJY29uRGF0YWJhc2VDbGllbnQuY3BwCkBAIC0zMiwyOCArMzIsMzMgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLXZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9y
UGFnZVVSTChXZWJJY29uRGF0YWJhc2UqIGljb25EYXRhYmFzZSwgQVBJOjpVUkwqIHVybCkKK1dl
Ykljb25EYXRhYmFzZUNsaWVudDo6V2ViSWNvbkRhdGFiYXNlQ2xpZW50KGNvbnN0IFdLSWNvbkRh
dGFiYXNlQ2xpZW50QmFzZSogd2tDbGllbnQpCit7CisgICAgaW5pdGlhbGl6ZSh3a0NsaWVudCk7
Cit9CisKK3ZvaWQgV2ViSWNvbkRhdGFiYXNlQ2xpZW50OjpkaWRDaGFuZ2VJY29uRm9yUGFnZVVS
TChXZWJJY29uRGF0YWJhc2UmIGljb25EYXRhYmFzZSwgY29uc3QgU3RyaW5nJiBwYWdlVVJMKQog
ewogICAgIGlmICghbV9jbGllbnQuZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBtX2NsaWVudC5kaWRDaGFuZ2VJY29uRm9yUGFnZVVSTCh0b0FQSShp
Y29uRGF0YWJhc2UpLCB0b0FQSSh1cmwpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisg
ICAgbV9jbGllbnQuZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwodG9BUEkoJmljb25EYXRhYmFzZSks
IHRvQVBJKEFQSTo6VVJMOjpjcmVhdGUocGFnZVVSTCkucHRyKCkpLCBtX2NsaWVudC5iYXNlLmNs
aWVudEluZm8pOwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZUNsaWVudDo6ZGlkUmVtb3ZlQWxs
SWNvbnMoV2ViSWNvbkRhdGFiYXNlKiBpY29uRGF0YWJhc2UpCit2b2lkIFdlYkljb25EYXRhYmFz
ZUNsaWVudDo6ZGlkUmVtb3ZlQWxsSWNvbnMoV2ViSWNvbkRhdGFiYXNlJiBpY29uRGF0YWJhc2Up
CiB7CiAgICAgaWYgKCFtX2NsaWVudC5kaWRSZW1vdmVBbGxJY29ucykKICAgICAgICAgcmV0dXJu
OwotICAgIAotICAgIG1fY2xpZW50LmRpZFJlbW92ZUFsbEljb25zKHRvQVBJKGljb25EYXRhYmFz
ZSksICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworCisgICAgbV9jbGllbnQuZGlkUmVtb3Zl
QWxsSWNvbnModG9BUEkoJmljb25EYXRhYmFzZSksICBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogfQogCi12b2lkIFdlYkljb25EYXRhYmFzZUNsaWVudDo6aWNvbkRhdGFSZWFkeUZvclBhZ2VV
UkwoV2ViSWNvbkRhdGFiYXNlKiBpY29uRGF0YWJhc2UsIEFQSTo6VVJMKiB1cmwpCit2b2lkIFdl
Ykljb25EYXRhYmFzZUNsaWVudDo6aWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoV2ViSWNvbkRhdGFi
YXNlJiBpY29uRGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgcGFnZVVSTCkKIHsKICAgICBpZiAoIW1f
Y2xpZW50Lmljb25EYXRhUmVhZHlGb3JQYWdlVVJMKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X2NsaWVudC5pY29uRGF0YVJlYWR5Rm9yUGFnZVVSTCh0b0FQSShpY29uRGF0YWJhc2UpLCB0b0FQ
SSh1cmwpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50Lmljb25EYXRh
UmVhZHlGb3JQYWdlVVJMKHRvQVBJKCZpY29uRGF0YWJhc2UpLCB0b0FQSShBUEk6OlVSTDo6Y3Jl
YXRlKHBhZ2VVUkwpLnB0cigpKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNv
bkRhdGFiYXNlQ2xpZW50LmgKaW5kZXggZmM3M2RjYmFjYzAuLmE2YWMxYThmYWUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSWNvbkRhdGFiYXNlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkljb25EYXRhYmFzZUNsaWVudC5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYkljb25EYXRhYmFzZUNsaWVudF9oCiAKICNpbmNsdWRl
ICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJBUElJY29uRGF0YWJhc2VDbGllbnQuaCIKICNpbmNs
dWRlICJXS0ljb25EYXRhYmFzZS5oIgogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTQwLDExICs0MSwx
MyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSWNvbkRhdGFiYXNlOwogCi1jbGFz
cyBXZWJJY29uRGF0YWJhc2VDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tJY29uRGF0YWJh
c2VDbGllbnRCYXNlPiB7CitjbGFzcyBXZWJJY29uRGF0YWJhc2VDbGllbnQgOiBwdWJsaWMgQVBJ
OjpJY29uRGF0YWJhc2VDbGllbnQsIEFQSTo6Q2xpZW50PFdLSWNvbkRhdGFiYXNlQ2xpZW50QmFz
ZT4gewogcHVibGljOgotICAgIHZvaWQgZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoV2ViSWNvbkRh
dGFiYXNlKiwgQVBJOjpVUkwqKTsKLSAgICB2b2lkIGRpZFJlbW92ZUFsbEljb25zKFdlYkljb25E
YXRhYmFzZSopOwotICAgIHZvaWQgaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoV2ViSWNvbkRhdGFi
YXNlKiwgQVBJOjpVUkwqKTsKKyAgICBleHBsaWNpdCBXZWJJY29uRGF0YWJhc2VDbGllbnQoY29u
c3QgV0tJY29uRGF0YWJhc2VDbGllbnRCYXNlKik7CisKKyAgICB2b2lkIGRpZENoYW5nZUljb25G
b3JQYWdlVVJMKFdlYkljb25EYXRhYmFzZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkUmVtb3ZlQWxsSWNvbnMoV2ViSWNvbkRhdGFiYXNlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChXZWJJY29uRGF0YWJhc2UmLCBjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZjYzNmNzky
OGJhLi42N2I3NTA2N2YwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIxNiw2ICsxMjE2LDcgQEAKIAkJN0E4MjFGNEUxRTJG
NjdBODAwNjA0NTc3IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlckNsaWVudC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBODIxRjREMUUyRjY3
OUUwMDYwNDU3NyAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQubW0gKi87IH07
CiAJCTdBODIxRjUwMUUyRjdBNzUwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdB
ODIxRjRGMUUyRjdBNUMwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJDbGllbnQu
aCAqLzsgfTsKIAkJN0FBRDE3NUYxRUE2QUY5OTAwM0IwODk0IC8qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZUNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0FBRDE3NUUxRUE2QUYzNzAwM0IwODk0IC8qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZUNvY29hLm1tICovOyB9OworCQk3QUI2RUE0NTFFRUFBRTM4MDAwMzdCMkIg
LyogQVBJSWNvbkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QUI2RUE0NDFFRUFBRTIzMDAwMzdCMkIgLyogQVBJSWNvbkRhdGFi
YXNlQ2xpZW50LmggKi87IH07CiAJCTdBRjIzNjIwMUU3OUEzRTQwMDQzOEEwNSAvKiBXZWJFcnJv
cnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FG
MjM2MUUxRTc5QTNCNDAwNDM4QTA1IC8qIFdlYkVycm9ycy5jcHAgKi87IH07CiAJCTdBRjIzNjIx
MUU3OUE0MDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdBRjIzNjFGMUU3OUEzRDgwMDQzOEEwNSAvKiBXZWJFcnJv
cnMuaCAqLzsgfTsKIAkJN0FGMjM2MjMxRTc5QTQ0NDAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0FGMjM2
MjIxRTc5QTQzMTAwNDM4QTA1IC8qIFdlYkVycm9yc0NvY29hLm1tICovOyB9OwpAQCAtMzUwMiw2
ICszNTAzLDcgQEAKIAkJN0E5Q0Q4QzExQzc3OTg0OTAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJN0E5Q0Q4QzIxQzc3OUFENjAwRDlGNkM3IC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdBQUQxNzVFMUVBNkFGMzcwMDNCMDg5NCAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3QUI2RUE0NDFFRUFBRTIzMDAwMzdCMkIgLyogQVBJSWNvbkRhdGFiYXNlQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUljb25EYXRhYmFzZUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QUYyMzYxRTFFNzlBM0I0MDA0MzhB
MDUgLyogV2ViRXJyb3JzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkVycm9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRjIzNjFGMUU3
OUEzRDgwMDQzOEEwNSAvKiBXZWJFcnJvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRXJyb3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdBRjIzNjIy
MUU3OUE0MzEwMDQzOEEwNSAvKiBXZWJFcnJvcnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkVycm9yc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjg2OSw2ICs2ODcxLDcgQEAKIAkJCQkwNzZFODg0RDFBMTNDQURGMDA1
RTkwRkMgLyogQVBJQ29udGV4dE1lbnVDbGllbnQuaCAqLywKIAkJCQk3QTgyMUY0RjFFMkY3QTVD
MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8sCiAJCQkJODM4
OTFCNjIxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8s
CisJCQkJN0FCNkVBNDQxRUVBQUUyMzAwMDM3QjJCIC8qIEFQSUljb25EYXRhYmFzZUNsaWVudC5o
ICovLAogCQkJCTFGN0QzNkMwMThEQTUxM0YwMEQ5RDY1OSAvKiBBUElEb3dubG9hZENsaWVudC5o
ICovLAogCQkJCTMxN0ZFN0MxMUM0ODdBNjYwMEEwQ0E4OSAvKiBBUElFeHBlcmltZW50YWxGZWF0
dXJlLmNwcCAqLywKIAkJCQkzMTdGRTdDMjFDNDg3QTY2MDBBMENBODkgLyogQVBJRXhwZXJpbWVu
dGFsRmVhdHVyZS5oICovLApAQCAtODg2Myw2ICs4ODY2LDcgQEAKIAkJCQkxQUI0NzRERTE4NEQ0
NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk3QUI2RUE0NTFFRUFBRTM4MDAwMzdCMkIgLyogQVBJSWNv
bkRhdGFiYXNlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3
RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm8uaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="333351"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>