<?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>28129</bug_id>
          
          <creation_ts>2009-08-09 07:04:47 -0700</creation_ts>
          <short_desc>[Haiku] Adding three new files to WebCore/platform/haiku.</short_desc>
          <delta_ts>2009-08-15 00:31:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Maxime Simon">simon.maxime</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>leavengood</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138499</commentid>
    <comment_count>0</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-09 07:04:47 -0700</bug_when>
    <thetext>Here is a patch to add these three files to WebCore:
WebCore/platform/haiku/LocalizedStringsHaiku.cpp
WebCore/platform/haiku/LoggingHaiku.cpp
WebCore/platform/haiku/RenderThemeHaiku.cpp

Regards,
Maxime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138500</commentid>
    <comment_count>1</comment_count>
      <attachid>34419</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-09 07:09:38 -0700</bug_when>
    <thetext>Created attachment 34419
Patch to add three new files to WebCore/platform/haiku/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138521</commentid>
    <comment_count>2</comment_count>
      <attachid>34419</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-09 08:26:29 -0700</bug_when>
    <thetext>Comment on attachment 34419
Patch to add three new files to WebCore/platform/haiku/

No need to do explicit string construction here:
 37     return String(&quot;Submit&quot;);

return &quot;Submit&quot;;
works just as well and is less to type/read.

 32 void InitializeLoggingChannelsIfNecessary()

probably needs a FIXME About how it really should read the logging config from a file.

I&apos;m surprised this method name violates modern webkit style:
 32 void InitializeLoggingChannelsIfNecessary()
maybe it&apos;s just so old...?

Are you sure this is right?
 151     fontDescription.setIsAbsoluteSize(true);
 152     fontDescription.setGenericFamily(FontDescription::NoFamily);
 153     fontDescription.setSpecifiedSize(static_cast&lt;int&gt;(be_plain_font-&gt;Size()));
That seems wrong.  last-resort fallback fonts are determined by font family.  I also would have expect you to set a font face name there.
Also, that&apos;s completely ignoring the various CSS values passed in...

Why create a new theme for each page?
PassRefPtr&lt;RenderTheme&gt; RenderTheme::themeForPage(Page* page)
 180 {
 181     if (page)
 182         return RenderThemeHaiku::create();
 183 
 184     static RenderTheme* fallback = RenderThemeHaiku::create().releaseRef();
 185     return fallback;
 186 }
You don&apos;t seem to store any state on the themes.  SEems all pages should just use the &quot;fallback&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138981</commentid>
    <comment_count>3</comment_count>
      <attachid>34563</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-11 09:04:14 -0700</bug_when>
    <thetext>Created attachment 34563
Patch to add three new files to WebCore/platform/haiku/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139398</commentid>
    <comment_count>4</comment_count>
      <attachid>34563</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 10:29:45 -0700</bug_when>
    <thetext>Comment on attachment 34563
Patch to add three new files to WebCore/platform/haiku/

None of those virtual methods should be inline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139809</commentid>
    <comment_count>5</comment_count>
      <attachid>34734</attachid>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-13 05:29:47 -0700</bug_when>
    <thetext>Created attachment 34734
Adding two files: LocalizedString and Logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139811</commentid>
    <comment_count>6</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-13 05:31:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=34734) [details]
&gt; Adding two files: LocalizedString and Logging.

As RenderTheme will require more code (at least a header), I will open another bug for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140395</commentid>
    <comment_count>7</comment_count>
      <attachid>34734</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-14 17:31:26 -0700</bug_when>
    <thetext>Comment on attachment 34734
Adding two files: LocalizedString and Logging.

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140402</commentid>
    <comment_count>8</comment_count>
      <attachid>34734</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-14 17:58:32 -0700</bug_when>
    <thetext>Comment on attachment 34734
Adding two files: LocalizedString and Logging.

Rejecting patch 34734 from commit-queue.  This patch will require manual commit.

[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;] failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140429</commentid>
    <comment_count>9</comment_count>
    <who name="Maxime Simon">simon.maxime</who>
    <bug_when>2009-08-14 22:49:06 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 34734 [details])
&gt; Rejecting patch 34734 from commit-queue.  This patch will require manual
&gt; commit.
&gt; 
&gt; [&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;,
&gt; &apos;--exit-after-n-failures=1&apos;] failed with exit code 1

Uh? How can &quot;run-webkit-tests&quot; fail while we haven&apos;t changed it to test the Haiku port? And even more when the patch didn&apos;t touch other parts of WebKit. May it be another &quot;commit&quot; which makes the tests to fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140442</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-15 00:27:26 -0700</bug_when>
    <thetext>Could be a flaky test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140445</commentid>
    <comment_count>11</comment_count>
      <attachid>34734</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-15 00:31:19 -0700</bug_when>
    <thetext>Comment on attachment 34734
Adding two files: LocalizedString and Logging.

Clearing flags on attachment: 34734

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	A	WebCore/platform/haiku/LocalizedStringsHaiku.cpp
	A	WebCore/platform/haiku/LoggingHaiku.cpp
Committed r47317
	M	WebCore/ChangeLog
	A	WebCore/platform/haiku/LocalizedStringsHaiku.cpp
	A	WebCore/platform/haiku/LoggingHaiku.cpp
r47317 = c207727851d56028b4bb671ac9b358fc2ff4f1cb (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/47317</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140446</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-08-15 00:31:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34419</attachid>
            <date>2009-08-09 07:09:38 -0700</date>
            <delta_ts>2009-08-11 09:04:14 -0700</delta_ts>
            <desc>Patch to add three new files to WebCore/platform/haiku/</desc>
            <filename>Adding-three-new-files-to-WebCore-platform-haiku-Loc.patch</filename>
            <type>text/plain</type>
            <size>20460</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">RnJvbSAyZDAwOGRiMDBhNDE2MjRmODYwM2I5NzY3M2RjMzg2MmJmOTc5NTk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+
CkRhdGU6IFN1biwgOSBBdWcgMjAwOSAxNjowNzoyOSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEFk
ZGluZyB0aHJlZSBuZXcgZmlsZXMgdG8gV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS86IExvY2FsaXpl
ZFN0cmluZ3NIYWlrdS5jcHAsIExvZ2dpbmdIYWlrdS5jcHAgYW5kIFJlbmRlclRoZW1lSGFpa3Uu
Y3BwCgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgOTMgKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NI
YWlrdS5jcHAgfCAgMzQ2ICsrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvTG9nZ2luZ0hhaWt1LmNwcCAgICAgICAgICB8ICAgNDcgKysrCiBXZWJDb3JlL3BsYXRm
b3JtL2hhaWt1L1JlbmRlclRoZW1lSGFpa3UuY3BwICAgICAgfCAgMTg5ICsrKysrKysrKysrKwog
NCBmaWxlcyBjaGFuZ2VkLCA2NzUgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlr
dS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdI
YWlrdS5jcHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1JlbmRl
clRoZW1lSGFpa3UuY3BwCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCAzMWJhMDQ4Li40NGMzNTg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDA5LTA4
LTA5ICBNYXhpbWUgU2ltb24gIDxzaW1vbi5tYXhpbWVAZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtIYWlrdV0gQWRkaW5nIHRocmVl
IG5ldyBmaWxlcyB0byBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1OgorICAgICAgICBMb2NhbGl6ZWRT
dHJpbmdzSGFpa3UuY3BwLCBMb2dnaW5nSGFpa3UuY3BwIGFuZCBSZW5kZXJUaGVtZUhhaWt1LmNw
cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjgxMjkK
KworICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAg
ICAgKFdlYkNvcmU6OmlucHV0RWxlbWVudEFsdFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVz
ZXRCdXR0b25EZWZhdWx0TGFiZWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdExhbmd1YWdl
KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaGFibGVJbmRleEludHJvZHVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzayk6CisgICAgICAgIChX
ZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdHb0ZvcndhcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U3RvcCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ0lnbm9yZVNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRh
Z0xlYXJuU3BlbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2Vh
cmNoV2ViKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0xvb2tVcEluRGlj
dGlvbmFyeSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluayk6
CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVudSk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbCk6CisgICAgICAg
IChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmdXaGlsZVR5cGluZyk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja0dyYW1tYXJXaXRoU3BlbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRm9udE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnVW5kZXJsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVj
dGlvbk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnRGVmYXVsdERp
cmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdo
dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpzZWFyY2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCk6CisgICAgICAgIChXZWJDb3Jl
OjpzZWFyY2hNZW51Q2xlYXJSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6
dW5rbm93bkZpbGVTaXplVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWFdlYkFyZWFUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFYTGlua1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhMaXN0
TWFya2VyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWEltYWdlTWFwVGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpBWEhlYWRpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVGl0bGUp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhCdXR0b25BY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYVGV4dEZpZWxkQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFJhZGlvQnV0
dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWENoZWNrZWRDaGVja0JveEFjdGlv
blZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIp
OgorICAgICAgICAoV2ViQ29yZTo6QVhMaW5rQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3Jl
OjpBWERlZmluaXRpb25MaXN0VGVybVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0
aW9uTGlzdERlZmluaXRpb25UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2dnaW5n
SGFpa3UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkluaXRpYWxpemVMb2dnaW5nQ2hh
bm5lbHNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvUmVuZGVyVGhlbWVI
YWlrdS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6UmVu
ZGVyVGhlbWVIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1Ojp+UmVu
ZGVyVGhlbWVIYWlrdSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpzdXBw
b3J0c0hvdmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSGFpa3U6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpwbGF0Zm9ybVRleHRTZWFyY2hI
aWdobGlnaHRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZUhhaWt1OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSGFpa3U6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSGFp
a3U6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpwYWludFJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSGFpa3U6OmFkanVzdE1lbnVMaXN0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVIYWlrdTo6cGFpbnRNZW51TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjp0aGVt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpzeXN0ZW1Gb250KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSGFpa3U6OnNldENoZWNrYm94U2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpzZXRSYWRpb1NpemUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSk6CisKIDIwMDktMDgtMDggIERpbWl0
cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXpl
ZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmlu
Z3NIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFjYTA3Mgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5n
c0hhaWt1LmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBN
YXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+CisgKgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCJTdWJtaXQiKTsKK30KKworU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKQor
eworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJSZXNldCIpOworfQorCitTdHJpbmcgZGVmYXVs
dExhbmd1YWdlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJlbiIpOworfQorCitTdHJpbmcgc2Vh
cmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJTZWFyY2hh
YmxlIEluZGV4Iik7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nKCJDaG9vc2UgRmlsZSIpOworfQorCitTdHJpbmcgZmlsZUJ1dHRv
bk5vRmlsZVNlbGVjdGVkTGFiZWwoKQoreworICAgIHJldHVybiBTdHJpbmcoIk5vIGZpbGUgc2Vs
ZWN0ZWQiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5k
b3coKQoreworICAgIHJldHVybiBTdHJpbmcoIk9wZW4gaW4gbmV3IHRhYiIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKK3sKKyAgICByZXR1cm4g
U3RyaW5nKCJEb3dubG9hZCBsaW5rIHRvIGRpc2siKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNvcHkg
bGluayB0byBjbGlwYm9hcmQiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5J
bWFnZUluTmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJPcGVuIGltYWdlIGluIG5l
dyB3aW5kb3ciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VU
b0Rpc2soKQoreworICAgIHJldHVybiBTdHJpbmcoIkRvd25sb2FkIGltYWdlIHRvIGRpc2siKTsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nKCJDb3B5IGltYWdlIHRvIGNsaXBib2FyZCIpOworfQorCitTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQoreworICAgIHJldHVy
biBTdHJpbmcoIk9wZW4gZnJhbWUgaW4gbmV3IHdpbmRvdyIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weSgpCit7CisgICAgcmV0dXJuIFN0cmluZygiQ29weSIpOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJH
byBiYWNrIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQorewor
ICAgIHJldHVybiBTdHJpbmcoIkdvIGZvcndhcmQiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1N0b3AoKQoreworICAgIHJldHVybiBTdHJpbmcoIlN0b3AiKTsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ1JlbG9hZCgpCit7CisgICAgcmV0dXJuIFN0cmluZygiUmVsb2Fk
Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDdXQoKQoreworICAgIHJldHVybiBT
dHJpbmcoIkN1dCIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFzdGUoKQorewor
ICAgIHJldHVybiBTdHJpbmcoIlBhc3RlIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdOb0d1ZXNzZXNGb3VuZCgpCit7CisgICAgcmV0dXJuIFN0cmluZygiTm8gZ3Vlc3NlcyBmb3Vu
ZCIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQorewor
ICAgIHJldHVybiBTdHJpbmcoIklnbm9yZSBzcGVsbGluZyIpOworfQorCitTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnTGVhcm5TcGVsbGluZygpCit7CisgICAgcmV0dXJuIFN0cmluZygiTGVhcm4g
c3BlbGxpbmciKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCit7
CisgICAgcmV0dXJuIFN0cmluZygiU2VhcmNoIHdlYiIpOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnTG9va1VwSW5EaWN0aW9uYXJ5KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJMb29r
dXAgaW4gZGljdGlvbmFyeSIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3Blbkxp
bmsoKQoreworICAgIHJldHVybiBTdHJpbmcoIk9wZW4gbGluayIpOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCit7CisgICAgcmV0dXJuIFN0cmluZygiSWdu
b3JlIGdyYW1tYXIiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NwZWxsaW5nTWVu
dSgpCit7CisgICAgcmV0dXJuIFN0cmluZygiU3BlbGxpbmcgbWVudSIpOworfQorCitTdHJpbmcg
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoYm9vbCBzaG93KQoreworICAgIHJl
dHVybiBTdHJpbmcoIlNob3cgc3BlbGxpbmcgcGFuZWwiKTsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0NoZWNrU3BlbGxpbmcoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNoZWNrIHNw
ZWxsaW5nIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hp
bGVUeXBpbmcoKQoreworICAgIHJldHVybiBTdHJpbmcoIkNoZWNrIHNwZWxsaW5nIHdoaWxlIHR5
cGluZyIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNw
ZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJDaGVjayBmb3IgZ3JhbW1hciB3aXRoIHNw
ZWxsaW5nIik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdGb250TWVudSgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygiRm9udCBtZW51Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJCb2xkIik7Cit9CisKK1N0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQoreworICAgIHJldHVybiBTdHJpbmcoIkl0YWxpYyIp
OworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKK3sKKyAgICByZXR1
cm4gU3RyaW5nKCJVbmRlcmxpbmUiKTsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091
dGxpbmUoKQoreworICAgIHJldHVybiBTdHJpbmcoIk91dGxpbmUiKTsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCJXcml0aW5nIGRpcmVjdGlvbiBtZW51Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJEZWZhdWx0IGRp
cmVjdGlvbiIpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQor
eworICAgIHJldHVybiBTdHJpbmcoIkxlZnQgdG8gcmlnaHQiKTsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1JpZ2h0VG9MZWZ0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJSaWdodCB0
byBsZWZ0Iik7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgp
Cit7CisgICAgcmV0dXJuIFN0cmluZygiSW5zcGVjdCIpOworfQorCitTdHJpbmcgc2VhcmNoTWVu
dU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJObyByZWNlbnQg
dGV4dCBzZWFyY2hlcyIpOworfQorCitTdHJpbmcgc2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4
dCgpCit7CisgICAgcmV0dXJuIFN0cmluZygiUmVjZW50IHRleHQgc2VhcmNoZXMiKTsKK30KKwor
U3RyaW5nIHNlYXJjaE1lbnVDbGVhclJlY2VudFNlYXJjaGVzVGV4dCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygiQ2xlYXIgcmVjZW50IHRleHQgc2VhcmNoZXMiKTsKK30KKworU3RyaW5nIHVua25v
d25GaWxlU2l6ZVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmcoIlVua25vd24iKTsKK30KKwor
U3RyaW5nIEFYV2ViQXJlYVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIEFYTGlua1RleHQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
TGlzdE1hcmtlclRleHQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFY
SW1hZ2VNYXBUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWEhl
YWRpbmdUZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBpbWFnZVRp
dGxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAg
cmV0dXJuIFN0cmluZyhmaWxlbmFtZSk7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdU
ZXh0RGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
QVhCdXR0b25BY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
U3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBBWENoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKQoreworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpbmtBY3Rpb25WZXJiKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0VGVy
bVRleHQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYRGVmaW5pdGlv
bkxpc3REZWZpbml0aW9uVGV4dCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3Uv
TG9nZ2luZ0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9nZ2luZ0hhaWt1LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjVkMTQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2dnaW5nSGFpa3UuY3BwCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgTWF4aW1lIFNpbW9uIDxzaW1vbi5t
YXhpbWVAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TG9nZ2luZy5oIgorCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBJbml0aWFsaXplTG9n
Z2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKQoreworICAgIHN0YXRpYyBib29sIGhhdmVJbml0aWFs
aXplZExvZ2dpbmdDaGFubmVscyA9IGZhbHNlOworICAgIGlmIChoYXZlSW5pdGlhbGl6ZWRMb2dn
aW5nQ2hhbm5lbHMpCisgICAgICAgIHJldHVybjsKKworICAgIGhhdmVJbml0aWFsaXplZExvZ2dp
bmdDaGFubmVscyA9IHRydWU7CisKKyAgICBMb2dFdmVudHMuc3RhdGUgPSBXVEZMb2dDaGFubmVs
T247CisgICAgTG9nRnJhbWVzLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworICAgIExvZ0xvYWRp
bmcuc3RhdGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgTG9nUGxhdGZvcm1MZWFrcy5zdGF0ZSA9
IFdURkxvZ0NoYW5uZWxPbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1JlbmRlclRoZW1lSGFpa3UuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9SZW5kZXJUaGVtZUhhaWt1LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi45NDRhYzUwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9SZW5kZXJUaGVtZUhhaWt1LmNwcApAQCAtMCwwICsxLDE4OSBAQAorLyoKKyAq
IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgcHJvamVjdC4KKyAqCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CisgKiAgICAgICAgICAg
ICAgIDIwMDYgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgUnlhbiBMZWF2ZW5nb29kIDxsZWF2ZW5nb29kQGdtYWlsLmNvbT4KKyAq
CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIx
MTEtMTMwNywgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDxDb250
cm9sTG9vay5oPgorI2luY2x1ZGUgPEZvbnQuaD4KKyNpbmNsdWRlIDxWaWV3Lmg+CisKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBGSVhNRTogSSBhbSBub3Qgc3VyZSB3aHkgc28gbWFueSBt
ZXRob2RzIGFyZSBpbmxpbmUgaGVyZS4gVGhpcyB3YXMgY29waWVkIGZyb20gdGhlCisvLyBTeWxs
YWJsZSBwb3J0LiBJdCBzaG91bGQgcHJvYmFibHkgYWxsIGJlIHNjcmFwcGVkLgorY2xhc3MgUmVu
ZGVyVGhlbWVIYWlrdSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CitwdWJsaWM6CisgICAgUmVuZGVy
VGhlbWVIYWlrdSgpIDogUmVuZGVyVGhlbWUoKSB7IH0KKyAgICB+UmVuZGVyVGhlbWVIYWlrdSgp
IHsgfQorCisgICAgLy8gQSBtZXRob2QgYXNraW5nIGlmIHRoZSB0aGVtZSdzIGNvbnRyb2xzIGFj
dHVhbGx5IGNhcmUgYWJvdXQgcmVkcmF3aW5nIHdoZW4gaG92ZXJlZC4KKyAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNIb3Zlcihjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVu
ZGVyVGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJl
bmRlclRoZW1lSGFpa3UoKSk7CisgICAgfQorCisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybVRl
eHRTZWFyY2hIaWdobGlnaHRDb2xvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gQ29s
b3IodWlfY29sb3IoQl9NRU5VX1NFTEVDVEVEX0JBQ0tHUk9VTkRfQ09MT1IpKTsKKyAgICB9CisK
KyAgICAvLyBUaGUgcGxhdGZvcm0gc2VsZWN0aW9uIGNvbG9yLgorICAgIENvbG9yIHBsYXRmb3Jt
QWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBDb2xvcih1aV9jb2xvcihCX0NPTlRST0xfSElHSExJR0hUX0NPTE9SKSk7CisgICAgfQor
CisgICAgQ29sb3IgcGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gQ29sb3IodWlfY29sb3IoQl9DT05UUk9MX0hJR0hM
SUdIVF9DT0xPUikpOworICAgIH0KKworICAgIHZpcnR1YWwgQ29sb3IgcGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIENv
bG9yKHVpX2NvbG9yKEJfQ09OVFJPTF9URVhUX0NPTE9SKSk7CisgICAgfQorCisgICAgdmlydHVh
bCBDb2xvciBwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBDb2xvcih1aV9jb2xvcihCX0NPTlRST0xfVEVYVF9DT0xP
UikpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBwYWludENoZWNrYm94KFJlbmRlck9iamVj
dCogb2JqZWN0LCBjb25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50
UmVjdCYgaW50UmVjdCkKKyAgICB7CisgICAgICAgIGlmIChpbmZvLmNvbnRleHQtPnBhaW50aW5n
RGlzYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZ2JfY29s
b3IgYmFzZSA9IHVpX2NvbG9yKEJfUEFORUxfQkFDS0dST1VORF9DT0xPUik7CisgICAgICAgIEJS
ZWN0IHJlY3QgPSBpbnRSZWN0OworICAgICAgICBCVmlldyogdmlldyA9IGluZm8uY29udGV4dC0+
cGxhdGZvcm1Db250ZXh0KCk7CisKKyAgICAgICAgaWYgKCFiZV9jb250cm9sX2xvb2spCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYmVfY29udHJvbF9sb29rLT5EcmF3Q2hl
Y2tCb3godmlldywgcmVjdCwgcmVjdCwgYmFzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBzZXRDaGVja2JveFNpemUoUmVuZGVyU3R5bGUqKSBjb25z
dDsKKworICAgIHZpcnR1YWwgYm9vbCBwYWludFJhZGlvKFJlbmRlck9iamVjdCogb2JqZWN0LCBj
b25zdCBSZW5kZXJPYmplY3Q6OlBhaW50SW5mbyYgaW5mbywgY29uc3QgSW50UmVjdCYgaW50UmVj
dCkKKyAgICB7CisgICAgICAgIGlmIChpbmZvLmNvbnRleHQtPnBhaW50aW5nRGlzYWJsZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZ2JfY29sb3IgYmFzZSA9IHVp
X2NvbG9yKEJfUEFORUxfQkFDS0dST1VORF9DT0xPUik7CisgICAgICAgIEJSZWN0IHJlY3QgPSBp
bnRSZWN0OworICAgICAgICBCVmlldyogdmlldyA9IGluZm8uY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCk7CisKKyAgICAgICAgaWYgKCFiZV9jb250cm9sX2xvb2spCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICAgICAgYmVfY29udHJvbF9sb29rLT5EcmF3UmFkaW9CdXR0b24odmll
dywgcmVjdCwgcmVjdCwgYmFzZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBzZXRSYWRpb1NpemUoUmVuZGVyU3R5bGUqKSBjb25zdDsKKworICAgIHZv
aWQgYWRqdXN0TWVudUxpc3RTdHlsZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgUmVuZGVy
U3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAorICAgIHsKKyAgICAgICAgLyog
TGVhdmUgc29tZSBzcGFjZSBmb3IgdGhlIGFycm93ICovCisgICAgICAgIHN0eWxlLT5zZXRQYWRk
aW5nUmlnaHQoTGVuZ3RoKDIyLCBGaXhlZCkpOworICAgICAgICBjb25zdCBpbnQgbWluSGVpZ2h0
ID0gMjA7CisgICAgICAgIHN0eWxlLT5zZXRNaW5IZWlnaHQoTGVuZ3RoKG1pbkhlaWdodCwgRml4
ZWQpKTsKKyAgICB9CisKKyAgICBib29sIHBhaW50TWVudUxpc3QoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFJlbmRlck9iamVjdDo6UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQorICAgIHsKKyAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzeXN0ZW1Gb250KGludCBwcm9wSWQsIEZv
bnREZXNjcmlwdGlvbiYpIGNvbnN0OworCitwcml2YXRlOgorICAgIHZvaWQgYWRkSW50cmluc2lj
TWFyZ2lucyhSZW5kZXJTdHlsZSopIGNvbnN0OworICAgIHZvaWQgY2xvc2UoKTsKKworICAgIGJv
b2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OworfTsKKworUmVuZGVyVGhlbWUqIHRoZW1lKCkKK3sK
KyAgICBzdGF0aWMgUmVuZGVyVGhlbWVIYWlrdSByZW5kZXJUaGVtZTsKKyAgICByZXR1cm4gJnJl
bmRlclRoZW1lOworfQorCit2b2lkIFJlbmRlclRoZW1lSGFpa3U6OnN5c3RlbUZvbnQoaW50IHBy
b3BJZCwgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0Cit7CisgICAgZm9u
dERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHRydWUpOworICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6Tm9GYW1pbHkpOworICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKHN0YXRpY19jYXN0PGludD4oYmVfcGxhaW5fZm9u
dC0+U2l6ZSgpKSk7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVIYWlrdTo6c2V0Q2hlY2tib3hTaXpl
KFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKK3sKKyAgICBpbnQgc2l6ZSA9IDEwOworCisgICAg
Ly8gSWYgdGhlIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGJvdGggc3BlY2lmaWVkLCB0aGVuIHdlIGhh
dmUgbm90aGluZyB0byBkby4KKyAgICBpZiAoIXN0eWxlLT53aWR0aCgpLmlzSW50cmluc2ljT3JB
dXRvKCkgJiYgIXN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gRklYTUU6IEEgaGFyZC1jb2RlZCBzaXplIG9mICdzaXplJyBpcyB1c2VkLiBUaGlzIGlz
IHdyb25nIGJ1dCBuZWNlc3NhcnkgZm9yIG5vdy4KKworICAgIGlmIChzdHlsZS0+d2lkdGgoKS5p
c0ludHJpbnNpY09yQXV0bygpKQorICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHNpemUs
IEZpeGVkKSk7CisKKyAgICBpZiAoc3R5bGUtPmhlaWdodCgpLmlzQXV0bygpKQorICAgICAgICBz
dHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzaXplLCBGaXhlZCkpOworfQorCit2b2lkIFJlbmRlclRo
ZW1lSGFpa3U6OnNldFJhZGlvU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpIGNvbnN0Cit7CisgICAg
Ly8gVGhpcyBpcyB0aGUgc2FtZSBhcyBjaGVja2JveGVzLgorICAgIHNldENoZWNrYm94U2l6ZShz
dHlsZSk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lOjp0aGVtZUZv
clBhZ2UoUGFnZSogcGFnZSkKK3sKKyAgICBpZiAocGFnZSkKKyAgICAgICAgcmV0dXJuIFJlbmRl
clRoZW1lSGFpa3U6OmNyZWF0ZSgpOworCisgICAgc3RhdGljIFJlbmRlclRoZW1lKiBmYWxsYmFj
ayA9IFJlbmRlclRoZW1lSGFpa3U6OmNyZWF0ZSgpLnJlbGVhc2VSZWYoKTsKKyAgICByZXR1cm4g
ZmFsbGJhY2s7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwotLSAKMS42LjMuMgoK
</data>
<flag name="review"
          id="18597"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34563</attachid>
            <date>2009-08-11 09:04:14 -0700</date>
            <delta_ts>2009-08-13 05:29:26 -0700</delta_ts>
            <desc>Patch to add three new files to WebCore/platform/haiku/</desc>
            <filename>Adding-three-new-files-to-WebCore-platform-haiku.patch</filename>
            <type>text/plain</type>
            <size>19870</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">RnJvbSA0YmVjOGFhOTg2YTZjMGNlZDczZjUwYzVmNjAwODJhOTg2M2MyYzY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+
CkRhdGU6IFR1ZSwgMTEgQXVnIDIwMDkgMTg6MDI6MTUgKzAyMDAKU3ViamVjdDogW1BBVENIXSBB
ZGRpbmcgdGhyZWUgbmV3IGZpbGVzIHRvIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvLgoKLS0tCiBX
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkzICsr
KysrKwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwIHwg
IDM0NiArKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvZ2dp
bmdIYWlrdS5jcHAgICAgICAgICAgfCAgIDQ4ICsrKwogV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9S
ZW5kZXJUaGVtZUhhaWt1LmNwcCAgICAgIHwgIDE4NCArKysrKysrKysrKysKIDQgZmlsZXMgY2hh
bmdlZCwgNjcxIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2
NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCiBjcmVh
dGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2dnaW5nSGFpa3UuY3BwCiBj
cmVhdGUgbW9kZSAxMDA2NDQgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9SZW5kZXJUaGVtZUhhaWt1
LmNwcAoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggZjAyNTVjMy4uOGJjMjM4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAwOS0wOC0xMSAgTWF4aW1l
IFNpbW9uICA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbSGFpa3VdIEFkZGluZyB0aHJlZSBuZXcgZmlsZXMg
dG8gV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdToKKyAgICAgICAgTG9jYWxpemVkU3RyaW5nc0hhaWt1
LmNwcCwgTG9nZ2luZ0hhaWt1LmNwcCBhbmQgUmVuZGVyVGhlbWVIYWlrdS5jcHAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MTI5CisKKyAgICAgICAg
KiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3Jl
OjppbnB1dEVsZW1lbnRBbHRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVm
YXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRyb2R1Y3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0
dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2spOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29G
b3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVu
dUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdOb0d1
ZXNzZXNGb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVT
cGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxs
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmspOgorICAgICAgICAo
V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcik6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwpOgorICAgICAgICAoV2ViQ29yZTo6
Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6
OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVy
bGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnUmlnaHRUb0xlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNl
YXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVu
dUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnVua25vd25GaWxl
U2l6ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhXZWJBcmVhVGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlzdE1hcmtlclRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1hcFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KToKKyAgICAgICAg
KFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6CisgICAgICAgIChXZWJDb3JlOjpBWFRleHRG
aWVsZEFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZl
cmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0
aW9uTGlzdFRlcm1UZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvTG9nZ2luZ0hhaWt1LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNl
c3NhcnkpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1JlbmRlclRoZW1lSGFpa3UuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSGFpa3U6OlJlbmRlclRoZW1lSGFp
a3UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6flJlbmRlclRoZW1lSGFp
a3UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6c3VwcG9ydHNIb3Zlcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6cGxhdGZvcm1UZXh0U2VhcmNoSGlnaGxpZ2h0Q29s
b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6cGxhdGZvcm1BY3RpdmVT
ZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVI
YWlrdTo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lSGFpa3U6OnBhaW50Q2hlY2tib3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVIYWlrdTo6cGFpbnRSYWRpbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUhh
aWt1OjphZGp1c3RNZW51TGlzdFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
SGFpa3U6OnBhaW50TWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6dGhlbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVIYWlrdTo6c3lzdGVtRm9udCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZUhhaWt1OjpzZXRDaGVja2JveFNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVIYWlrdTo6c2V0UmFkaW9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lOjp0aGVtZUZvclBhZ2UpOgorCiAyMDA5LTA4LTExICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KGJ1aWxkIGZpeCkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXpl
ZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmlu
Z3NIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTM3ZmZjYwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5n
c0hhaWt1LmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBN
YXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+CisgKgorICogQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
U3RyaW5ncy5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sKKyAgICByZXR1
cm4gIlN1Ym1pdCI7Cit9CisKK1N0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCit7
CisgICAgcmV0dXJuICJSZXNldCI7Cit9CisKK1N0cmluZyBkZWZhdWx0TGFuZ3VhZ2UoKQorewor
ICAgIHJldHVybiAiZW4iOworfQorCitTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9u
KCkKK3sKKyAgICByZXR1cm4gIlNlYXJjaGFibGUgSW5kZXgiOworfQorCitTdHJpbmcgZmlsZUJ1
dHRvbkNob29zZUZpbGVMYWJlbCgpCit7CisgICAgcmV0dXJuICJDaG9vc2UgRmlsZSI7Cit9CisK
K1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCit7CisgICAgcmV0dXJuICJO
byBmaWxlIHNlbGVjdGVkIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5r
SW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBpbiBuZXcgdGFiIjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCit7CisgICAgcmV0dXJu
ICJEb3dubG9hZCBsaW5rIHRvIGRpc2siOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q29weUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJDb3B5IGxpbmsgdG8gY2xpcGJv
YXJkIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gaW1hZ2UgaW4gbmV3IHdpbmRvdyI7Cit9CisKK1N0cmlu
ZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKK3sKKyAgICByZXR1cm4g
IkRvd25sb2FkIGltYWdlIHRvIGRpc2siOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
Q29weUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBpbWFnZSB0byBjbGlw
Ym9hcmQiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5k
b3coKQoreworICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQoreworICAgIHJldHVybiAiQ29weSI7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQoreworICAgIHJldHVybiAiR28gYmFj
ayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQoreworICAgIHJl
dHVybiAiR28gZm9yd2FyZCI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTdG9wKCkK
K3sKKyAgICByZXR1cm4gIlN0b3AiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVs
b2FkKCkKK3sKKyAgICByZXR1cm4gIlJlbG9hZCI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDdXQoKQoreworICAgIHJldHVybiAiQ3V0IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCkKK3sKKyAgICByZXR1cm4gIlBhc3RlIjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKK3sKKyAgICByZXR1cm4gIk5vIGd1ZXNzZXMg
Zm91bmQiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3BlbGxpbmcoKQor
eworICAgIHJldHVybiAiSWdub3JlIHNwZWxsaW5nIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQoreworICAgIHJldHVybiAiTGVhcm4gc3BlbGxpbmciOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4g
IlNlYXJjaCB3ZWIiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9va1VwSW5EaWN0
aW9uYXJ5KCkKK3sKKyAgICByZXR1cm4gIkxvb2t1cCBpbiBkaWN0aW9uYXJ5IjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKK3sKKyAgICByZXR1cm4gIk9wZW4gbGlu
ayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCkKK3sKKyAg
ICByZXR1cm4gIklnbm9yZSBncmFtbWFyIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z1NwZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuICJTcGVsbGluZyBtZW51IjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKK3sKKyAg
ICByZXR1cm4gIlNob3cgc3BlbGxpbmcgcGFuZWwiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnQ2hlY2tTcGVsbGluZygpCit7CisgICAgcmV0dXJuICJDaGVjayBzcGVsbGluZyI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQor
eworICAgIHJldHVybiAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIjsKK30KKworU3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7CisgICAgcmV0
dXJuICJDaGVjayBmb3IgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIjsKK30KKworU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKK3sKKyAgICByZXR1cm4gIkZvbnQgbWVudSI7Cit9CisK
K1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4gIkJvbGQiOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKK3sKKyAgICByZXR1cm4gIkl0
YWxpYyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUoKQoreworICAg
IHJldHVybiAiVW5kZXJsaW5lIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ091dGxp
bmUoKQoreworICAgIHJldHVybiAiT3V0bGluZSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuICJXcml0aW5nIGRpcmVj
dGlvbiBtZW51IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rp
b24oKQoreworICAgIHJldHVybiAiRGVmYXVsdCBkaXJlY3Rpb24iOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiAiTGVmdCB0byByaWdo
dCI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCit7CisgICAg
cmV0dXJuICJSaWdodCB0byBsZWZ0IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lu
c3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gIkluc3BlY3QiOworfQorCitTdHJpbmcgc2Vh
cmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gIk5vIHJlY2VudCB0
ZXh0IHNlYXJjaGVzIjsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQo
KQoreworICAgIHJldHVybiAiUmVjZW50IHRleHQgc2VhcmNoZXMiOworfQorCitTdHJpbmcgc2Vh
cmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gIkNsZWFyIHJl
Y2VudCB0ZXh0IHNlYXJjaGVzIjsKK30KKworU3RyaW5nIHVua25vd25GaWxlU2l6ZVRleHQoKQor
eworICAgIHJldHVybiAiVW5rbm93biI7Cit9CisKK1N0cmluZyBBWFdlYkFyZWFUZXh0KCkKK3sK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpbmtUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWEltYWdlTWFwVGV4dCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhIZWFkaW5nVGV4dCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBTdHJpbmcoZmlsZW5hbWUpOwor
fQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUoKQoreworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVyYigpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhUZXh0RmllbGRBY3Rpb25WZXJiKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWFJhZGlvQnV0dG9uQWN0aW9u
VmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhDaGVja2VkQ2hl
Y2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBB
WFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQorewor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdIYWlrdS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZjA5YzQ4MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvTG9nZ2luZ0hhaWt1LmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA5IE1heGltZSBTaW1vbiA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgSW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVjZXNzYXJ5KCkK
K3sKKyAgICAvLyBGSVhNRTogU2hvdWxkIHJlYWQgdGhlIGxvZ2dpbmcgY2hhbm5lbHMgZnJvbSBh
IGZpbGUuCisgICAgc3RhdGljIGJvb2wgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0g
ZmFsc2U7CisgICAgaWYgKGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVscykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0gdHJ1ZTsKKwor
ICAgIExvZ0V2ZW50cy5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxPbjsKKyAgICBMb2dGcmFtZXMuc3Rh
dGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgTG9nTG9hZGluZy5zdGF0ZSA9IFdURkxvZ0NoYW5u
ZWxPbjsKKyAgICBMb2dQbGF0Zm9ybUxlYWtzLnN0YXRlID0gV1RGTG9nQ2hhbm5lbE9uOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvUmVuZGVyVGhlbWVIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1JlbmRl
clRoZW1lSGFpa3UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNjBk
N2IKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1JlbmRlclRoZW1l
SGFpa3UuY3BwCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIFdlYktpdCBwcm9qZWN0LgorICoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBEaXJrIE11ZWxs
ZXIgPG11ZWxsZXJAa2RlLm9yZz4KKyAqICAgICAgICAgICAgICAgMjAwNiBOaWtvbGFzIFppbW1l
cm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBSeWFuIExl
YXZlbmdvb2QgPGxlYXZlbmdvb2RAZ21haWwuY29tPgorICoKKyAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPENvbnRyb2xMb29rLmg+CisjaW5jbHVkZSA8
Rm9udC5oPgorI2luY2x1ZGUgPFZpZXcuaD4KKworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8v
IEZJWE1FOiBJIGFtIG5vdCBzdXJlIHdoeSBzbyBtYW55IG1ldGhvZHMgYXJlIGlubGluZSBoZXJl
LiBUaGlzIHdhcyBjb3BpZWQgZnJvbSB0aGUKKy8vIFN5bGxhYmxlIHBvcnQuIEl0IHNob3VsZCBw
cm9iYWJseSBhbGwgYmUgc2NyYXBwZWQuCitjbGFzcyBSZW5kZXJUaGVtZUhhaWt1IDogcHVibGlj
IFJlbmRlclRoZW1lIHsKK3B1YmxpYzoKKyAgICBSZW5kZXJUaGVtZUhhaWt1KCkgOiBSZW5kZXJU
aGVtZSgpIHsgfQorICAgIH5SZW5kZXJUaGVtZUhhaWt1KCkgeyB9CisKKyAgICAvLyBBIG1ldGhv
ZCBhc2tpbmcgaWYgdGhlIHRoZW1lJ3MgY29udHJvbHMgYWN0dWFsbHkgY2FyZSBhYm91dCByZWRy
YXdpbmcgd2hlbiBob3ZlcmVkLgorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0hvdmVyKGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVuZGVyVGhlbWVIYWlrdSgpKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtVGV4dFNlYXJjaEhpZ2hsaWdodENvbG9y
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBDb2xvcih1aV9jb2xvcihCX01FTlVfU0VM
RUNURURfQkFDS0dST1VORF9DT0xPUikpOworICAgIH0KKworICAgIC8vIFRoZSBwbGF0Zm9ybSBz
ZWxlY3Rpb24gY29sb3IuCisgICAgQ29sb3IgcGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3Jv
dW5kQ29sb3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIENvbG9yKHVpX2NvbG9yKEJf
Q09OVFJPTF9ISUdITElHSFRfQ09MT1IpKTsKKyAgICB9CisKKyAgICBDb2xvciBwbGF0Zm9ybUlu
YWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBDb2xvcih1aV9jb2xvcihCX0NPTlRST0xfSElHSExJR0hUX0NPTE9SKSk7CisgICAgfQor
CisgICAgdmlydHVhbCBDb2xvciBwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gQ29sb3IodWlfY29sb3IoQl9DT05UUk9M
X1RFWFRfQ09MT1IpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIENvbG9yIHBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IENvbG9yKHVpX2NvbG9yKEJfQ09OVFJPTF9URVhUX0NPTE9SKSk7CisgICAgfQorCisgICAgdmly
dHVhbCBib29sIHBhaW50Q2hlY2tib3goUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRl
ck9iamVjdDo6UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0KQorICAgIHsK
KyAgICAgICAgaWYgKGluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJnYl9jb2xvciBiYXNlID0gdWlfY29sb3IoQl9Q
QU5FTF9CQUNLR1JPVU5EX0NPTE9SKTsKKyAgICAgICAgQlJlY3QgcmVjdCA9IGludFJlY3Q7Cisg
ICAgICAgIEJWaWV3KiB2aWV3ID0gaW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKwor
ICAgICAgICBpZiAoIWJlX2NvbnRyb2xfbG9vaykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBiZV9jb250cm9sX2xvb2stPkRyYXdDaGVja0JveCh2aWV3LCByZWN0LCByZWN0
LCBiYXNlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lk
IHNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OworCisgICAgdmlydHVhbCBib29s
IHBhaW50UmFkaW8oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlck9iamVjdDo6UGFp
bnRJbmZvJiBpbmZvLCBjb25zdCBJbnRSZWN0JiBpbnRSZWN0KQorICAgIHsKKyAgICAgICAgaWYg
KGluZm8uY29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIHJnYl9jb2xvciBiYXNlID0gdWlfY29sb3IoQl9QQU5FTF9CQUNLR1JP
VU5EX0NPTE9SKTsKKyAgICAgICAgQlJlY3QgcmVjdCA9IGludFJlY3Q7CisgICAgICAgIEJWaWV3
KiB2aWV3ID0gaW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKworICAgICAgICBpZiAo
IWJlX2NvbnRyb2xfbG9vaykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBi
ZV9jb250cm9sX2xvb2stPkRyYXdSYWRpb0J1dHRvbih2aWV3LCByZWN0LCByZWN0LCBiYXNlKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFJhZGlv
U2l6ZShSZW5kZXJTdHlsZSopIGNvbnN0OworCisgICAgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxl
KENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQq
IGVsZW1lbnQpIGNvbnN0CisgICAgeworICAgICAgICAvKiBMZWF2ZSBzb21lIHNwYWNlIGZvciB0
aGUgYXJyb3cgKi8KKyAgICAgICAgc3R5bGUtPnNldFBhZGRpbmdSaWdodChMZW5ndGgoMjIsIEZp
eGVkKSk7CisgICAgICAgIGNvbnN0IGludCBtaW5IZWlnaHQgPSAyMDsKKyAgICAgICAgc3R5bGUt
PnNldE1pbkhlaWdodChMZW5ndGgobWluSGVpZ2h0LCBGaXhlZCkpOworICAgIH0KKworICAgIGJv
b2wgcGFpbnRNZW51TGlzdChSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyT2JqZWN0
OjpQYWludEluZm8mIGluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCisgICAgeworICAgICAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgdmly
dHVhbCB2b2lkIHN5c3RlbUZvbnQoaW50IHByb3BJZCwgRm9udERlc2NyaXB0aW9uJikgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBhZGRJbnRyaW5zaWNNYXJnaW5zKFJlbmRlclN0eWxlKikg
Y29uc3Q7CisgICAgdm9pZCBjbG9zZSgpOworCisgICAgYm9vbCBzdXBwb3J0c0ZvY3VzKCkgY29u
c3Q7Cit9OworCitSZW5kZXJUaGVtZSogdGhlbWUoKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVt
ZUhhaWt1IHJlbmRlclRoZW1lOworICAgIHJldHVybiAmcmVuZGVyVGhlbWU7Cit9CisKK3ZvaWQg
UmVuZGVyVGhlbWVIYWlrdTo6c3lzdGVtRm9udChpbnQgcHJvcElkLCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFJlbmRlclRoZW1lSGFpa3U6OnNldENoZWNrYm94U2l6ZShSZW5kZXJTdHlsZSogc3R5bGUp
IGNvbnN0Cit7CisgICAgaW50IHNpemUgPSAxMDsKKworICAgIC8vIElmIHRoZSB3aWR0aCBhbmQg
aGVpZ2h0IGFyZSBib3RoIHNwZWNpZmllZCwgdGhlbiB3ZSBoYXZlIG5vdGhpbmcgdG8gZG8uCisg
ICAgaWYgKCFzdHlsZS0+d2lkdGgoKS5pc0ludHJpbnNpY09yQXV0bygpICYmICFzdHlsZS0+aGVp
Z2h0KCkuaXNBdXRvKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBBIGhhcmQt
Y29kZWQgc2l6ZSBvZiAnc2l6ZScgaXMgdXNlZC4gVGhpcyBpcyB3cm9uZyBidXQgbmVjZXNzYXJ5
IGZvciBub3cuCisKKyAgICBpZiAoc3R5bGUtPndpZHRoKCkuaXNJbnRyaW5zaWNPckF1dG8oKSkK
KyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzaXplLCBGaXhlZCkpOworCisgICAgaWYg
KHN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5n
dGgoc2l6ZSwgRml4ZWQpKTsKK30KKwordm9pZCBSZW5kZXJUaGVtZUhhaWt1OjpzZXRSYWRpb1Np
emUoUmVuZGVyU3R5bGUqIHN0eWxlKSBjb25zdAoreworICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUg
YXMgY2hlY2tib3hlcy4KKyAgICBzZXRDaGVja2JveFNpemUoc3R5bGUpOworfQorCitQYXNzUmVm
UHRyPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqIHBhZ2UpCit7
CisgICAgc3RhdGljIFJlbmRlclRoZW1lKiByZW5kZXJUaGVtZSA9IFJlbmRlclRoZW1lSGFpa3U6
OmNyZWF0ZSgpLnJlbGVhc2VSZWYoKTsKKyAgICByZXR1cm4gcmVuZGVyVGhlbWU7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKwotLSAKMS42LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34734</attachid>
            <date>2009-08-13 05:29:47 -0700</date>
            <delta_ts>2009-08-15 00:31:19 -0700</delta_ts>
            <desc>Adding two files: LocalizedString and Logging.</desc>
            <filename>bug-28129-20090813142945.patch</filename>
            <type>text/plain</type>
            <size>12290</size>
            <attacher name="Maxime Simon">simon.maxime</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGUzYzdjOC4uOTllNzM3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAwOS0wOC0xMyAgTWF4aW1lIFNpbW9u
ICA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBbSGFpa3VdIEFkZGluZyB0d28gbmV3IGZpbGVzIHRvIFdlYkNv
cmUvcGxhdGZvcm0vaGFpa3U6CisgICAgICAgIExvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgYW5k
IExvZ2dpbmdIYWlrdS5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI4MTI5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJp
bmdzSGFpa3UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnN1Ym1pdEJ1dHRvbkRlZmF1
bHRMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjppbnB1dEVsZW1lbnRBbHRUZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKToKKyAgICAgICAgKFdlYkNvcmU6
OmRlZmF1bHRMYW5ndWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpzZWFyY2hhYmxlSW5kZXhJbnRy
b2R1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCk6
CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCk6CisgICAg
ICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzayk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5TGlua1RvQ2xpcGJvYXJkKToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rp
c2spOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlw
Ym9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5O
ZXdXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVt
VGFnUmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
Ojpjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVTcGVsbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpj
b250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRl
eHRNZW51SXRlbVRhZ1NlYXJjaFdlYik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0
ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkxpbmspOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSWdu
b3JlR3JhbW1hcik6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTcGVsbGlu
Z01lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5n
UGFuZWwpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hp
bGVUeXBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFt
bWFyV2l0aFNwZWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0Zv
bnRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQpOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljKToKKyAgICAgICAgKFdlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ1VuZGVybGluZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250
ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRl
bVRhZ1dyaXRpbmdEaXJlY3Rpb25NZW51KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51
SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJ
dGVtVGFnTGVmdFRvUmlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFnSW5zcGVj
dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNU
ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnVua25vd25GaWxlU2l6ZVRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
QVhXZWJBcmVhVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpBWExpbmtUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFYTGlzdE1hcmtlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZU1h
cFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6QVhIZWFkaW5nVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjppbWFnZVRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Rl
eHREaXJlY3Rpb25NZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkFYQnV0dG9uQWN0aW9uVmVyYik6
CisgICAgICAgIChXZWJDb3JlOjpBWFRleHRGaWVsZEFjdGlvblZlcmIpOgorICAgICAgICAoV2Vi
Q29yZTo6QVhSYWRpb0J1dHRvbkFjdGlvblZlcmIpOgorICAgICAgICAoV2ViQ29yZTo6QVhDaGVj
a2VkQ2hlY2tCb3hBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYVW5jaGVja2VkQ2hl
Y2tCb3hBY3Rpb25WZXJiKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTGlua0FjdGlvblZlcmIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCk6CisgICAgICAgICogcGxhdGZv
cm0vaGFpa3UvTG9nZ2luZ0hhaWt1LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJbml0
aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkpOgorCiAyMDA5LTA4LTEzICBEYXZpZCBM
ZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgQ2hyb21pdW0gTGludXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1
L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YTM3ZmZjYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxp
emVkU3RyaW5nc0hhaWt1LmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBNYXhpbWUgU2ltb24gPHNpbW9uLm1heGltZUBnbWFpbC5jb20+CisgKgorICogQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitTdHJpbmcgc3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK3sK
KyAgICByZXR1cm4gIlN1Ym1pdCI7Cit9CisKK1N0cmluZyBpbnB1dEVsZW1lbnRBbHRUZXh0KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyByZXNldEJ1dHRvbkRlZmF1bHRM
YWJlbCgpCit7CisgICAgcmV0dXJuICJSZXNldCI7Cit9CisKK1N0cmluZyBkZWZhdWx0TGFuZ3Vh
Z2UoKQoreworICAgIHJldHVybiAiZW4iOworfQorCitTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50
cm9kdWN0aW9uKCkKK3sKKyAgICByZXR1cm4gIlNlYXJjaGFibGUgSW5kZXgiOworfQorCitTdHJp
bmcgZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpCit7CisgICAgcmV0dXJuICJDaG9vc2UgRmls
ZSI7Cit9CisKK1N0cmluZyBmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRMYWJlbCgpCit7CisgICAg
cmV0dXJuICJObyBmaWxlIHNlbGVjdGVkIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z09wZW5MaW5rSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBpbiBuZXcgdGFiIjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzaygpCit7Cisg
ICAgcmV0dXJuICJEb3dubG9hZCBsaW5rIHRvIGRpc2siOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuICJDb3B5IGxpbmsg
dG8gY2xpcGJvYXJkIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KCkKK3sKKyAgICByZXR1cm4gIk9wZW4gaW1hZ2UgaW4gbmV3IHdpbmRvdyI7Cit9
CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKK3sKKyAg
ICByZXR1cm4gIkRvd25sb2FkIGltYWdlIHRvIGRpc2siOworfQorCitTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiAiQ29weSBpbWFn
ZSB0byBjbGlwYm9hcmQiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiAiT3BlbiBmcmFtZSBpbiBuZXcgd2luZG93IjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKQoreworICAgIHJldHVybiAiQ29w
eSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKQoreworICAgIHJldHVy
biAiR28gYmFjayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0ZvcndhcmQoKQor
eworICAgIHJldHVybiAiR28gZm9yd2FyZCI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdTdG9wKCkKK3sKKyAgICByZXR1cm4gIlN0b3AiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnUmVsb2FkKCkKK3sKKyAgICByZXR1cm4gIlJlbG9hZCI7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDdXQoKQoreworICAgIHJldHVybiAiQ3V0IjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKK3sKKyAgICByZXR1cm4gIlBhc3RlIjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKK3sKKyAgICByZXR1cm4gIk5v
IGd1ZXNzZXMgZm91bmQiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSWdub3JlU3Bl
bGxpbmcoKQoreworICAgIHJldHVybiAiSWdub3JlIHNwZWxsaW5nIjsKK30KKworU3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQoreworICAgIHJldHVybiAiTGVhcm4gc3Bl
bGxpbmciOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAg
ICByZXR1cm4gIlNlYXJjaCB3ZWIiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTG9v
a1VwSW5EaWN0aW9uYXJ5KCkKK3sKKyAgICByZXR1cm4gIkxvb2t1cCBpbiBkaWN0aW9uYXJ5IjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rKCkKK3sKKyAgICByZXR1cm4g
Ik9wZW4gbGluayI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25vcmVHcmFtbWFy
KCkKK3sKKyAgICByZXR1cm4gIklnbm9yZSBncmFtbWFyIjsKK30KKworU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1NwZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuICJTcGVsbGluZyBtZW51IjsK
K30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hv
dykKK3sKKyAgICByZXR1cm4gIlNob3cgc3BlbGxpbmcgcGFuZWwiOworfQorCitTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnQ2hlY2tTcGVsbGluZygpCit7CisgICAgcmV0dXJuICJDaGVjayBzcGVs
bGluZyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVU
eXBpbmcoKQoreworICAgIHJldHVybiAiQ2hlY2sgc3BlbGxpbmcgd2hpbGUgdHlwaW5nIjsKK30K
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1hcldpdGhTcGVsbGluZygpCit7
CisgICAgcmV0dXJuICJDaGVjayBmb3IgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIjsKK30KKworU3Ry
aW5nIGNvbnRleHRNZW51SXRlbVRhZ0ZvbnRNZW51KCkKK3sKKyAgICByZXR1cm4gIkZvbnQgbWVu
dSI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdCb2xkKCkKK3sKKyAgICByZXR1cm4g
IkJvbGQiOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnSXRhbGljKCkKK3sKKyAgICBy
ZXR1cm4gIkl0YWxpYyI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdVbmRlcmxpbmUo
KQoreworICAgIHJldHVybiAiVW5kZXJsaW5lIjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ091dGxpbmUoKQoreworICAgIHJldHVybiAiT3V0bGluZSI7Cit9CisKK1N0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJuICJXcml0
aW5nIGRpcmVjdGlvbiBtZW51IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0RlZmF1
bHREaXJlY3Rpb24oKQoreworICAgIHJldHVybiAiRGVmYXVsdCBkaXJlY3Rpb24iOworfQorCitT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiAiTGVm
dCB0byByaWdodCI7Cit9CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgp
Cit7CisgICAgcmV0dXJuICJSaWdodCB0byBsZWZ0IjsKK30KKworU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKK3sKKyAgICByZXR1cm4gIkluc3BlY3QiOworfQorCitT
dHJpbmcgc2VhcmNoTWVudU5vUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4gIk5v
IHJlY2VudCB0ZXh0IHNlYXJjaGVzIjsKK30KKworU3RyaW5nIHNlYXJjaE1lbnVSZWNlbnRTZWFy
Y2hlc1RleHQoKQoreworICAgIHJldHVybiAiUmVjZW50IHRleHQgc2VhcmNoZXMiOworfQorCitT
dHJpbmcgc2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1cm4g
IkNsZWFyIHJlY2VudCB0ZXh0IHNlYXJjaGVzIjsKK30KKworU3RyaW5nIHVua25vd25GaWxlU2l6
ZVRleHQoKQoreworICAgIHJldHVybiAiVW5rbm93biI7Cit9CisKK1N0cmluZyBBWFdlYkFyZWFU
ZXh0KCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpbmtUZXh0KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWExpc3RNYXJrZXJUZXh0KCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWEltYWdlTWFwVGV4dCgpCit7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhIZWFkaW5nVGV4dCgpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBTdHJpbmcoZmls
ZW5hbWUpOworfQorCitTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4dERpcmVjdGlvbk1lbnUo
KQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIEFYQnV0dG9uQWN0aW9uVmVy
YigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhUZXh0RmllbGRBY3Rp
b25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWFJhZGlvQnV0
dG9uQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgQVhD
aGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyBBWFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgQVhMaW5rQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgQVhEZWZpbml0aW9uTGlzdFRlcm1UZXh0KCkKK3sKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRl
eHQoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdIYWlrdS5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvZ2dpbmdIYWlrdS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5YzQ4MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vaGFpa3UvTG9nZ2luZ0hhaWt1LmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5IE1heGltZSBTaW1vbiA8c2ltb24ubWF4aW1lQGdtYWlsLmNvbT4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lmTmVj
ZXNzYXJ5KCkKK3sKKyAgICAvLyBGSVhNRTogU2hvdWxkIHJlYWQgdGhlIGxvZ2dpbmcgY2hhbm5l
bHMgZnJvbSBhIGZpbGUuCisgICAgc3RhdGljIGJvb2wgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0No
YW5uZWxzID0gZmFsc2U7CisgICAgaWYgKGhhdmVJbml0aWFsaXplZExvZ2dpbmdDaGFubmVscykK
KyAgICAgICAgcmV0dXJuOworCisgICAgaGF2ZUluaXRpYWxpemVkTG9nZ2luZ0NoYW5uZWxzID0g
dHJ1ZTsKKworICAgIExvZ0V2ZW50cy5zdGF0ZSA9IFdURkxvZ0NoYW5uZWxPbjsKKyAgICBMb2dG
cmFtZXMuc3RhdGUgPSBXVEZMb2dDaGFubmVsT247CisgICAgTG9nTG9hZGluZy5zdGF0ZSA9IFdU
RkxvZ0NoYW5uZWxPbjsKKyAgICBMb2dQbGF0Zm9ybUxlYWtzLnN0YXRlID0gV1RGTG9nQ2hhbm5l
bE9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCis=
</data>

          </attachment>
      

    </bug>

</bugzilla>