<?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>40058</bug_id>
          
          <creation_ts>2010-06-02 06:57:33 -0700</creation_ts>
          <short_desc>testapi.c depends on the Core Foundation.</short_desc>
          <delta_ts>2010-09-22 00:22:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>42229</dependson>
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>jesus</cc>
    
    <cc>kent.hansen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>233246</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-02 06:57:33 -0700</bug_when>
    <thetext>JSC C API tests could be compile only on Mac. It means that the API is not tested on other platforms and it could not be easily fixed or developed by people not using Mac.

I strongly believe that the dependency should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245635</commentid>
    <comment_count>1</comment_count>
      <attachid>60308</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-01 16:27:23 -0700</bug_when>
    <thetext>Created attachment 60308
Separate CF parts of testapi, compile support for Qt environment

This bootstraps support for Qt (and possible other platforms that have interest) in compiling the testapi.c. The build system bits were taken from jsc.pro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245637</commentid>
    <comment_count>2</comment_count>
      <attachid>60309</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-01 16:31:24 -0700</bug_when>
    <thetext>Created attachment 60309
Qt version of the assert function that depended on CF

The WithCharacters API functions of JSStringRef.h work with 16-bit unicode characters. To test this representation the testapi.c used CFString and its helper functions. This patch implements a Qt version using QString.

Since it depends on the previous patch, I didn&apos;t mark for reviewing yet, but feel free to point out whatever problems you find out or whether there&apos;s a better way to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245641</commentid>
    <comment_count>3</comment_count>
      <attachid>60310</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-01 16:35:34 -0700</bug_when>
    <thetext>Created attachment 60310
Tests for JSStringCreateWithCharacters

Depends on previous patches.

JSStringCreateWithCharacters() tests depended on CF specific functions. This commit adds tests that depend on a more generic function that both CF and Qt implement. This function creates the JSStringRef using CFString or QString as helpers to get the 16-bit buffer and then feed JSStringCreateWithCharacters(). It&apos;s similar in spirit to the assert of the previous patch.

Note: I couldn&apos;t test the CF version, so would be glad if someone with CF available could test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245648</commentid>
    <comment_count>4</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-01 16:40:34 -0700</bug_when>
    <thetext>I added the three patches here since they are related to the same issue and depend on each other (2nd depends on 1st and 3rd on 2nd).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245845</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-02 02:59:57 -0700</bug_when>
    <thetext>Attachment 60308 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3345403</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246098</commentid>
    <comment_count>6</comment_count>
      <attachid>60308</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-07-02 14:36:20 -0700</bug_when>
    <thetext>Comment on attachment 60308
Separate CF parts of testapi, compile support for Qt environment

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247087</commentid>
    <comment_count>7</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-06 08:26:27 -0700</bug_when>
    <thetext>How can I get more details from the win build error at

http://webkit-commit-queue.appspot.com/results/3345403</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250682</commentid>
    <comment_count>8</comment_count>
      <attachid>61406</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-13 12:44:16 -0700</bug_when>
    <thetext>Created attachment 61406
Separate CF parts of testapi, compile support for Qt environment, take 2

Make the function testJSStringRefCF() static. This was generating a compiler error in the CF code path (I tested now on MacOSX but probably it&apos;s the win EWS bot error).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250825</commentid>
    <comment_count>9</comment_count>
      <attachid>61406</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 17:00:15 -0700</bug_when>
    <thetext>Comment on attachment 61406
Separate CF parts of testapi, compile support for Qt environment, take 2

Clearing flags on attachment: 61406

Committed r63262: &lt;http://trac.webkit.org/changeset/63262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250826</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 17:00:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250928</commentid>
    <comment_count>11</comment_count>
      <attachid>61462</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-13 20:42:44 -0700</bug_when>
    <thetext>Created attachment 61462
Implement the assertEqualsAsCharactersPtr() for Qt

Create a Qt version of this assertion, to complement the existing CF code. This enables more of the testapi when compiling in the Qt platform.

Note: should this and the other patch go to bugs of their own?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250931</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-07-13 21:08:22 -0700</bug_when>
    <thetext>r63262 broke windows builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250966</commentid>
    <comment_count>13</comment_count>
      <attachid>61470</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-13 22:26:16 -0700</bug_when>
    <thetext>Created attachment 61470
Separate CF parts of testapi, compile support for Qt environment, take 3

The original commit was rolled out because it broke Win compilation (bug 42229). In VCProj, config.h wasn&apos;t available in the testapi utility compilation. Sorry folks.

The patch is the same as before, but adds the necessary bits for the Win build system (at least what I thought was necessary). Any suggestions on how to do it better is appreciated, since I&apos;m not familiar with VCProj neiter have a win system available.

I&apos;m marking this for review? but not cq? so the bots can check this patch and we can see if win passes. I will also remove the r? from the other patch to avoid confusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251120</commentid>
    <comment_count>14</comment_count>
      <attachid>61506</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-14 05:16:34 -0700</bug_when>
    <thetext>Created attachment 61506
Separate CF parts of testapi, compile support for Qt environment, take 4

Updating the patch for the win EWS bot. This time I just added the correct include directory in the compilation. Let&apos;s see if the bot can compile it this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251153</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 06:31:24 -0700</bug_when>
    <thetext>Attachment 61506 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3497297</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251173</commentid>
    <comment_count>16</comment_count>
      <attachid>61506</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-14 07:20:16 -0700</bug_when>
    <thetext>Comment on attachment 61506
Separate CF parts of testapi, compile support for Qt environment, take 4

&gt; -		AdditionalIncludeDirectories=&quot;&amp;quot;$(ProjectDir)\..\..\API&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\private\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\private&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\private&amp;quot;&quot;
&gt; +		AdditionalIncludeDirectories=&quot;&amp;quot;$(ProjectDir)\..\..\API&amp;quot;;../../;&amp;quot;$(WebKitOutputDir)\include\WebCore\ForwardingHeaders&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\private\JavaScriptCore&amp;quot;;&amp;quot;$(WebKitOutputDir)\include&amp;quot;;&amp;quot;$(WebKitOutputDir)\include\private&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include&amp;quot;;&amp;quot;$(WebKitLibrariesDir)\include\private&amp;quot;&quot;

Please use backslashes and make the path relative to ProjectDir: $(ProjectDir)\..\..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251183</commentid>
    <comment_count>17</comment_count>
      <attachid>61517</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2010-07-14 07:41:45 -0700</bug_when>
    <thetext>Created attachment 61517
Separate CF parts of testapi, compile support for Qt environment, take 5

Following Adam Roben suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251225</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 09:22:52 -0700</bug_when>
    <thetext>Attachment 61517 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/3529111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282800</commentid>
    <comment_count>19</comment_count>
      <attachid>61517</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2010-09-22 00:22:37 -0700</bug_when>
    <thetext>Comment on attachment 61517
Separate CF parts of testapi, compile support for Qt environment, take 5

please fix so it builds on win</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60308</attachid>
            <date>2010-07-01 16:27:23 -0700</date>
            <delta_ts>2010-07-13 12:44:16 -0700</delta_ts>
            <desc>Separate CF parts of testapi, compile support for Qt environment</desc>
            <filename>0001-Separate-CoreFoundation-specific-tests-in-JSC-s-test.patch</filename>
            <type>text/plain</type>
            <size>16813</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSAyOTZmYmJhZDZhZGIxYzhiM2Q4ZTIwNWJmZTRjNDlkMWJhNzQ5YzQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE1OjQ4OjEwIC0w
MzAwClN1YmplY3Q6IFtQQVRDSCAxLzNdIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmlj
IHRlc3RzIGluIEpTQydzIHRlc3RhcGkuYwoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAxMSArKysKIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMg
fCAgMTc2ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nICAgICAgICAgICB8ICAgMTggKysrKwogSmF2YVNjcmlwdENvcmUvdGVzdGFw
aS5wcm8gICAgICAgICB8ICAgMzIgKysrKysrKwogV2ViS2l0LnBybyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDEgKwogNSBmaWxlcyBjaGFuZ2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgNjcg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5w
cm8KCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNjExZWZmNy4uYjFh
NGRjMCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEwLTA3LTAxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9s
aXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgU2VwYXJhdGUgQ29yZUZvdW5kYXRpb24gc3BlY2lmaWMgdGVzdHMgaW4g
SlNDJ3MgdGVzdGFwaS5jCisKKyAgICAgICAgdGVzdGFwaS5jIGRlcGVuZHMgb24gdGhlIENvcmUg
Rm91bmRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQwMDU4CisKKyAgICAgICAgKiBXZWJLaXQucHJvOiBlbmFibGUgY29tcGlsYXRpb24gb2Yg
SlNDIEMgQVBJIHRlc3QuCisKIDIwMTAtMDctMDEgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1
c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IExhc3psbyBHb21i
b3MuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwppbmRleCAxODNhYmY1Li5hMDJmOGJkIDEw
MDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKQEAgLTIzLDcgKzIzLDE4IEBACiAgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKICAqLwogCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShDRikK
ICNpbmNsdWRlICJKYXZhU2NyaXB0Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0
LmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxz
dHJpbmcuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgIkpTQmFzZVBy
aXZhdGUuaCIKICNpbmNsdWRlICJKU0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNP
YmplY3RSZWZQcml2YXRlLmgiCkBAIC05MSw2ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRF
cXVhbHNBc1VURjhTdHJpbmcoSlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRW
YWx1ZQogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KIAorLy8gRklYTUU6
IGRlZmluZSB0aGlzIGFzc2VydCBmb3Igbm9uLUNGIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShD
RikKIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZh
bHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlKQogewogICAgIEpTU3RyaW5nUmVmIHZhbHVl
QXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsKQEAg
LTExOSw2ICsxMzIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIo
SlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYQogICAgIGZyZWUoY2ZCdWZm
ZXIpOwogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KKyNlbmRpZgogCiBz
dGF0aWMgYm9vbCB0aW1lWm9uZUlzUFNUKCkKIHsKQEAgLTgxNyw2ICs4MzEsODEgQEAgc3RhdGlj
IGJvb2wgY2hlY2tGb3JDeWNsZUluUHJvdG90eXBlQ2hhaW4oKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKKyNpZiBQTEFURk9STShDRikKKy8vIFRlc3QgdGhlIEphdmFTY3JpcHRDb3JlIHNwZWNp
ZmljIEFQSSBmb3IgY29udmVydGluZyBKU1N0cmluZ1JlZnMgdG8vZnJvbSBDRlN0cmluZ3MuCit2
b2lkIHRlc3RKU1N0cmluZ1JlZkNGKCkKK3sKKyAgICBVbmlDaGFyIHNpbmdsZVVuaUNoYXIgPSA2
NTsgLy8gQ2FwaXRhbCBBCisgICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIGNmU3RyaW5nID0KKyAgICAg
ICAgQ0ZTdHJpbmdDcmVhdGVNdXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVyc05vQ29weShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZzaW5nbGVVbmlDaGFyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0ZBbGxvY2F0
b3JOdWxsKTsKKworICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVX
aXRoQ0ZTdHJpbmcoY2ZTdHJpbmcpOworICAgIEpTVmFsdWVSZWYganNDRlN0cmluZyA9IEpTVmFs
dWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nKTsKKworICAgIENGU3RyaW5nUmVmIGNm
RW1wdHlTdHJpbmcgPSBDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsICIiLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpOworCisgICAgSlNTdHJpbmdSZWYganNDRkVt
cHR5SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNmRW1wdHlTdHJpbmcpOwor
ICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4
dCwganNDRkVtcHR5SVN0cmluZyk7CisKKyAgICBDRkluZGV4IGNmU3RyaW5nTGVuZ3RoID0gQ0ZT
dHJpbmdHZXRMZW5ndGgoY2ZTdHJpbmcpOworICAgIFVuaUNoYXIgKmJ1ZmZlciA9IChVbmlDaGFy
KiltYWxsb2MoY2ZTdHJpbmdMZW5ndGggKiBzaXplb2YoVW5pQ2hhcikpOworICAgIENGU3RyaW5n
R2V0Q2hhcmFjdGVycyhjZlN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZSYW5n
ZU1ha2UoMCwgY2ZTdHJpbmdMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBidWZm
ZXIpOworICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgY2ZTdHJpbmdMZW5ndGgpOwor
ICAgIEpTVmFsdWVSZWYganNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJp
bmcoY29udGV4dCwganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyk7CisKKyAgICBKU1N0cmluZ1Jl
ZiBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFy
YWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgQ0ZTdHJpbmdHZXRMZW5ndGgoY2ZFbXB0eVN0cmluZykp
OworICAgIGZyZWUoYnVmZmVyKTsKKyAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0eVN0cmluZ1dpdGhD
aGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0cmluZ1dp
dGhDaGFyYWN0ZXJzKTsKKworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NG
U3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29u
dGV4dCwganNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKKyAgICBB
U1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRkVtcHR5U3RyaW5nKSA9PSBrSlNUeXBl
U3RyaW5nKTsKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRkVtcHR5U3Ry
aW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworCisgICAgYXNzZXJ0RXF1YWxz
QXNCb29sZWFuKGpzQ0ZTdHJpbmcsIHRydWUpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihq
c0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsIHRydWUpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVh
bihqc0NGRW1wdHlTdHJpbmcsIGZhbHNlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanND
RkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsIGZhbHNlKTsKKworICAgIGFzc2VydEVxdWFsc0Fz
TnVtYmVyKGpzQ0ZTdHJpbmcsIG5hbigiIikpOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpz
Q0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgbmFuKCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1i
ZXIoanNDRkVtcHR5U3RyaW5nLCAwKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1w
dHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgMCk7CisgICAgQVNTRVJUKHNpemVvZihKU0NoYXIpID09
IHNpemVvZihVbmlDaGFyKSk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanND
RlN0cmluZywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRlN0cmlu
Z1dpdGhDaGFyYWN0ZXJzLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihq
c0NGRW1wdHlTdHJpbmcsICIiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanND
RkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKKworICAgIGFzc2VydEVxdWFsc0FzVVRG
OFN0cmluZyhqc0NGU3RyaW5nLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhq
c0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3Ry
aW5nKGpzQ0ZFbXB0eVN0cmluZywgIiIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhq
c0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZK
U1N0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzQ0ZJ
U3RyaW5nKTsKKyAgICBDRlN0cmluZ1JlZiBjZkpTRW1wdHlTdHJpbmcgPSBKU1N0cmluZ0NvcHlD
RlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGRW1wdHlJU3RyaW5nKTsKKyAgICBBU1NF
UlQoQ0ZFcXVhbChjZkpTU3RyaW5nLCBjZlN0cmluZykpOworICAgIEFTU0VSVChDRkVxdWFsKGNm
SlNFbXB0eVN0cmluZywgY2ZFbXB0eVN0cmluZykpOworICAgIENGUmVsZWFzZShjZkpTU3RyaW5n
KTsKKyAgICBDRlJlbGVhc2UoY2ZKU0VtcHR5U3RyaW5nKTsKKworICAgIENGUmVsZWFzZShjZlN0
cmluZyk7CisgICAgQ0ZSZWxlYXNlKGNmRW1wdHlTdHJpbmcpOworCisgICAgSlNTdHJpbmdSZWxl
YXNlKGpzQ0ZJU3RyaW5nKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7
CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworICAgIEpT
U3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworfQorI2VuZGlm
CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7CiAgICAgY29uc3QgY2hhciAq
c2NyaXB0UGF0aCA9ICJ0ZXN0YXBpLmpzIjsKQEAgLTg2OSwzNCArOTU4LDYgQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBKU1N0cmluZ1JlZiBqc09uZUlTdHJpbmcgPSBK
U1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiMSIpOwogICAgIEpTVmFsdWVSZWYganNPbmVT
dHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc09uZUlTdHJpbmcpOwogCi0gICAg
VW5pQ2hhciBzaW5nbGVVbmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQotICAgIENGTXV0YWJsZVN0
cmluZ1JlZiBjZlN0cmluZyA9IAotICAgICAgICBDRlN0cmluZ0NyZWF0ZU11dGFibGVXaXRoRXh0
ZXJuYWxDaGFyYWN0ZXJzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpbmdsZVVuaUNo
YXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGtDRkFsbG9jYXRvck51bGwpOwotCi0gICAgSlNTdHJpbmdSZWYganND
RklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhjZlN0cmluZyk7Ci0gICAgSlNW
YWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRklTdHJp
bmcpOwotICAgIAotICAgIENGU3RyaW5nUmVmIGNmRW1wdHlTdHJpbmcgPSBDRlN0cmluZ0NyZWF0
ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsICIiLCBrQ0ZTdHJpbmdFbmNvZGluZ1VU
RjgpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmcgPSBKU1N0cmluZ0Ny
ZWF0ZVdpdGhDRlN0cmluZyhjZkVtcHR5U3RyaW5nKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0
eVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOwot
Ci0gICAgQ0ZJbmRleCBjZlN0cmluZ0xlbmd0aCA9IENGU3RyaW5nR2V0TGVuZ3RoKGNmU3RyaW5n
KTsKLSAgICBVbmlDaGFyKiBidWZmZXIgPSAoVW5pQ2hhciopbWFsbG9jKGNmU3RyaW5nTGVuZ3Ro
ICogc2l6ZW9mKFVuaUNoYXIpKTsKLSAgICBDRlN0cmluZ0dldENoYXJhY3RlcnMoY2ZTdHJpbmcs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xlbmd0
aCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIpOwotICAgIEpTU3RyaW5nUmVm
IGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJz
KChKU0NoYXIqKWJ1ZmZlciwgY2ZTdHJpbmdMZW5ndGgpOwotICAgIEpTVmFsdWVSZWYganNDRlN0
cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRklTdHJp
bmdXaXRoQ2hhcmFjdGVycyk7Ci0gICAgCi0gICAgSlNTdHJpbmdSZWYganNDRkVtcHR5SVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFyKili
dWZmZXIsIENGU3RyaW5nR2V0TGVuZ3RoKGNmRW1wdHlTdHJpbmcpKTsKLSAgICBmcmVlKGJ1ZmZl
cik7Ci0gICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFs
dWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyk7Ci0K
ICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNVbmRlZmluZWQpID09IGtKU1R5
cGVVbmRlZmluZWQpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc051bGwp
ID09IGtKU1R5cGVOdWxsKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNU
cnVlKSA9PSBrSlNUeXBlQm9vbGVhbik7CkBAIC05MDYsMTAgKzk2NywxMyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0
LCBqc09uZVRoaXJkKSA9PSBrSlNUeXBlTnVtYmVyKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5
cGUoY29udGV4dCwganNFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNTRVJU
KEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzT25lU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsK
LSAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pTVHlw
ZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmdX
aXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRU
eXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJz
KSA9PSBrSlNUeXBlU3RyaW5nKTsKKworICAgIC8vIEZJWE1FOiBBZGQgdGVzdHMgZm9yIEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMsIHRoZXkgYXJlIG9ubHkgY292ZXJlZCBpbiB0aGUKKyAg
ICAvLyBDb3JlRm91bmRhdGlvbi1zcGVjaWZpYyB0ZXN0cy4KKworI2lmIFBMQVRGT1JNKENGKQor
ICAgIHRlc3RKU1N0cmluZ1JlZkNGKCk7CisjZW5kaWYKIAogICAgIEpTT2JqZWN0UmVmIG15T2Jq
ZWN0ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE15T2JqZWN0X2NsYXNzKGNvbnRleHQpLCBOVUxM
KTsKICAgICBKU1N0cmluZ1JlZiBteU9iamVjdElTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiTXlPYmplY3QiKTsKQEAgLTk2Myw3ICsxMDI3LDggQEAgaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAKICAgICBKU0dhcmJhZ2VDb2xsZWN0KGNvbnRleHQp
OwogICAgIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKyAgICBpbnQgaTsK
KyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKICAgICAgICAgSlNPYmplY3RNYWtlKGNv
bnRleHQsIDAsIDApOwogCiAgICAgYUhlYXBSZWYgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4dCwg
SlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkoY29udGV4dCwgbXlPYmplY3QsIHByaXZhdGVQcm9w
ZXJ0eU5hbWUpLCAwKTsKQEAgLTEwNjUsMTAgKzExMzAsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywg
Y2hhciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc09uZVRoaXJkLCB0cnVl
KTsKICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNFbXB0eVN0cmluZywgZmFsc2UpOwogICAg
IGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc09uZVN0cmluZywgdHJ1ZSk7Ci0gICAgYXNzZXJ0RXF1
YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmcsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVh
bihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9v
bGVhbihqc0NGRW1wdHlTdHJpbmcsIGZhbHNlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4o
anNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsIGZhbHNlKTsKICAgICAKICAgICBhc3NlcnRF
cXVhbHNBc051bWJlcihqc1VuZGVmaW5lZCwgbmFuKCIiKSk7CiAgICAgYXNzZXJ0RXF1YWxzQXNO
dW1iZXIoanNOdWxsLCAwKTsKQEAgLTEwNzksMTIgKzExNDAsOSBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzT25lVGhpcmQsIDEu
MCAvIDMuMCk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNFbXB0eVN0cmluZywgMCk7CiAg
ICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNPbmVTdHJpbmcsIDEpOwotICAgIGFzc2VydEVxdWFs
c0FzTnVtYmVyKGpzQ0ZTdHJpbmcsIG5hbigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVy
KGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgbmFuKCIiKSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNO
dW1iZXIoanNDRkVtcHR5U3RyaW5nLCAwKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NG
RW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgMCk7Ci0gICAgQVNTRVJUKHNpemVvZihKU0NoYXIp
ID09IHNpemVvZihVbmlDaGFyKSk7CiAgICAgCisvLyBGSVhNRTogSW1wbGVtZW50IGFzc2VydEVx
dWFsc0FzQ2hhcmFjdGVyc1B0ciBmb3Igbm9uLUNGIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShD
RikKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNVbmRlZmluZWQsICJ1bmRlZmlu
ZWQiKTsKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNOdWxsLCAibnVsbCIpOwog
ICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc1RydWUsICJ0cnVlIik7CkBAIC0xMDk0
LDEwICsxMTUyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBhc3Nl
cnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMzMyIp
OwogICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0VtcHR5U3RyaW5nLCAiIik7CiAg
ICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzT25lU3RyaW5nLCAiMSIpOwotICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2VydEVx
dWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0gICAg
YXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywg
IiIpOworI2VuZGlmCiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzVW5kZWZp
bmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzTnVsbCwg
Im51bGwiKTsKQEAgLTExMDgsMTAgKzExNjMsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVRoaXJkLCAiMC4zMzMz
MzMzMzMzMzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzRW1wdHlTdHJp
bmcsICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVTdHJpbmcsICIxIik7
Ci0gICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEiKTsKLSAg
ICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAiIik7Ci0gICAgYXNz
ZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiIik7
CiAgICAgCiAgICAgQVNTRVJUKEpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRleHQsIGpzVHJ1ZSwg
anNUcnVlKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNTdHJpY3RFcXVhbChjb250ZXh0LCBqc09u
ZSwganNPbmVTdHJpbmcpKTsKQEAgLTExMTksMTYgKzExNzAsNyBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIEFTU0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBqc09u
ZSwganNPbmVTdHJpbmcsIE5VTEwpKTsKICAgICBBU1NFUlQoIUpTVmFsdWVJc0VxdWFsKGNvbnRl
eHQsIGpzVHJ1ZSwganNGYWxzZSwgTlVMTCkpOwogICAgIAotICAgIENGU3RyaW5nUmVmIGNmSlNT
dHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGSVN0
cmluZyk7Ci0gICAgQ0ZTdHJpbmdSZWYgY2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZT
dHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRkVtcHR5SVN0cmluZyk7Ci0gICAgQVNTRVJU
KENGRXF1YWwoY2ZKU1N0cmluZywgY2ZTdHJpbmcpKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChjZkpT
RW1wdHlTdHJpbmcsIGNmRW1wdHlTdHJpbmcpKTsKLSAgICBDRlJlbGVhc2UoY2ZKU1N0cmluZyk7
Ci0gICAgQ0ZSZWxlYXNlKGNmSlNFbXB0eVN0cmluZyk7CiAKLSAgICBDRlJlbGVhc2UoY2ZTdHJp
bmcpOwotICAgIENGUmVsZWFzZShjZkVtcHR5U3RyaW5nKTsKLSAgICAKICAgICBqc0dsb2JhbFZh
bHVlID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwogICAgIG1ha2VHbG9iYWxO
dW1iZXJWYWx1ZShjb250ZXh0KTsKICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBqc0dsb2Jh
bFZhbHVlKTsKQEAgLTEyNTYsNyArMTI5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAKICAgICBvID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwogICAg
IEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVlTWFr
ZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKLSAg
ICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1ZU1h
a2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5VTEwp
OworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywgcHJvcGVydHlOYW1lLCBKU1Zh
bHVlTWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSwg
TlVMTCk7CiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBuYW1lQXJyYXkgPSBKU09iamVjdENv
cHlQcm9wZXJ0eU5hbWVzKGNvbnRleHQsIG8pOwogICAgIHNpemVfdCBleHBlY3RlZENvdW50ID0g
SlNQcm9wZXJ0eU5hbWVBcnJheUdldENvdW50KG5hbWVBcnJheSk7CiAgICAgc2l6ZV90IGNvdW50
OwpAQCAtMTM1Nyw5ICsxMzk5LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBUZXN0IHNjcmlwdCBy
ZXR1cm5lZCB1bmV4cGVjdGVkIHZhbHVlOlxuIik7CiAgICAgICAgICAgICBKU1N0cmluZ1JlZiBl
eGNlcHRpb25JU3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBleGNlcHRpb24s
IE5VTEwpOwotICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgZXhjZXB0aW9uQ0YgPSBKU1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBleGNlcHRpb25JU3RyaW5nKTsKLSAgICAg
ICAgICAgIENGU2hvdyhleGNlcHRpb25DRik7Ci0gICAgICAgICAgICBDRlJlbGVhc2UoZXhjZXB0
aW9uQ0YpOworCisgICAgICAgICAgICBzaXplX3Qgc2l6ZVVURjggPSBKU1N0cmluZ0dldE1heGlt
dW1VVEY4Q1N0cmluZ1NpemUoZXhjZXB0aW9uSVN0cmluZyk7CisgICAgICAgICAgICBjaGFyICpl
eGNlcHRpb25VVEY4ID0gbWFsbG9jKHNpemVVVEY4KTsKKyAgICAgICAgICAgIEpTU3RyaW5nR2V0
VVRGOENTdHJpbmcoZXhjZXB0aW9uSVN0cmluZywgZXhjZXB0aW9uVVRGOCwgc2l6ZVVURjgpOwor
ICAgICAgICAgICAgcHJpbnRmKCIlc1xuIiwgZXhjZXB0aW9uVVRGOCk7CisgICAgICAgICAgICBm
cmVlKGV4Y2VwdGlvblVURjgpOworCiAgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2UoZXhjZXB0
aW9uSVN0cmluZyk7CiAgICAgICAgICAgICBmYWlsZWQgPSAxOwogICAgICAgICB9CkBAIC0xMzc2
LDEwICsxNDIyLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAgIEpT
U3RyaW5nUmVsZWFzZShqc0VtcHR5SVN0cmluZyk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGpzT25l
SVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nKTsKLSAgICBKU1N0cmlu
Z1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3Ry
aW5nV2l0aENoYXJhY3RlcnMpOwotICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3RyaW5n
V2l0aENoYXJhY3RlcnMpOwogICAgIEpTU3RyaW5nUmVsZWFzZShnb29kU3ludGF4KTsKICAgICBK
U1N0cmluZ1JlbGVhc2UoYmFkU3ludGF4KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAyNmFmOTYuLjMwZDg5
ZDAgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0wMSAgQ2FpbyBNYXJjZWxv
IGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3RhcGkuYyBkZXBl
bmRzIG9uIHRoZSBDb3JlIEZvdW5kYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MDA1OAorCisgICAgICAgIFNlcGFyYXRlIENvcmVGb3VuZGF0
aW9uIHNwZWNpZmljIHRlc3RzIGluIEpTQydzIHRlc3RhcGkuYy4gRW5hYmxpbmcgaXQKKyAgICAg
ICAgdG8gY29tcGlsZSBpbiBRdCBlbnZpcm9ubWVudHMuCisKKyAgICAgICAgQWxsIHRlc3RzIHNo
b3VsZCB3b3JrIGV4Y2VwdCBmb3IgdGhlIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKSBm
dW5jdGlvbiwKKyAgICAgICAgYmVjYXVzZSBpdHMgdGVzdHMgZGVwZW5kIG9uIENvcmUgRm91bmRh
dGlvbiBzcGVjaWZpYyBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5j
OgorICAgICAgICAodGVzdEpTU3RyaW5nUmVmQ0YpOiBtb3ZlZCBDb3JlRm91bmRhdGlvbiBzcGVj
aWZpYyB0ZXN0cyB0byB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAobWFpbik6IFRoZSBtb3ZlcyBw
bHVzIHNvbWUgbWlub3IgdHdlYWtzLgorICAgICAgICAqIHRlc3RhcGkucHJvOiBBZGRlZC4KKwog
MjAxMC0wNi0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3Rlc3RhcGku
cHJvIGIvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNWJjMTFlMAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3JlL3Rl
c3RhcGkucHJvCkBAIC0wLDAgKzEsMzIgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0ZXN0
YXBpCitTT1VSQ0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYworUVQgLT0gZ3VpCitDT05GSUcgLT0g
YXBwX2J1bmRsZQorQ09ORklHICs9IGJ1aWxkaW5nLWxpYnMKK3dpbjMyLSo6IENPTkZJRyArPSBj
b25zb2xlCit3aW4zMi1tc3ZjKjogQ09ORklHICs9IGV4Y2VwdGlvbnNfb2ZmIHN0bF9vZmYKKwor
aXNFbXB0eShPVVRQVVRfRElSKTogT1VUUFVUX0RJUj0gLi4KK2luY2x1ZGUoJCRQV0QvLi4vV2Vi
S2l0LnByaSkKKworQ09ORklHICs9IGxpbmtfcGtnY29uZmlnCisKK1FNQUtFX1JQQVRIRElSICs9
ICQkT1VUUFVUX0RJUi9saWIKKworIUNPTkZJRyhyZWxlYXNlLCBkZWJ1Z3xyZWxlYXNlKSB7Cisg
ICAgT0JKRUNUU19ESVIgPSBvYmovZGVidWcKK30gZWxzZSB7ICMgUmVsZWFzZQorICAgIE9CSkVD
VFNfRElSID0gb2JqL3JlbGVhc2UKK30KK09CSkVDVFNfRElSX1dUUiA9ICQkT0JKRUNUU19ESVIk
JHtRTUFLRV9ESVJfU0VQfQoraW5jbHVkZSgkJFBXRC9KYXZhU2NyaXB0Q29yZS5wcmkpCithZGRK
YXZhU2NyaXB0Q29yZUxpYiguKQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuQ0FQQUJJTElUWSA9
IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCittYWMgewor
ICAgIExJQlNfUFJJVkFURSArPSAtZnJhbWV3b3JrIEFwcEtpdAorfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0LnBybyBiL1dlYktpdC5wcm8KaW5kZXggZDhjMWJjNS4uNmMxNzhhYiAxMDA2NDQKLS0tIGEv
V2ViS2l0LnBybworKysgYi9XZWJLaXQucHJvCkBAIC0xMyw2ICsxMyw3IEBAIGNvbnRhaW5zKFFU
X0NPTkZJRywgZGVjbGFyYXRpdmUpIHsKICAgICBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L2RlY2xh
cmF0aXZlKTogU1VCRElSUyArPSBXZWJLaXQvcXQvZGVjbGFyYXRpdmUKIH0KIGV4aXN0cygkJFBX
RC9KYXZhU2NyaXB0Q29yZS9qc2MucHJvKTogU1VCRElSUyArPSBKYXZhU2NyaXB0Q29yZS9qc2Mu
cHJvCitleGlzdHMoJCRQV0QvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8pOiBTVUJESVJTICs9
IEphdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJvCiBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L3Rlc3Rz
KTogU1VCRElSUyArPSBXZWJLaXQvcXQvdGVzdHMKIGV4aXN0cygkJFBXRC9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8pOiBTVUJESVJTICs9IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwogZXhpc3RzKCQkUFdEL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8pOiBTVUJESVJTICs9IFdl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8KLS0gCjEuNy4wLjEKCg==
</data>
<flag name="review"
          id="47719"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60309</attachid>
            <date>2010-07-01 16:31:24 -0700</date>
            <delta_ts>2010-07-13 20:42:44 -0700</delta_ts>
            <desc>Qt version of the assert function that depended on CF</desc>
            <filename>0002-Implement-assertEqualsAsCharactersPtr-for-Qt-platfor.patch</filename>
            <type>text/plain</type>
            <size>8176</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSBhOGEwMTBlMjI2OTVhZDZkM2Q5MmQwOTk1MDYyZjE4OTFhYWFkMTA5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE2OjUwOjA5IC0w
MzAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIEltcGxlbWVudCBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIoKSBmb3IgUXQgcGxhdGZvcm0gaW4gdGVzdGFwaS5jCgotLS0KIEphdmFTY3JpcHRDb3Jl
L0FQSS90ZXN0cy90ZXN0YXBpLmMgICAgICB8ICAgMTMgKysrKy0tCiBKYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaV9xdC5jcHAgfCAgIDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmggICB8ICAgMzYgKysr
KysrKysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICB8
ICAgMTggKysrKysrKysKIEphdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJvICAgICAgICAgICAgICB8
ICAgIDMgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMTI5IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlf
cXQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3Rh
cGlfcXQuaAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMg
Yi9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IGEwMmY4YmQuLmZkMzM0
M2EgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpAQCAtNTQsOCArNTQsMTMgQEAgc3Rh
dGljIGRvdWJsZSBuYW4oY29uc3QgY2hhciopCiAKICNlbmRpZgogCi1zdGF0aWMgSlNHbG9iYWxD
b250ZXh0UmVmIGNvbnRleHQ7Ci1zdGF0aWMgaW50IGZhaWxlZDsKKyNpZiBQTEFURk9STShRVCkK
KyNpbmNsdWRlICJ0ZXN0YXBpX3F0LmgiCisjZW5kaWYKKworSlNHbG9iYWxDb250ZXh0UmVmIGNv
bnRleHQ7CitpbnQgZmFpbGVkOworCiBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4o
SlNWYWx1ZVJlZiB2YWx1ZSwgYm9vbCBleHBlY3RlZFZhbHVlKQogewogICAgIGlmIChKU1ZhbHVl
VG9Cb29sZWFuKGNvbnRleHQsIHZhbHVlKSAhPSBleHBlY3RlZFZhbHVlKSB7CkBAIC0xMDIsNyAr
MTA3LDYgQEAgc3RhdGljIHZvaWQgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKEpTVmFsdWVSZWYg
dmFsdWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVkVmFsdWUKICAgICBKU1N0cmluZ1JlbGVhc2UodmFs
dWVBc1N0cmluZyk7CiB9CiAKLS8vIEZJWE1FOiBkZWZpbmUgdGhpcyBhc3NlcnQgZm9yIG5vbi1D
RiBwbGF0Zm9ybXMuCiAjaWYgUExBVEZPUk0oQ0YpCiBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNB
c0NoYXJhY3RlcnNQdHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1
ZSkKIHsKQEAgLTExNDEsOCArMTE0NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNFbXB0eVN0cmluZywgMCk7CiAgICAgYXNz
ZXJ0RXF1YWxzQXNOdW1iZXIoanNPbmVTdHJpbmcsIDEpOwogICAgIAotLy8gRklYTUU6IEltcGxl
bWVudCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIgZm9yIG5vbi1DRiBwbGF0Zm9ybXMuCi0j
aWYgUExBVEZPUk0oQ0YpCisjaWYgUExBVEZPUk0oQ0YpIHx8IFBMQVRGT1JNKFFUKQogICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc1VuZGVmaW5lZCwgInVuZGVmaW5lZCIpOwogICAg
IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc051bGwsICJudWxsIik7CiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVHJ1ZSwgInRydWUiKTsKZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmNwcCBiL0phdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy90ZXN0YXBpX3F0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZWQ4NGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3Rh
cGlfcXQuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAidGVzdGFwaV9xdC5oIgorCisjaW5j
bHVkZSA8UVN0cmluZz4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisvLyBUaGlzIGltcGxlbWVudHMg
aGVscGVyIGZ1bmN0aW9ucyBmb3IgdGVzdGFwaS5jIHdoZW4gY29tcGlsZWQgd2l0aCBRdC4gTm90
ZQorLy8gdGhhdCB0aGlzIGZpbGUgaXMgaGlnaGx5IGNvdXBsZWQgd2l0aCB0ZXN0YXBpLmMuCisK
K2V4dGVybiAiQyIgeworICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0OworICAgIGludCBm
YWlsZWQ7Cit9CisKK2V4dGVybiAiQyIgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIo
SlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZSkKK3sKKyAgICBKU1N0
cmluZ1JlZiB2YWx1ZUFzU3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCB2YWx1
ZSwgMCk7CisKKyAgICBzaXplX3QganNMZW5ndGggPSBKU1N0cmluZ0dldExlbmd0aCh2YWx1ZUFz
U3RyaW5nKTsKKyAgICBjb25zdCBKU0NoYXIqIGpzQnVmZmVyID0gSlNTdHJpbmdHZXRDaGFyYWN0
ZXJzUHRyKHZhbHVlQXNTdHJpbmcpOworCisgICAgUVN0cmluZyBleHBlY3RlZFZhbHVlQXNRU3Ry
aW5nID0gUVN0cmluZzo6ZnJvbVV0ZjgoZXhwZWN0ZWRWYWx1ZSk7CisgICAgY29uc3QgaW50IHFz
TGVuZ3RoID0gZXhwZWN0ZWRWYWx1ZUFzUVN0cmluZy5zaXplKCk7CisgICAgY29uc3QgdXNob3J0
KiBxc0J1ZmZlciA9IGV4cGVjdGVkVmFsdWVBc1FTdHJpbmcudXRmMTYoKTsKKworICAgIGlmICht
ZW1jbXAoanNCdWZmZXIsIHFzQnVmZmVyLCBxc0xlbmd0aCAqIHNpemVvZih1c2hvcnQpKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0ciBmYWls
ZWQ6IGpzQnVmZmVyICE9IHFzQnVmZmVyXG4iKTsKKyAgICAgICAgZmFpbGVkID0gMTsKKyAgICB9
CisKKyAgICBpZiAoanNMZW5ndGggIT0gc2l6ZV90KHFzTGVuZ3RoKSkgeworICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgImFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0ciBmYWlsZWQ6IGpzTGVuZ3Ro
KCVkKSAhPSBxc0xlbmd0aCglZClcbiIsIGpzTGVuZ3RoLCBxc0xlbmd0aCk7CisgICAgICAgIGZh
aWxlZCA9IDE7CisgICAgfQorCisgICAgSlNTdHJpbmdSZWxlYXNlKHZhbHVlQXNTdHJpbmcpOwor
fQorCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9xdC5oIGIv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lMjUyODQxCi0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVz
KQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09N
UFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKwordm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIo
SlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZSk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMzBkODlkMC4uMDIyMWRmNCAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwpAQCAtNSw2ICs1LDI0IEBACiAgICAgICAgIHRlc3RhcGkuYyBkZXBlbmRzIG9uIHRo
ZSBDb3JlIEZvdW5kYXRpb24uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MDA1OAogCisgICAgICAgIEltcGxlbWVudCBhc3NlcnRFcXVhbHNBc0NoYXJh
Y3RlcnNQdHIoKSBmb3IgUXQgcGxhdGZvcm0gaW4gdGVzdGFwaS5jIHVzaW5nIFFTdHJpbmcuCisg
ICAgICAgIFRvIGFjaGlldmUgdGhhdCBhIEMrKyBzb3VyY2UgZmlsZSB3YXMgYWRkZWQgd2l0aCBR
dCByZWxhdGVkIGNvZGUsIGFuZCBpdCBleHBvcnQKKyAgICAgICAgZnVuY3Rpb24gd2l0aCBDIGxp
bmthZ2UsIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRlc3RhcGkuYworCisgICAgICAgICogQVBJL3Rl
c3RzL3Rlc3RhcGkuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0
YXBpX3F0LmNwcDogQWRkZWQuCisgICAgICAgIChhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIp
OgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpX3F0Lmg6IEFkZGVkLgorICAgICAgICAqIHRl
c3RhcGkucHJvOgorCisyMDEwLTA3LTAxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8g
IDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgdGVzdGFwaS5jIGRlcGVuZHMgb24gdGhlIENvcmUgRm91
bmRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQwMDU4CisKICAgICAgICAgU2VwYXJhdGUgQ29yZUZvdW5kYXRpb24gc3BlY2lmaWMgdGVzdHMg
aW4gSlNDJ3MgdGVzdGFwaS5jLiBFbmFibGluZyBpdAogICAgICAgICB0byBjb21waWxlIGluIFF0
IGVudmlyb25tZW50cy4KIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8g
Yi9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybwppbmRleCA1YmMxMWUwLi4yMTFlZGYyIDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybworKysgYi9KYXZhU2NyaXB0Q29yZS90
ZXN0YXBpLnBybwpAQCAtMSw2ICsxLDcgQEAKIFRFTVBMQVRFID0gYXBwCiBUQVJHRVQgPSB0ZXN0
YXBpCi1TT1VSQ0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYworU09VUkNFUyA9IEFQSS90ZXN0cy90
ZXN0YXBpLmMgQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuY3BwCitIRUFERVJTID0gQVBJL3Rlc3RzL3Rl
c3RhcGlfcXQuaAogUVQgLT0gZ3VpCiBDT05GSUcgLT0gYXBwX2J1bmRsZQogQ09ORklHICs9IGJ1
aWxkaW5nLWxpYnMKLS0gCjEuNy4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60310</attachid>
            <date>2010-07-01 16:35:34 -0700</date>
            <delta_ts>2010-07-01 16:35:34 -0700</delta_ts>
            <desc>Tests for JSStringCreateWithCharacters</desc>
            <filename>0003-Create-tests-for-JSStringCreateWithCharacters-with-p.patch</filename>
            <type>text/plain</type>
            <size>6226</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSA5NzA4Njc2YWIzNTc3ZDQyM2FkMzgwYTQzYTMzZmZhOWQzM2Y5MjJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDIwOjE5OjI4IC0w
MzAwClN1YmplY3Q6IFtQQVRDSCAzLzNdIENyZWF0ZSB0ZXN0cyBmb3IgSlNTdHJpbmdDcmVhdGVX
aXRoQ2hhcmFjdGVycyB3aXRoIHBsYXRmb3JtIGhlbHBlcnMKCi0tLQogSmF2YVNjcmlwdENvcmUv
QVBJL3Rlc3RzL3Rlc3RhcGkuYyAgICAgIHwgICA1MCArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKy0KIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmNwcCB8ICAgMTAgKysr
KystCiBKYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9xdC5oICAgfCAgICAxICsKIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysr
KwogNCBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMgYi9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IGZkMzM0M2EuLjdmYTZlMTQgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpAQCAtMTM2LDYgKzEzNiwyMyBAQCBzdGF0aWMgdm9pZCBh
c3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciog
ZXhwZWN0ZWRWYQogICAgIGZyZWUoY2ZCdWZmZXIpOwogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1
ZUFzU3RyaW5nKTsKIH0KKworc3RhdGljIEpTU3RyaW5nUmVmIGNyZWF0ZVdpdGhDaGFyYWN0ZXJz
SGVscGVyKGNvbnN0IGNoYXIgKnN0cikKK3sKKyAgICBDRlN0cmluZ1JlZiBjZlN0cmluZyA9IENG
U3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RyLCBrQ0ZTdHJp
bmdFbmNvZGluZ1VURjgpOworCisgICAgQ0ZJbmRleCBjZkxlbmd0aCA9IENGU3RyaW5nR2V0TGVu
Z3RoKGNmU3RyaW5nKTsKKyAgICBVbmlDaGFyICpjZkJ1ZmZlciA9IG1hbGxvYyhjZkxlbmd0aCAq
IHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJzKGNmU3RyaW5nLCBD
RlJhbmdlTWFrZSgwLCBjZkxlbmd0aCksIGNmQnVmZmVyKTsKKworICAgIEpTU3RyaW5nUmVmIGpz
U3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFyKiljZkJ1ZmZlciwg
Y2ZMZW5ndGgpOworCisgICAgZnJlZShjZkJ1ZmZlcik7CisgICAgQ0ZSZWxlYXNlKGNmU3RyaW5n
KTsKKworICAgIHJldHVybiBqc1N0cmluZzsKK30KKwogI2VuZGlmCiAKIHN0YXRpYyBib29sIHRp
bWVab25lSXNQU1QoKQpAQCAtOTcyLDggKzk4OSwzNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciogYXJndltdKQogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0VtcHR5U3Ry
aW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4
dCwganNPbmVTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwogCi0gICAgLy8gRklYTUU6IEFkZCB0
ZXN0cyBmb3IgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycywgdGhleSBhcmUgb25seSBjb3Zl
cmVkIGluIHRoZQotICAgIC8vIENvcmVGb3VuZGF0aW9uLXNwZWNpZmljIHRlc3RzLgorI2lmIFBM
QVRGT1JNKFFUKSB8fCBQTEFURk9STShDRikKKyAgICAvLyBGSVhNRTogY3VycmVudGx5IEpTU3Ry
aW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKSB0ZXN0cyBhcmUgZGVwZW5kZW50IG9uCisgICAgLy8g
cGxhdGZvcm0gc3BlY2lmaWMgZnVuY3Rpb24gY3JlYXRlV2l0aENoYXJhY3RlcnNIZWxwZXIoKS4g
VGhpcyBhdm9pZHMgcmVwbGljYXRpbmcKKyAgICAvLyBVVEYtMTYgZW5jb2RpbmcvZGVjb2Rpbmcg
bG9naWMgaW4gdGhlIHRlc3RzLiBXZSBjb3VsZCBtYWtlIHRoZSB0ZXN0IG1vcmUKKyAgICAvLyBp
bmRlcGVuZGVudCBieSBoYXZpbmcgdGhlIHJhdyBkYXRhIHRvIHVzZSBhcyBpbnB1dCBhbmQgY29t
cGFyZSB0aGUgb3V0cHV0LgorCisgICAgSlNTdHJpbmdSZWYganNFbXB0eUlTdHJpbmdXaXRoQ2hh
cmFjdGVycyA9IGNyZWF0ZVdpdGhDaGFyYWN0ZXJzSGVscGVyKCIiKTsKKyAgICBKU1ZhbHVlUmVm
IGpzRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQs
IGpzRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRU
eXBlKGNvbnRleHQsIGpzRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmlu
Zyk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgZmFsc2UpOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzRW1wdHlTdHJpbmdXaXRoQ2hh
cmFjdGVycywgMCk7CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzRW1wdHlTdHJp
bmdXaXRoQ2hhcmFjdGVycywgIiIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0Vt
cHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKKworICAgIEpTU3RyaW5nUmVsZWFzZShqc0Vt
cHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworCisgICAgSlNTdHJpbmdSZWYganNJU3RyaW5n
V2l0aENoYXJhY3RlcnMgPSBjcmVhdGVXaXRoQ2hhcmFjdGVyc0hlbHBlcigiQUJDIik7CisgICAg
SlNWYWx1ZVJlZiBqc1N0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29u
dGV4dCwganNJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRU
eXBlKGNvbnRleHQsIGpzU3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOwor
ICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc1N0cmluZ1dpdGhDaGFyYWN0ZXJzLCB0cnVlKTsK
KyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc1N0cmluZ1dpdGhDaGFyYWN0ZXJzLCBuYW4oIiIp
KTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkFCQyIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc1N0cmluZ1dpdGhDaGFy
YWN0ZXJzLCAiQUJDIik7CisKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNJU3RyaW5nV2l0aENoYXJh
Y3RlcnMpOworCisgICAgLy8gRklYTUU6IHRlc3Qgbm9uLXRyaXZpYWwgc3RyaW5ncy4KKyNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ0YpCiAgICAgdGVzdEpTU3RyaW5nUmVmQ0YoKTsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmNwcCBiL0phdmFTY3JpcHRD
b3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmNwcAppbmRleCA1ZWQ4NGQ4Li5lZjMxODg5IDEwMDY0
NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9xdC5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuY3BwCkBAIC0zMSwxMCArMzEsMTAgQEAK
ICNpbmNsdWRlIDxRU3RyaW5nPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKLS8vIFRoaXMgaW1wbGVt
ZW50cyBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXN0YXBpLmMgd2hlbiBjb21waWxlZCB3aXRoIFF0
LiBOb3RlCi0vLyB0aGF0IHRoaXMgZmlsZSBpcyBoaWdobHkgY291cGxlZCB3aXRoIHRlc3RhcGku
Yy4KKy8vIFRoaXMgaW1wbGVtZW50cyBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXN0YXBpLmMgd2hl
biBjb21waWxlZCB3aXRoIFF0LgogCiBleHRlcm4gIkMiIHsKKyAgICAvLyBGcm9tIHRlc3RhcGku
YwogICAgIEpTR2xvYmFsQ29udGV4dFJlZiBjb250ZXh0OwogICAgIGludCBmYWlsZWQ7CiB9CkBA
IC02MywzICs2Myw5IEBAIGV4dGVybiAiQyIgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQ
dHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0CiAgICAgSlNTdHJpbmdSZWxl
YXNlKHZhbHVlQXNTdHJpbmcpOwogfQogCitleHRlcm4gIkMiIEpTU3RyaW5nUmVmIGNyZWF0ZVdp
dGhDaGFyYWN0ZXJzSGVscGVyKGNvbnN0IGNoYXIqIHN0cikKK3sKKyAgICBRU3RyaW5nIHFzKHN0
cik7CisgICAgdXNob3J0KiBxc0J1ZmZlciA9IGNvbnN0X2Nhc3Q8dXNob3J0Kj4ocXMudXRmMTYo
KSk7CisgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoc3RhdGljX2Nhc3Q8
SlNDaGFyKj4ocXNCdWZmZXIpLCBxcy5zaXplKCkpOworfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaCBiL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpX3F0LmgKaW5kZXggZTI1Mjg0MS4uN2I3Yzc4NSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvdGVz
dHMvdGVzdGFwaV9xdC5oCkBAIC0zMCw2ICszMCw3IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAK
IHZvaWQgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKEpTVmFsdWVSZWYgdmFsdWUsIGNvbnN0
IGNoYXIqIGV4cGVjdGVkVmFsdWUpOworSlNTdHJpbmdSZWYgY3JlYXRlV2l0aENoYXJhY3RlcnNI
ZWxwZXIoY29uc3QgY2hhciogc3RyKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cK
aW5kZXggMDIyMWRmNC4uZGU1ZThhYiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtNSw2ICs1LDI4IEBACiAgICAg
ICAgIHRlc3RhcGkuYyBkZXBlbmRzIG9uIHRoZSBDb3JlIEZvdW5kYXRpb24uCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA1OAogCisgICAgICAgIENy
ZWF0ZSB0ZXN0cyBmb3IgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygpIHdpdGggcGxhdGZv
cm0gaGVscGVycy4gSW4gQ0YgcGxhdGZvcm1zCisgICAgICAgIHdlIHVzZSB0aGUgQ0ZTdHJpbmcg
Zm9yIHRlc3RpbmcgdGhlIDE2LWJpdCBKU1N0cmluZ3MsIGluIFF0IHdlIHVzZSBRU3RyaW5nLiBB
IGhlbHBlcgorICAgICAgICBmdW5jdGlvbiBmb3IgZWFjaCBwbGF0Zm9ybSBjcmVhdGUgdGhlIEpT
U3RyaW5nUmVmIHVzaW5nIHRoZSBXaXRoQ2hhcmFjdGVycyBjb25zdHJ1Y3RvcgorICAgICAgICBh
bmQgdGhlbiB3ZSB0ZXN0IGl0LgorCisgICAgICAgIFdpdGggdGhpcyBjb21taXQsIGFsbCBmdW5j
dGlvbnMgdGVzdGVkIGluIENGIGFyZSBub3cgYWxzbyB0ZXN0ZWQgaW4gUXQgY29tcGlsYXRpb24s
IGV4Y2VwdAorICAgICAgICBmb3IgdGhlIENGLXNwZWNpZmljIHdoZW4gaW4gYSBub24tQ0YgZW52
aXJvbm1lbnQuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAoY3Jl
YXRlV2l0aENoYXJhY3RlcnNIZWxwZXIpOgorICAgICAgICAobWFpbik6CisgICAgICAgICogQVBJ
L3Rlc3RzL3Rlc3RhcGlfcXQuY3BwOgorICAgICAgICAoY3JlYXRlV2l0aENoYXJhY3RlcnNIZWxw
ZXIpOgorICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpX3F0Lmg6CisKKzIwMTAtMDctMDEgIENh
aW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0
YXBpLmMgZGVwZW5kcyBvbiB0aGUgQ29yZSBGb3VuZGF0aW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAwNTgKKwogICAgICAgICBJbXBsZW1lbnQg
YXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKCkgZm9yIFF0IHBsYXRmb3JtIGluIHRlc3RhcGku
YyB1c2luZyBRU3RyaW5nLgogICAgICAgICBUbyBhY2hpZXZlIHRoYXQgYSBDKysgc291cmNlIGZp
bGUgd2FzIGFkZGVkIHdpdGggUXQgcmVsYXRlZCBjb2RlLCBhbmQgaXQgZXhwb3J0CiAgICAgICAg
IGZ1bmN0aW9uIHdpdGggQyBsaW5rYWdlLCB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0YXBpLmMK
LS0gCjEuNy4wLjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61406</attachid>
            <date>2010-07-13 12:44:16 -0700</date>
            <delta_ts>2010-07-13 22:26:16 -0700</delta_ts>
            <desc>Separate CF parts of testapi, compile support for Qt environment, take 2</desc>
            <filename>0001-Separate-CoreFoundation-specific-tests-in-JSC-s-test.patch</filename>
            <type>text/plain</type>
            <size>16802</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSA2MjM4ZGFjOTgyYzZkYjc3N2Y5NGVkYTM0OWJlMzJiNTE1N2VjOTgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE1OjQ4OjEwIC0w
MzAwClN1YmplY3Q6IFtQQVRDSF0gU2VwYXJhdGUgQ29yZUZvdW5kYXRpb24gc3BlY2lmaWMgdGVz
dHMgaW4gSlNDJ3MgdGVzdGFwaS5jCgotLS0KIENoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDExICsrKwogSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyB8ICAx
NzYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiBKYXZhU2NyaXB0Q29yZS9D
aGFuZ2VMb2cgICAgICAgICAgIHwgICAxOCArKysrCiBKYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBy
byAgICAgICAgIHwgICAzMiArKysrKysrCiBXZWJLaXQucHJvICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCspLCA2NyBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybwoK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4Mjc5Y2QwLi44YzExYzcx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDctMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVp
cmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTZXBhcmF0ZSBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0ZXN0cyBpbiBKU0Mn
cyB0ZXN0YXBpLmMKKworICAgICAgICB0ZXN0YXBpLmMgZGVwZW5kcyBvbiB0aGUgQ29yZSBGb3Vu
ZGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwNTgKKworICAgICAgICAqIFdlYktpdC5wcm86IGVuYWJsZSBjb21waWxhdGlvbiBvZiBKU0Mg
QyBBUEkgdGVzdC4KKwogMjAxMC0wNy0xMiAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhLgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMKaW5kZXggMTgzYWJmNS4uNjU3NzYxNSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYworKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5jCkBAIC0yMyw3ICsyMywxOCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAorI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oQ0YpCiAjaW5jbHVkZSAiSmF2YVNjcmlw
dENvcmUuaCIKKyNlbHNlCisjaW5jbHVkZSAiSmF2YVNjcmlwdC5oIgorI2luY2x1ZGUgPHN0ZGlv
Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8
dGltZS5oPgorI2VuZGlmCisKICNpbmNsdWRlICJKU0Jhc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAi
SlNDb250ZXh0UmVmUHJpdmF0ZS5oIgogI2luY2x1ZGUgIkpTT2JqZWN0UmVmUHJpdmF0ZS5oIgpA
QCAtOTEsNiArMTAyLDggQEAgc3RhdGljIHZvaWQgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKEpT
VmFsdWVSZWYgdmFsdWUsIGNvbnN0IGNoYXIqIGV4cGVjdGVkVmFsdWUKICAgICBKU1N0cmluZ1Jl
bGVhc2UodmFsdWVBc1N0cmluZyk7CiB9CiAKKy8vIEZJWE1FOiBkZWZpbmUgdGhpcyBhc3NlcnQg
Zm9yIG5vbi1DRiBwbGF0Zm9ybXMuCisjaWYgUExBVEZPUk0oQ0YpCiBzdGF0aWMgdm9pZCBhc3Nl
cnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhw
ZWN0ZWRWYWx1ZSkKIHsKICAgICBKU1N0cmluZ1JlZiB2YWx1ZUFzU3RyaW5nID0gSlNWYWx1ZVRv
U3RyaW5nQ29weShjb250ZXh0LCB2YWx1ZSwgTlVMTCk7CkBAIC0xMTksNiArMTMyLDcgQEAgc3Rh
dGljIHZvaWQgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKEpTVmFsdWVSZWYgdmFsdWUsIGNv
bnN0IGNoYXIqIGV4cGVjdGVkVmEKICAgICBmcmVlKGNmQnVmZmVyKTsKICAgICBKU1N0cmluZ1Jl
bGVhc2UodmFsdWVBc1N0cmluZyk7CiB9CisjZW5kaWYKIAogc3RhdGljIGJvb2wgdGltZVpvbmVJ
c1BTVCgpCiB7CkBAIC04MTcsNiArODMxLDgxIEBAIHN0YXRpYyBib29sIGNoZWNrRm9yQ3ljbGVJ
blByb3RvdHlwZUNoYWluKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjaWYgUExBVEZPUk0o
Q0YpCisvLyBUZXN0IHRoZSBKYXZhU2NyaXB0Q29yZSBzcGVjaWZpYyBBUEkgZm9yIGNvbnZlcnRp
bmcgSlNTdHJpbmdSZWZzIHRvL2Zyb20gQ0ZTdHJpbmdzLgorc3RhdGljIHZvaWQgdGVzdEpTU3Ry
aW5nUmVmQ0YoKQoreworICAgIFVuaUNoYXIgc2luZ2xlVW5pQ2hhciA9IDY1OyAvLyBDYXBpdGFs
IEEKKyAgICBDRk11dGFibGVTdHJpbmdSZWYgY2ZTdHJpbmcgPQorICAgICAgICBDRlN0cmluZ0Ny
ZWF0ZU11dGFibGVXaXRoRXh0ZXJuYWxDaGFyYWN0ZXJzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1
bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnNpbmdsZVVuaUNoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtDRkFsbG9jYXRvck51bGwpOworCisg
ICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhj
ZlN0cmluZyk7CisgICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwganNDRklTdHJpbmcpOworCisgICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0cmluZyA9
IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIsIGtDRlN0
cmluZ0VuY29kaW5nVVRGOCk7CisKKyAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nID0g
SlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZFbXB0eVN0cmluZyk7CisgICAgSlNWYWx1ZVJl
ZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJ
U3RyaW5nKTsKKworICAgIENGSW5kZXggY2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dldExlbmd0
aChjZlN0cmluZyk7CisgICAgVW5pQ2hhciAqYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxvYyhjZlN0
cmluZ0xlbmd0aCAqIHNpemVvZihVbmlDaGFyKSk7CisgICAgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJz
KGNmU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICBDRlJhbmdlTWFrZSgwLCBjZlN0
cmluZ0xlbmd0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7CisgICAgSlNT
dHJpbmdSZWYganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENo
YXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBjZlN0cmluZ0xlbmd0aCk7CisgICAgSlNWYWx1ZVJl
ZiBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBq
c0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlT
dHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hh
ciopYnVmZmVyLCBDRlN0cmluZ0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7CisgICAgZnJlZShi
dWZmZXIpOworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMgPSBK
U1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMp
OworCisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmcpID09IGtK
U1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3Ry
aW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworICAgIEFTU0VSVChKU1ZhbHVl
R2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOworICAg
IEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFj
dGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanND
RlN0cmluZywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdXaXRo
Q2hhcmFjdGVycywgdHJ1ZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0
cmluZywgZmFsc2UpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycywgZmFsc2UpOworCisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0
cmluZywgbmFuKCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1wdHlT
dHJpbmcsIDApOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCAwKTsKKyAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVuaUNo
YXIpKTsKKworICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIp
OworICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3Rl
cnMsICJBIik7CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmlu
ZywgIiIpOworICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdX
aXRoQ2hhcmFjdGVycywgIiIpOworCisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZT
dHJpbmcsICJBIik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRo
Q2hhcmFjdGVycywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5
U3RyaW5nLCAiIik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzLCAiIik7CisKKyAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNT
dHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOworICAg
IENGU3RyaW5nUmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEFTU0VSVChDRkVxdWFsKGNm
SlNTdHJpbmcsIGNmU3RyaW5nKSk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5n
LCBjZkVtcHR5U3RyaW5nKSk7CisgICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOworICAgIENGUmVs
ZWFzZShjZkpTRW1wdHlTdHJpbmcpOworCisgICAgQ0ZSZWxlYXNlKGNmU3RyaW5nKTsKKyAgICBD
RlJlbGVhc2UoY2ZFbXB0eVN0cmluZyk7CisKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJp
bmcpOworICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3RyaW5nKTsKKyAgICBKU1N0cmlu
Z1JlbGVhc2UoanNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyk7CisgICAgSlNTdHJpbmdSZWxlYXNl
KGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyk7Cit9CisjZW5kaWYKKwogaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIHsKICAgICBjb25zdCBjaGFyICpzY3JpcHRQYXRoID0g
InRlc3RhcGkuanMiOwpAQCAtODY5LDM0ICs5NTgsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciogYXJndltdKQogICAgIEpTU3RyaW5nUmVmIGpzT25lSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCIxIik7CiAgICAgSlNWYWx1ZVJlZiBqc09uZVN0cmluZyA9IEpTVmFs
dWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzT25lSVN0cmluZyk7CiAKLSAgICBVbmlDaGFyIHNpbmds
ZVVuaUNoYXIgPSA2NTsgLy8gQ2FwaXRhbCBBCi0gICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIGNmU3Ry
aW5nID0gCi0gICAgICAgIENGU3RyaW5nQ3JlYXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3Rl
cnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2luZ2xlVW5pQ2hhciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga0NGQWxsb2NhdG9yTnVsbCk7Ci0KLSAgICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZyA9IEpT
U3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNmU3RyaW5nKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZT
dHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZyk7Ci0gICAgCi0g
ICAgQ0ZTdHJpbmdSZWYgY2ZFbXB0eVN0cmluZyA9IENGU3RyaW5nQ3JlYXRlV2l0aENTdHJpbmco
a0NGQWxsb2NhdG9yRGVmYXVsdCwgIiIsIGtDRlN0cmluZ0VuY29kaW5nVVRGOCk7Ci0gICAgCi0g
ICAgSlNTdHJpbmdSZWYganNDRkVtcHR5SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3Ry
aW5nKGNmRW1wdHlTdHJpbmcpOwotICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nID0gSlNW
YWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0cmluZyk7Ci0KLSAgICBDRkluZGV4
IGNmU3RyaW5nTGVuZ3RoID0gQ0ZTdHJpbmdHZXRMZW5ndGgoY2ZTdHJpbmcpOwotICAgIFVuaUNo
YXIqIGJ1ZmZlciA9IChVbmlDaGFyKiltYWxsb2MoY2ZTdHJpbmdMZW5ndGggKiBzaXplb2YoVW5p
Q2hhcikpOwotICAgIENGU3RyaW5nR2V0Q2hhcmFjdGVycyhjZlN0cmluZywgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIENGUmFuZ2VNYWtlKDAsIGNmU3RyaW5nTGVuZ3RoKSwgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGJ1ZmZlcik7Ci0gICAgSlNTdHJpbmdSZWYganNDRklTdHJpbmdX
aXRoQ2hhcmFjdGVycyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVm
ZmVyLCBjZlN0cmluZ0xlbmd0aCk7Ci0gICAgSlNWYWx1ZVJlZiBqc0NGU3RyaW5nV2l0aENoYXJh
Y3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKTsKLSAgICAKLSAgICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3Rl
cnMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgQ0ZTdHJp
bmdHZXRMZW5ndGgoY2ZFbXB0eVN0cmluZykpOwotICAgIGZyZWUoYnVmZmVyKTsKLSAgICBKU1Zh
bHVlUmVmIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwganNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKLQogICAgIEFTU0VSVChK
U1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc1VuZGVmaW5lZCkgPT0ga0pTVHlwZVVuZGVmaW5lZCk7
CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzTnVsbCkgPT0ga0pTVHlwZU51
bGwpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc1RydWUpID09IGtKU1R5
cGVCb29sZWFuKTsKQEAgLTkwNiwxMCArOTY3LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzT25lVGhpcmQp
ID09IGtKU1R5cGVOdW1iZXIpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBq
c0VtcHR5U3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5
cGUoY29udGV4dCwganNPbmVTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChK
U1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKLSAg
ICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJz
KSA9PSBrSlNUeXBlU3RyaW5nKTsKLSAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwg
anNDRkVtcHR5U3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKLSAgICBBU1NFUlQoSlNWYWx1ZUdl
dFR5cGUoY29udGV4dCwganNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVT
dHJpbmcpOworCisgICAgLy8gRklYTUU6IEFkZCB0ZXN0cyBmb3IgSlNTdHJpbmdDcmVhdGVXaXRo
Q2hhcmFjdGVycywgdGhleSBhcmUgb25seSBjb3ZlcmVkIGluIHRoZQorICAgIC8vIENvcmVGb3Vu
ZGF0aW9uLXNwZWNpZmljIHRlc3RzLgorCisjaWYgUExBVEZPUk0oQ0YpCisgICAgdGVzdEpTU3Ry
aW5nUmVmQ0YoKTsKKyNlbmRpZgogCiAgICAgSlNPYmplY3RSZWYgbXlPYmplY3QgPSBKU09iamVj
dE1ha2UoY29udGV4dCwgTXlPYmplY3RfY2xhc3MoY29udGV4dCksIE5VTEwpOwogICAgIEpTU3Ry
aW5nUmVmIG15T2JqZWN0SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJN
eU9iamVjdCIpOwpAQCAtOTYzLDcgKzEwMjcsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciog
YXJndltdKQogICAgIAogICAgIEpTR2FyYmFnZUNvbGxlY3QoY29udGV4dCk7CiAgICAgCi0gICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQorICAgIGludCBpOworICAgIGZvciAoaSA9
IDA7IGkgPCAxMDAwMDsgaSsrKQogICAgICAgICBKU09iamVjdE1ha2UoY29udGV4dCwgMCwgMCk7
CiAKICAgICBhSGVhcFJlZiA9IEpTVmFsdWVUb09iamVjdChjb250ZXh0LCBKU09iamVjdEdldFBy
aXZhdGVQcm9wZXJ0eShjb250ZXh0LCBteU9iamVjdCwgcHJpdmF0ZVByb3BlcnR5TmFtZSksIDAp
OwpAQCAtMTA2NSwxMCArMTEzMCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CiAgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzT25lVGhpcmQsIHRydWUpOwogICAgIGFzc2Vy
dEVxdWFsc0FzQm9vbGVhbihqc0VtcHR5U3RyaW5nLCBmYWxzZSk7CiAgICAgYXNzZXJ0RXF1YWxz
QXNCb29sZWFuKGpzT25lU3RyaW5nLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4o
anNDRlN0cmluZywgdHJ1ZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmdX
aXRoQ2hhcmFjdGVycywgdHJ1ZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0
eVN0cmluZywgZmFsc2UpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NGRW1wdHlTdHJp
bmdXaXRoQ2hhcmFjdGVycywgZmFsc2UpOwogICAgIAogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVy
KGpzVW5kZWZpbmVkLCBuYW4oIiIpKTsKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc051bGws
IDApOwpAQCAtMTA3OSwxMiArMTE0MCw5IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNPbmVUaGlyZCwgMS4wIC8gMy4wKTsKICAg
ICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0VtcHR5U3RyaW5nLCAwKTsKICAgICBhc3NlcnRFcXVh
bHNBc051bWJlcihqc09uZVN0cmluZywgMSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanND
RlN0cmluZywgbmFuKCIiKSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRlN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCBuYW4oIiIpKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGRW1w
dHlTdHJpbmcsIDApOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCAwKTsKLSAgICBBU1NFUlQoc2l6ZW9mKEpTQ2hhcikgPT0gc2l6ZW9mKFVu
aUNoYXIpKTsKICAgICAKKy8vIEZJWE1FOiBJbXBsZW1lbnQgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0
ZXJzUHRyIGZvciBub24tQ0YgcGxhdGZvcm1zLgorI2lmIFBMQVRGT1JNKENGKQogICAgIGFzc2Vy
dEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc1VuZGVmaW5lZCwgInVuZGVmaW5lZCIpOwogICAgIGFz
c2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc051bGwsICJudWxsIik7CiAgICAgYXNzZXJ0RXF1
YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVHJ1ZSwgInRydWUiKTsKQEAgLTEwOTQsMTAgKzExNTIsNyBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzQ2hh
cmFjdGVyc1B0cihqc09uZVRoaXJkLCAiMC4zMzMzMzMzMzMzMzMzMzMzIik7CiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzRW1wdHlTdHJpbmcsICIiKTsKICAgICBhc3NlcnRFcXVh
bHNBc0NoYXJhY3RlcnNQdHIoanNPbmVTdHJpbmcsICIxIik7Ci0gICAgYXNzZXJ0RXF1YWxzQXND
aGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0
ZXJzUHRyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEiKTsKLSAgICBhc3NlcnRFcXVhbHNB
c0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nLCAiIik7Ci0gICAgYXNzZXJ0RXF1YWxzQXND
aGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiIik7CisjZW5kaWYK
ICAgICAKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNVbmRlZmluZWQsICJ1bmRlZmlu
ZWQiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNOdWxsLCAibnVsbCIpOwpAQCAt
MTEwOCwxMCArMTE2Myw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAg
YXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzT25lVGhpcmQsICIwLjMzMzMzMzMzMzMzMzMzMzMi
KTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNFbXB0eVN0cmluZywgIiIpOwogICAg
IGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVN0cmluZywgIjEiKTsKLSAgICBhc3NlcnRF
cXVhbHNBc1VURjhTdHJpbmcoanNDRlN0cmluZywgIkEiKTsKLSAgICBhc3NlcnRFcXVhbHNBc1VU
RjhTdHJpbmcoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOwotICAgIGFzc2VydEVxdWFs
c0FzVVRGOFN0cmluZyhqc0NGRW1wdHlTdHJpbmcsICIiKTsKLSAgICBhc3NlcnRFcXVhbHNBc1VU
RjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKICAgICAKICAgICBB
U1NFUlQoSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCwganNUcnVlLCBqc1RydWUpKTsKICAg
ICBBU1NFUlQoIUpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRleHQsIGpzT25lLCBqc09uZVN0cmlu
ZykpOwpAQCAtMTExOSwxNiArMTE3MCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgQVNTRVJUKEpTVmFsdWVJc0VxdWFsKGNvbnRleHQsIGpzT25lLCBqc09uZVN0cmlu
ZywgTlVMTCkpOwogICAgIEFTU0VSVCghSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwganNUcnVlLCBq
c0ZhbHNlLCBOVUxMKSk7CiAgICAgCi0gICAgQ0ZTdHJpbmdSZWYgY2ZKU1N0cmluZyA9IEpTU3Ry
aW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICBD
RlN0cmluZ1JlZiBjZkpTRW1wdHlTdHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBqc0NGRW1wdHlJU3RyaW5nKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChjZkpT
U3RyaW5nLCBjZlN0cmluZykpOwotICAgIEFTU0VSVChDRkVxdWFsKGNmSlNFbXB0eVN0cmluZywg
Y2ZFbXB0eVN0cmluZykpOwotICAgIENGUmVsZWFzZShjZkpTU3RyaW5nKTsKLSAgICBDRlJlbGVh
c2UoY2ZKU0VtcHR5U3RyaW5nKTsKIAotICAgIENGUmVsZWFzZShjZlN0cmluZyk7Ci0gICAgQ0ZS
ZWxlYXNlKGNmRW1wdHlTdHJpbmcpOwotICAgIAogICAgIGpzR2xvYmFsVmFsdWUgPSBKU09iamVj
dE1ha2UoY29udGV4dCwgTlVMTCwgTlVMTCk7CiAgICAgbWFrZUdsb2JhbE51bWJlclZhbHVlKGNv
bnRleHQpOwogICAgIEpTVmFsdWVQcm90ZWN0KGNvbnRleHQsIGpzR2xvYmFsVmFsdWUpOwpAQCAt
MTI1Niw3ICsxMjk4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAg
IG8gPSBKU09iamVjdE1ha2UoY29udGV4dCwgTlVMTCwgTlVMTCk7CiAgICAgSlNPYmplY3RTZXRQ
cm9wZXJ0eShjb250ZXh0LCBvLCBqc09uZUlTdHJpbmcsIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRl
eHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZU5vbmUsIE5VTEwpOwotICAgIEpTT2JqZWN0U2V0
UHJvcGVydHkoY29udGV4dCwgbywganNDRklTdHJpbmcsICBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51bSwgTlVMTCk7CisgICAgSlNPYmpl
Y3RTZXRQcm9wZXJ0eShjb250ZXh0LCBvLCBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVNYWtlTnVtYmVy
KGNvbnRleHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtLCBOVUxMKTsKICAgICBK
U1Byb3BlcnR5TmFtZUFycmF5UmVmIG5hbWVBcnJheSA9IEpTT2JqZWN0Q29weVByb3BlcnR5TmFt
ZXMoY29udGV4dCwgbyk7CiAgICAgc2l6ZV90IGV4cGVjdGVkQ291bnQgPSBKU1Byb3BlcnR5TmFt
ZUFycmF5R2V0Q291bnQobmFtZUFycmF5KTsKICAgICBzaXplX3QgY291bnQ7CkBAIC0xMzU3LDkg
KzEzOTksMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICBwcmludGYoIkZBSUw6IFRlc3Qgc2NyaXB0IHJldHVybmVkIHVuZXhw
ZWN0ZWQgdmFsdWU6XG4iKTsKICAgICAgICAgICAgIEpTU3RyaW5nUmVmIGV4Y2VwdGlvbklTdHJp
bmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGV4Y2VwdGlvbiwgTlVMTCk7Ci0gICAg
ICAgICAgICBDRlN0cmluZ1JlZiBleGNlcHRpb25DRiA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGV4Y2VwdGlvbklTdHJpbmcpOwotICAgICAgICAgICAgQ0ZTaG93
KGV4Y2VwdGlvbkNGKTsKLSAgICAgICAgICAgIENGUmVsZWFzZShleGNlcHRpb25DRik7CisKKyAg
ICAgICAgICAgIHNpemVfdCBzaXplVVRGOCA9IEpTU3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5n
U2l6ZShleGNlcHRpb25JU3RyaW5nKTsKKyAgICAgICAgICAgIGNoYXIgKmV4Y2VwdGlvblVURjgg
PSBtYWxsb2Moc2l6ZVVURjgpOworICAgICAgICAgICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhl
eGNlcHRpb25JU3RyaW5nLCBleGNlcHRpb25VVEY4LCBzaXplVVRGOCk7CisgICAgICAgICAgICBw
cmludGYoIiVzXG4iLCBleGNlcHRpb25VVEY4KTsKKyAgICAgICAgICAgIGZyZWUoZXhjZXB0aW9u
VVRGOCk7CisKICAgICAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShleGNlcHRpb25JU3RyaW5nKTsK
ICAgICAgICAgICAgIGZhaWxlZCA9IDE7CiAgICAgICAgIH0KQEAgLTEzNzYsMTAgKzE0MjIsNiBA
QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAgSlNTdHJpbmdSZWxlYXNl
KGpzRW1wdHlJU3RyaW5nKTsKICAgICBKU1N0cmluZ1JlbGVhc2UoanNPbmVJU3RyaW5nKTsKLSAg
ICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmcpOwotICAgIEpTU3RyaW5nUmVsZWFzZShqc0NG
RW1wdHlJU3RyaW5nKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRklTdHJpbmdXaXRoQ2hhcmFj
dGVycyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVy
cyk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGdvb2RTeW50YXgpOwogICAgIEpTU3RyaW5nUmVsZWFz
ZShiYWRTeW50YXgpOwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggMGFjY2NjOC4uZjMzN2M1NiAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA3LTAxICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEg
RmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdGVzdGFwaS5jIGRlcGVuZHMgb24gdGhlIENv
cmUgRm91bmRhdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQwMDU4CisKKyAgICAgICAgU2VwYXJhdGUgQ29yZUZvdW5kYXRpb24gc3BlY2lmaWMg
dGVzdHMgaW4gSlNDJ3MgdGVzdGFwaS5jLiBFbmFibGluZyBpdAorICAgICAgICB0byBjb21waWxl
IGluIFF0IGVudmlyb25tZW50cy4KKworICAgICAgICBBbGwgdGVzdHMgc2hvdWxkIHdvcmsgZXhj
ZXB0IGZvciB0aGUgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygpIGZ1bmN0aW9uLAorICAg
ICAgICBiZWNhdXNlIGl0cyB0ZXN0cyBkZXBlbmQgb24gQ29yZSBGb3VuZGF0aW9uIHNwZWNpZmlj
IGZ1bmN0aW9ucy4KKworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6CisgICAgICAgICh0
ZXN0SlNTdHJpbmdSZWZDRik6IG1vdmVkIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRlc3RzIHRv
IHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChtYWluKTogVGhlIG1vdmVzIHBsdXMgc29tZSBtaW5v
ciB0d2Vha3MuCisgICAgICAgICogdGVzdGFwaS5wcm86IEFkZGVkLgorCiAyMDEwLTA3LTA5ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJvIGIvSmF2
YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNWJjMTFlMAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJv
CkBAIC0wLDAgKzEsMzIgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0ZXN0YXBpCitTT1VS
Q0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYworUVQgLT0gZ3VpCitDT05GSUcgLT0gYXBwX2J1bmRs
ZQorQ09ORklHICs9IGJ1aWxkaW5nLWxpYnMKK3dpbjMyLSo6IENPTkZJRyArPSBjb25zb2xlCit3
aW4zMi1tc3ZjKjogQ09ORklHICs9IGV4Y2VwdGlvbnNfb2ZmIHN0bF9vZmYKKworaXNFbXB0eShP
VVRQVVRfRElSKTogT1VUUFVUX0RJUj0gLi4KK2luY2x1ZGUoJCRQV0QvLi4vV2ViS2l0LnByaSkK
KworQ09ORklHICs9IGxpbmtfcGtnY29uZmlnCisKK1FNQUtFX1JQQVRIRElSICs9ICQkT1VUUFVU
X0RJUi9saWIKKworIUNPTkZJRyhyZWxlYXNlLCBkZWJ1Z3xyZWxlYXNlKSB7CisgICAgT0JKRUNU
U19ESVIgPSBvYmovZGVidWcKK30gZWxzZSB7ICMgUmVsZWFzZQorICAgIE9CSkVDVFNfRElSID0g
b2JqL3JlbGVhc2UKK30KK09CSkVDVFNfRElSX1dUUiA9ICQkT0JKRUNUU19ESVIkJHtRTUFLRV9E
SVJfU0VQfQoraW5jbHVkZSgkJFBXRC9KYXZhU2NyaXB0Q29yZS5wcmkpCithZGRKYXZhU2NyaXB0
Q29yZUxpYiguKQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRVc2Vy
RGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCittYWMgeworICAgIExJQlNf
UFJJVkFURSArPSAtZnJhbWV3b3JrIEFwcEtpdAorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0LnBybyBi
L1dlYktpdC5wcm8KaW5kZXggZDhjMWJjNS4uNmMxNzhhYiAxMDA2NDQKLS0tIGEvV2ViS2l0LnBy
bworKysgYi9XZWJLaXQucHJvCkBAIC0xMyw2ICsxMyw3IEBAIGNvbnRhaW5zKFFUX0NPTkZJRywg
ZGVjbGFyYXRpdmUpIHsKICAgICBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L2RlY2xhcmF0aXZlKTog
U1VCRElSUyArPSBXZWJLaXQvcXQvZGVjbGFyYXRpdmUKIH0KIGV4aXN0cygkJFBXRC9KYXZhU2Ny
aXB0Q29yZS9qc2MucHJvKTogU1VCRElSUyArPSBKYXZhU2NyaXB0Q29yZS9qc2MucHJvCitleGlz
dHMoJCRQV0QvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8pOiBTVUJESVJTICs9IEphdmFTY3Jp
cHRDb3JlL3Rlc3RhcGkucHJvCiBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L3Rlc3RzKTogU1VCRElS
UyArPSBXZWJLaXQvcXQvdGVzdHMKIGV4aXN0cygkJFBXRC9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8pOiBTVUJESVJTICs9IFdlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwogZXhpc3RzKCQkUFdEL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8pOiBTVUJESVJTICs9IFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61462</attachid>
            <date>2010-07-13 20:42:44 -0700</date>
            <delta_ts>2010-07-13 22:29:54 -0700</delta_ts>
            <desc>Implement the assertEqualsAsCharactersPtr() for Qt</desc>
            <filename>0001-Implement-assertEqualsAsCharactersPtr-for-Qt-platfor.patch</filename>
            <type>text/plain</type>
            <size>8027</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSBjMWU2YmVjNDc5Y2FhYzg0ODcxYWI2MTBlMTM1NmM3ODllYzMyZGViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogVGh1LCAxIEp1bCAyMDEwIDE2OjUwOjA5IC0w
MzAwClN1YmplY3Q6IFtQQVRDSF0gSW1wbGVtZW50IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0
cigpIGZvciBRdCBwbGF0Zm9ybSBpbiB0ZXN0YXBpLmMKCi0tLQogSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkuYyAgICAgIHwgICAxMyArKysrLS0KIEphdmFTY3JpcHRDb3JlL0FQSS90
ZXN0cy90ZXN0YXBpX3F0LmNwcCB8ICAgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KwogSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaCAgIHwgICAzNiArKysrKysr
KysrKysrKysrKwogSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgIHwgICAx
OCArKysrKysrKwogSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8gICAgICAgICAgICAgIHwgICAg
MyArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBKYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9xdC5j
cHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9x
dC5oCgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYyBiL0ph
dmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKaW5kZXggNjU3NzYxNS4uOTk5YmQ0NyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYworKysgYi9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCkBAIC01NCw4ICs1NCwxMyBAQCBzdGF0aWMg
ZG91YmxlIG5hbihjb25zdCBjaGFyKikKIAogI2VuZGlmCiAKLXN0YXRpYyBKU0dsb2JhbENvbnRl
eHRSZWYgY29udGV4dDsKLXN0YXRpYyBpbnQgZmFpbGVkOworI2lmIFBMQVRGT1JNKFFUKQorI2lu
Y2x1ZGUgInRlc3RhcGlfcXQuaCIKKyNlbmRpZgorCitKU0dsb2JhbENvbnRleHRSZWYgY29udGV4
dDsKK2ludCBmYWlsZWQ7CisKIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFsc0FzQm9vbGVhbihKU1Zh
bHVlUmVmIHZhbHVlLCBib29sIGV4cGVjdGVkVmFsdWUpCiB7CiAgICAgaWYgKEpTVmFsdWVUb0Jv
b2xlYW4oY29udGV4dCwgdmFsdWUpICE9IGV4cGVjdGVkVmFsdWUpIHsKQEAgLTEwMiw3ICsxMDcs
NiBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoSlNWYWx1ZVJlZiB2YWx1
ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZQogICAgIEpTU3RyaW5nUmVsZWFzZSh2YWx1ZUFz
U3RyaW5nKTsKIH0KIAotLy8gRklYTUU6IGRlZmluZSB0aGlzIGFzc2VydCBmb3Igbm9uLUNGIHBs
YXRmb3Jtcy4KICNpZiBQTEFURk9STShDRikKIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hh
cmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlKQog
ewpAQCAtMTE0MSw4ICsxMTQ1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0VtcHR5U3RyaW5nLCAwKTsKICAgICBhc3NlcnRF
cXVhbHNBc051bWJlcihqc09uZVN0cmluZywgMSk7CiAgICAgCi0vLyBGSVhNRTogSW1wbGVtZW50
IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0ciBmb3Igbm9uLUNGIHBsYXRmb3Jtcy4KLSNpZiBQ
TEFURk9STShDRikKKyNpZiBQTEFURk9STShDRikgfHwgUExBVEZPUk0oUVQpCiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVW5kZWZpbmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNz
ZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzTnVsbCwgIm51bGwiKTsKICAgICBhc3NlcnRFcXVh
bHNBc0NoYXJhY3RlcnNQdHIoanNUcnVlLCAidHJ1ZSIpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuY3BwIGIvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGlfcXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVlZDg0
ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9x
dC5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBD
b21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJ0ZXN0YXBpX3F0LmgiCisKKyNpbmNsdWRl
IDxRU3RyaW5nPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKy8vIFRoaXMgaW1wbGVtZW50cyBoZWxw
ZXIgZnVuY3Rpb25zIGZvciB0ZXN0YXBpLmMgd2hlbiBjb21waWxlZCB3aXRoIFF0LiBOb3RlCisv
LyB0aGF0IHRoaXMgZmlsZSBpcyBoaWdobHkgY291cGxlZCB3aXRoIHRlc3RhcGkuYy4KKworZXh0
ZXJuICJDIiB7CisgICAgSlNHbG9iYWxDb250ZXh0UmVmIGNvbnRleHQ7CisgICAgaW50IGZhaWxl
ZDsKK30KKworZXh0ZXJuICJDIiB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1Zh
bHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlKQoreworICAgIEpTU3RyaW5n
UmVmIHZhbHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCAw
KTsKKworICAgIHNpemVfdCBqc0xlbmd0aCA9IEpTU3RyaW5nR2V0TGVuZ3RoKHZhbHVlQXNTdHJp
bmcpOworICAgIGNvbnN0IEpTQ2hhcioganNCdWZmZXIgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQ
dHIodmFsdWVBc1N0cmluZyk7CisKKyAgICBRU3RyaW5nIGV4cGVjdGVkVmFsdWVBc1FTdHJpbmcg
PSBRU3RyaW5nOjpmcm9tVXRmOChleHBlY3RlZFZhbHVlKTsKKyAgICBjb25zdCBpbnQgcXNMZW5n
dGggPSBleHBlY3RlZFZhbHVlQXNRU3RyaW5nLnNpemUoKTsKKyAgICBjb25zdCB1c2hvcnQqIHFz
QnVmZmVyID0gZXhwZWN0ZWRWYWx1ZUFzUVN0cmluZy51dGYxNigpOworCisgICAgaWYgKG1lbWNt
cChqc0J1ZmZlciwgcXNCdWZmZXIsIHFzTGVuZ3RoICogc2l6ZW9mKHVzaG9ydCkpKSB7CisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZhaWxlZDog
anNCdWZmZXIgIT0gcXNCdWZmZXJcbiIpOworICAgICAgICBmYWlsZWQgPSAxOworICAgIH0KKwor
ICAgIGlmIChqc0xlbmd0aCAhPSBzaXplX3QocXNMZW5ndGgpKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyIGZhaWxlZDoganNMZW5ndGgoJWQp
ICE9IHFzTGVuZ3RoKCVkKVxuIiwganNMZW5ndGgsIHFzTGVuZ3RoKTsKKyAgICAgICAgZmFpbGVk
ID0gMTsKKyAgICB9CisKKyAgICBKU1N0cmluZ1JlbGVhc2UodmFsdWVBc1N0cmluZyk7Cit9CisK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpX3F0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaV9xdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmUyNTI4NDEKLS0tIC9kZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0Q29yZS9B
UEkvdGVzdHMvdGVzdGFwaV9xdC5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCit2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1Zh
bHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlKTsKKworI2lmZGVmIF9fY3Bs
dXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAxOTcyOTA3Li41M2I0MzM2IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMDEgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWly
YSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0YXBpLmMgZGVwZW5kcyBvbiB0aGUg
Q29yZSBGb3VuZGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAwNTgKKworICAgICAgICBJbXBsZW1lbnQgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0
ZXJzUHRyKCkgZm9yIFF0IHBsYXRmb3JtIGluIHRlc3RhcGkuYyB1c2luZyBRU3RyaW5nLgorICAg
ICAgICBUbyBhY2hpZXZlIHRoYXQgYSBDKysgc291cmNlIGZpbGUgd2FzIGFkZGVkIHdpdGggUXQg
cmVsYXRlZCBjb2RlLCBhbmQgaXQgZXhwb3J0CisgICAgICAgIGZ1bmN0aW9uIHdpdGggQyBsaW5r
YWdlLCB3aGljaCBjYW4gYmUgdXNlZCBpbiB0ZXN0YXBpLmMKKworICAgICAgICAqIEFQSS90ZXN0
cy90ZXN0YXBpLmM6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFw
aV9xdC5jcHA6IEFkZGVkLgorICAgICAgICAoYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKToK
KyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaV9xdC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
YXBpLnBybzoKKwogMjAxMC0wNy0xMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8gYi9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybwppbmRl
eCA1YmMxMWUwLi4yMTFlZGYyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBy
bworKysgYi9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybwpAQCAtMSw2ICsxLDcgQEAKIFRFTVBM
QVRFID0gYXBwCiBUQVJHRVQgPSB0ZXN0YXBpCi1TT1VSQ0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGku
YworU09VUkNFUyA9IEFQSS90ZXN0cy90ZXN0YXBpLmMgQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuY3Bw
CitIRUFERVJTID0gQVBJL3Rlc3RzL3Rlc3RhcGlfcXQuaAogUVQgLT0gZ3VpCiBDT05GSUcgLT0g
YXBwX2J1bmRsZQogQ09ORklHICs9IGJ1aWxkaW5nLWxpYnMKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61470</attachid>
            <date>2010-07-13 22:26:16 -0700</date>
            <delta_ts>2010-07-14 05:16:34 -0700</delta_ts>
            <desc>Separate CF parts of testapi, compile support for Qt environment, take 3</desc>
            <filename>0001-Separate-CoreFoundation-specific-tests-in-JSC-s-test.patch</filename>
            <type>text/plain</type>
            <size>19094</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSA0MWI4ODgwZmVlZmYwNWM2NWY3ZWE4MzZhMDBjYTA3OGQ4MDEwMTI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCAxNCBKdWwgMjAxMCAwMTo0Mzo1OSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRl
c3RzIGluIEpTQydzIHRlc3RhcGkuYwoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysKIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMgICAgICAgICAgICAgICAgIHwgIDE3NiArKysrKysrKysrKystLS0tLS0tLQog
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIy
ICsrKwogLi4uL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGkudmNwcm9qICAg
fCAgICA0ICsKIC4uLi90ZXN0YXBpL3Rlc3RhcGlDb21tb24udnNwcm9wcyAgICAgICAgICAgICAg
ICAgIHwgICAgMiArLQogSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8gICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDMyICsrKysKIFdlYktpdC5wcm8gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDE4MSBpbnNlcnRpb25z
KCspLCA2OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBKYXZhU2NyaXB0Q29yZS90
ZXN0YXBpLnBybwoKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiMDQ4
NzZhLi4xNTdjYjgyIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTAtMDctMTMgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAg
PGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0YXBpLmMgZGVwZW5kcyBvbiB0aGUgQ29yZSBGb3Vu
ZGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDAwNTgKKworICAgICAgICBTZXBhcmF0ZSBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0ZXN0cyBp
biBKU0MncyB0ZXN0YXBpLmMsIGxhbmRpbmcKKyAgICAgICAgYWdhaW4gdG8gZml4IFdpbmRvd3Mg
YnVpbGQuCisKKyAgICAgICAgKiBXZWJLaXQucHJvOiBlbmFibGUgY29tcGlsYXRpb24gb2YgSlND
IEMgQVBJIHRlc3QuCisKIDIwMTAtMDctMTMgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MzI2Mi4K
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMgYi9KYXZhU2Ny
aXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCmluZGV4IDE4M2FiZjUuLjY1Nzc2MTUgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmMKKysrIGIvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwpAQCAtMjMsNyArMjMsMTggQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAogICovCiAKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKENGKQogI2lu
Y2x1ZGUgIkphdmFTY3JpcHRDb3JlLmgiCisjZWxzZQorI2luY2x1ZGUgIkphdmFTY3JpcHQuaCIK
KyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmlu
Zy5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNlbmRpZgorCiAjaW5jbHVkZSAiSlNCYXNlUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIkpTQ29udGV4dFJlZlByaXZhdGUuaCIKICNpbmNsdWRlICJKU09iamVj
dFJlZlByaXZhdGUuaCIKQEAgLTkxLDYgKzEwMiw4IEBAIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFs
c0FzVVRGOFN0cmluZyhKU1ZhbHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVl
CiAgICAgSlNTdHJpbmdSZWxlYXNlKHZhbHVlQXNTdHJpbmcpOwogfQogCisvLyBGSVhNRTogZGVm
aW5lIHRoaXMgYXNzZXJ0IGZvciBub24tQ0YgcGxhdGZvcm1zLgorI2lmIFBMQVRGT1JNKENGKQog
c3RhdGljIHZvaWQgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKEpTVmFsdWVSZWYgdmFsdWUs
IGNvbnN0IGNoYXIqIGV4cGVjdGVkVmFsdWUpCiB7CiAgICAgSlNTdHJpbmdSZWYgdmFsdWVBc1N0
cmluZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgdmFsdWUsIE5VTEwpOwpAQCAtMTE5
LDYgKzEzMiw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1Zh
bHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhCiAgICAgZnJlZShjZkJ1ZmZlcik7
CiAgICAgSlNTdHJpbmdSZWxlYXNlKHZhbHVlQXNTdHJpbmcpOwogfQorI2VuZGlmCiAKIHN0YXRp
YyBib29sIHRpbWVab25lSXNQU1QoKQogewpAQCAtODE3LDYgKzgzMSw4MSBAQCBzdGF0aWMgYm9v
bCBjaGVja0ZvckN5Y2xlSW5Qcm90b3R5cGVDaGFpbigpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAorI2lmIFBMQVRGT1JNKENGKQorLy8gVGVzdCB0aGUgSmF2YVNjcmlwdENvcmUgc3BlY2lmaWMg
QVBJIGZvciBjb252ZXJ0aW5nIEpTU3RyaW5nUmVmcyB0by9mcm9tIENGU3RyaW5ncy4KK3N0YXRp
YyB2b2lkIHRlc3RKU1N0cmluZ1JlZkNGKCkKK3sKKyAgICBVbmlDaGFyIHNpbmdsZVVuaUNoYXIg
PSA2NTsgLy8gQ2FwaXRhbCBBCisgICAgQ0ZNdXRhYmxlU3RyaW5nUmVmIGNmU3RyaW5nID0KKyAg
ICAgICAgQ0ZTdHJpbmdDcmVhdGVNdXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVyc05vQ29weShr
Q0ZBbGxvY2F0b3JEZWZhdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZzaW5nbGVVbmlDaGFyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0ZBbGxv
Y2F0b3JOdWxsKTsKKworICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNTdHJpbmdDcmVh
dGVXaXRoQ0ZTdHJpbmcoY2ZTdHJpbmcpOworICAgIEpTVmFsdWVSZWYganNDRlN0cmluZyA9IEpT
VmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nKTsKKworICAgIENGU3RyaW5nUmVm
IGNmRW1wdHlTdHJpbmcgPSBDRlN0cmluZ0NyZWF0ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsICIiLCBrQ0ZTdHJpbmdFbmNvZGluZ1VURjgpOworCisgICAgSlNTdHJpbmdSZWYganND
RkVtcHR5SVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNmRW1wdHlTdHJpbmcp
OworICAgIEpTVmFsdWVSZWYganNDRkVtcHR5U3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29u
dGV4dCwganNDRkVtcHR5SVN0cmluZyk7CisKKyAgICBDRkluZGV4IGNmU3RyaW5nTGVuZ3RoID0g
Q0ZTdHJpbmdHZXRMZW5ndGgoY2ZTdHJpbmcpOworICAgIFVuaUNoYXIgKmJ1ZmZlciA9IChVbmlD
aGFyKiltYWxsb2MoY2ZTdHJpbmdMZW5ndGggKiBzaXplb2YoVW5pQ2hhcikpOworICAgIENGU3Ry
aW5nR2V0Q2hhcmFjdGVycyhjZlN0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgQ0ZS
YW5nZU1ha2UoMCwgY2ZTdHJpbmdMZW5ndGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBi
dWZmZXIpOworICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0
cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgY2ZTdHJpbmdMZW5ndGgp
OworICAgIEpTVmFsdWVSZWYganNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VT
dHJpbmcoY29udGV4dCwganNDRklTdHJpbmdXaXRoQ2hhcmFjdGVycyk7CisKKyAgICBKU1N0cmlu
Z1JlZiBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzKChKU0NoYXIqKWJ1ZmZlciwgQ0ZTdHJpbmdHZXRMZW5ndGgoY2ZFbXB0eVN0cmlu
ZykpOworICAgIGZyZWUoYnVmZmVyKTsKKyAgICBKU1ZhbHVlUmVmIGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRkVtcHR5SVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzKTsKKworICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBq
c0NGU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5nKTsKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUo
Y29udGV4dCwganNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKKyAg
ICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRkVtcHR5U3RyaW5nKSA9PSBrSlNU
eXBlU3RyaW5nKTsKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRkVtcHR5
U3RyaW5nV2l0aENoYXJhY3RlcnMpID09IGtKU1R5cGVTdHJpbmcpOworCisgICAgYXNzZXJ0RXF1
YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmcsIHRydWUpOworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVh
bihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsIHRydWUpOworICAgIGFzc2VydEVxdWFsc0FzQm9v
bGVhbihqc0NGRW1wdHlTdHJpbmcsIGZhbHNlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4o
anNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsIGZhbHNlKTsKKworICAgIGFzc2VydEVxdWFs
c0FzTnVtYmVyKGpzQ0ZTdHJpbmcsIG5hbigiIikpOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVy
KGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgbmFuKCIiKSk7CisgICAgYXNzZXJ0RXF1YWxzQXNO
dW1iZXIoanNDRkVtcHR5U3RyaW5nLCAwKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NG
RW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgMCk7CisgICAgQVNTRVJUKHNpemVvZihKU0NoYXIp
ID09IHNpemVvZihVbmlDaGFyKSk7CisKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIo
anNDRlN0cmluZywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRlN0
cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0
cihqc0NGRW1wdHlTdHJpbmcsICIiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIo
anNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKKworICAgIGFzc2VydEVxdWFsc0Fz
VVRGOFN0cmluZyhqc0NGU3RyaW5nLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmlu
Zyhqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7CisgICAgYXNzZXJ0RXF1YWxzQXNVVEY4
U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZywgIiIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmlu
Zyhqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOworCisgICAgQ0ZTdHJpbmdSZWYg
Y2ZKU1N0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGpz
Q0ZJU3RyaW5nKTsKKyAgICBDRlN0cmluZ1JlZiBjZkpTRW1wdHlTdHJpbmcgPSBKU1N0cmluZ0Nv
cHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGRW1wdHlJU3RyaW5nKTsKKyAgICBB
U1NFUlQoQ0ZFcXVhbChjZkpTU3RyaW5nLCBjZlN0cmluZykpOworICAgIEFTU0VSVChDRkVxdWFs
KGNmSlNFbXB0eVN0cmluZywgY2ZFbXB0eVN0cmluZykpOworICAgIENGUmVsZWFzZShjZkpTU3Ry
aW5nKTsKKyAgICBDRlJlbGVhc2UoY2ZKU0VtcHR5U3RyaW5nKTsKKworICAgIENGUmVsZWFzZShj
ZlN0cmluZyk7CisgICAgQ0ZSZWxlYXNlKGNmRW1wdHlTdHJpbmcpOworCisgICAgSlNTdHJpbmdS
ZWxlYXNlKGpzQ0ZJU3RyaW5nKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmlu
Zyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworICAg
IEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworfQorI2Vu
ZGlmCisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiB7CiAgICAgY29uc3QgY2hh
ciAqc2NyaXB0UGF0aCA9ICJ0ZXN0YXBpLmpzIjsKQEAgLTg2OSwzNCArOTU4LDYgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBKU1N0cmluZ1JlZiBqc09uZUlTdHJpbmcg
PSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiMSIpOwogICAgIEpTVmFsdWVSZWYganNP
bmVTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc09uZUlTdHJpbmcpOwogCi0g
ICAgVW5pQ2hhciBzaW5nbGVVbmlDaGFyID0gNjU7IC8vIENhcGl0YWwgQQotICAgIENGTXV0YWJs
ZVN0cmluZ1JlZiBjZlN0cmluZyA9IAotICAgICAgICBDRlN0cmluZ0NyZWF0ZU11dGFibGVXaXRo
RXh0ZXJuYWxDaGFyYWN0ZXJzTm9Db3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpbmdsZVVu
aUNoYXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGtDRkFsbG9jYXRvck51bGwpOwotCi0gICAgSlNTdHJpbmdSZWYg
anNDRklTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhjZlN0cmluZyk7Ci0gICAg
SlNWYWx1ZVJlZiBqc0NGU3RyaW5nID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRklT
dHJpbmcpOwotICAgIAotICAgIENGU3RyaW5nUmVmIGNmRW1wdHlTdHJpbmcgPSBDRlN0cmluZ0Ny
ZWF0ZVdpdGhDU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsICIiLCBrQ0ZTdHJpbmdFbmNvZGlu
Z1VURjgpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmcgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhDRlN0cmluZyhjZkVtcHR5U3RyaW5nKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZF
bXB0eVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmcp
OwotCi0gICAgQ0ZJbmRleCBjZlN0cmluZ0xlbmd0aCA9IENGU3RyaW5nR2V0TGVuZ3RoKGNmU3Ry
aW5nKTsKLSAgICBVbmlDaGFyKiBidWZmZXIgPSAoVW5pQ2hhciopbWFsbG9jKGNmU3RyaW5nTGVu
Z3RoICogc2l6ZW9mKFVuaUNoYXIpKTsKLSAgICBDRlN0cmluZ0dldENoYXJhY3RlcnMoY2ZTdHJp
bmcsIAotICAgICAgICAgICAgICAgICAgICAgICAgICBDRlJhbmdlTWFrZSgwLCBjZlN0cmluZ0xl
bmd0aCksIAotICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIpOwotICAgIEpTU3RyaW5n
UmVmIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0
ZXJzKChKU0NoYXIqKWJ1ZmZlciwgY2ZTdHJpbmdMZW5ndGgpOwotICAgIEpTVmFsdWVSZWYganND
RlN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwganNDRklT
dHJpbmdXaXRoQ2hhcmFjdGVycyk7Ci0gICAgCi0gICAgSlNTdHJpbmdSZWYganNDRkVtcHR5SVN0
cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFy
KilidWZmZXIsIENGU3RyaW5nR2V0TGVuZ3RoKGNmRW1wdHlTdHJpbmcpKTsKLSAgICBmcmVlKGJ1
ZmZlcik7Ci0gICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpT
VmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyk7
Ci0KICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNVbmRlZmluZWQpID09IGtK
U1R5cGVVbmRlZmluZWQpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc051
bGwpID09IGtKU1R5cGVOdWxsKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwg
anNUcnVlKSA9PSBrSlNUeXBlQm9vbGVhbik7CkBAIC05MDYsMTAgKzk2NywxMyBAQCBpbnQgbWFp
bihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250
ZXh0LCBqc09uZVRoaXJkKSA9PSBrSlNUeXBlTnVtYmVyKTsKICAgICBBU1NFUlQoSlNWYWx1ZUdl
dFR5cGUoY29udGV4dCwganNFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNT
RVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzT25lU3RyaW5nKSA9PSBrSlNUeXBlU3RyaW5n
KTsKLSAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pT
VHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpTVmFsdWVH
ZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAg
QVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKKworICAgIC8vIEZJWE1FOiBBZGQgdGVzdHMgZm9yIEpT
U3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMsIHRoZXkgYXJlIG9ubHkgY292ZXJlZCBpbiB0aGUK
KyAgICAvLyBDb3JlRm91bmRhdGlvbi1zcGVjaWZpYyB0ZXN0cy4KKworI2lmIFBMQVRGT1JNKENG
KQorICAgIHRlc3RKU1N0cmluZ1JlZkNGKCk7CisjZW5kaWYKIAogICAgIEpTT2JqZWN0UmVmIG15
T2JqZWN0ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE15T2JqZWN0X2NsYXNzKGNvbnRleHQpLCBO
VUxMKTsKICAgICBKU1N0cmluZ1JlZiBteU9iamVjdElTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiTXlPYmplY3QiKTsKQEAgLTk2Myw3ICsxMDI3LDggQEAgaW50IG1haW4o
aW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAKICAgICBKU0dhcmJhZ2VDb2xsZWN0KGNvbnRl
eHQpOwogICAgIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKyAgICBpbnQg
aTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKICAgICAgICAgSlNPYmplY3RNYWtl
KGNvbnRleHQsIDAsIDApOwogCiAgICAgYUhlYXBSZWYgPSBKU1ZhbHVlVG9PYmplY3QoY29udGV4
dCwgSlNPYmplY3RHZXRQcml2YXRlUHJvcGVydHkoY29udGV4dCwgbXlPYmplY3QsIHByaXZhdGVQ
cm9wZXJ0eU5hbWUpLCAwKTsKQEAgLTEwNjUsMTAgKzExMzAsNiBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc09uZVRoaXJkLCB0
cnVlKTsKICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNFbXB0eVN0cmluZywgZmFsc2UpOwog
ICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc09uZVN0cmluZywgdHJ1ZSk7Ci0gICAgYXNzZXJ0
RXF1YWxzQXNCb29sZWFuKGpzQ0ZTdHJpbmcsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9v
bGVhbihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0Fz
Qm9vbGVhbihqc0NGRW1wdHlTdHJpbmcsIGZhbHNlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xl
YW4oanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsIGZhbHNlKTsKICAgICAKICAgICBhc3Nl
cnRFcXVhbHNBc051bWJlcihqc1VuZGVmaW5lZCwgbmFuKCIiKSk7CiAgICAgYXNzZXJ0RXF1YWxz
QXNOdW1iZXIoanNOdWxsLCAwKTsKQEAgLTEwNzksMTIgKzExNDAsOSBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzT25lVGhpcmQs
IDEuMCAvIDMuMCk7CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNFbXB0eVN0cmluZywgMCk7
CiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNPbmVTdHJpbmcsIDEpOwotICAgIGFzc2VydEVx
dWFsc0FzTnVtYmVyKGpzQ0ZTdHJpbmcsIG5hbigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVt
YmVyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgbmFuKCIiKSk7Ci0gICAgYXNzZXJ0RXF1YWxz
QXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nLCAwKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihq
c0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgMCk7Ci0gICAgQVNTRVJUKHNpemVvZihKU0No
YXIpID09IHNpemVvZihVbmlDaGFyKSk7CiAgICAgCisvLyBGSVhNRTogSW1wbGVtZW50IGFzc2Vy
dEVxdWFsc0FzQ2hhcmFjdGVyc1B0ciBmb3Igbm9uLUNGIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9S
TShDRikKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNVbmRlZmluZWQsICJ1bmRl
ZmluZWQiKTsKICAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNOdWxsLCAibnVsbCIp
OwogICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc1RydWUsICJ0cnVlIik7CkBAIC0x
MDk0LDEwICsxMTUyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBh
c3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMz
MyIpOwogICAgIGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0VtcHR5U3RyaW5nLCAiIik7
CiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzT25lU3RyaW5nLCAiMSIpOwotICAg
IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2Vy
dEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0g
ICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAg
IGFzc2VydEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIiIpOworI2VuZGlmCiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzVW5k
ZWZpbmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzTnVs
bCwgIm51bGwiKTsKQEAgLTExMDgsMTAgKzExNjMsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciogYXJndltdKQogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc09uZVRoaXJkLCAiMC4z
MzMzMzMzMzMzMzMzMzMzIik7CiAgICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzRW1wdHlT
dHJpbmcsICIiKTsKICAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVTdHJpbmcsICIx
Iik7Ci0gICAgYXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmcsICJBIik7Ci0gICAg
YXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycywgIkEiKTsK
LSAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5nLCAiIik7Ci0gICAg
YXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAi
Iik7CiAgICAgCiAgICAgQVNTRVJUKEpTVmFsdWVJc1N0cmljdEVxdWFsKGNvbnRleHQsIGpzVHJ1
ZSwganNUcnVlKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNTdHJpY3RFcXVhbChjb250ZXh0LCBq
c09uZSwganNPbmVTdHJpbmcpKTsKQEAgLTExMTksMTYgKzExNzAsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciogYXJndltdKQogICAgIEFTU0VSVChKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBq
c09uZSwganNPbmVTdHJpbmcsIE5VTEwpKTsKICAgICBBU1NFUlQoIUpTVmFsdWVJc0VxdWFsKGNv
bnRleHQsIGpzVHJ1ZSwganNGYWxzZSwgTlVMTCkpOwogICAgIAotICAgIENGU3RyaW5nUmVmIGNm
SlNTdHJpbmcgPSBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NG
SVN0cmluZyk7Ci0gICAgQ0ZTdHJpbmdSZWYgY2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5
Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRkVtcHR5SVN0cmluZyk7Ci0gICAgQVNT
RVJUKENGRXF1YWwoY2ZKU1N0cmluZywgY2ZTdHJpbmcpKTsKLSAgICBBU1NFUlQoQ0ZFcXVhbChj
ZkpTRW1wdHlTdHJpbmcsIGNmRW1wdHlTdHJpbmcpKTsKLSAgICBDRlJlbGVhc2UoY2ZKU1N0cmlu
Zyk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNFbXB0eVN0cmluZyk7CiAKLSAgICBDRlJlbGVhc2UoY2ZT
dHJpbmcpOwotICAgIENGUmVsZWFzZShjZkVtcHR5U3RyaW5nKTsKLSAgICAKICAgICBqc0dsb2Jh
bFZhbHVlID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwogICAgIG1ha2VHbG9i
YWxOdW1iZXJWYWx1ZShjb250ZXh0KTsKICAgICBKU1ZhbHVlUHJvdGVjdChjb250ZXh0LCBqc0ds
b2JhbFZhbHVlKTsKQEAgLTEyNTYsNyArMTI5OCw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAKICAgICBvID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE5VTEwsIE5VTEwpOwog
ICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywganNPbmVJU3RyaW5nLCBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsK
LSAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIG8sIGpzQ0ZJU3RyaW5nLCAgSlNWYWx1
ZU1ha2VOdW1iZXIoY29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5V
TEwpOworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgbywgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCAxKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RW51
bSwgTlVMTCk7CiAgICAgSlNQcm9wZXJ0eU5hbWVBcnJheVJlZiBuYW1lQXJyYXkgPSBKU09iamVj
dENvcHlQcm9wZXJ0eU5hbWVzKGNvbnRleHQsIG8pOwogICAgIHNpemVfdCBleHBlY3RlZENvdW50
ID0gSlNQcm9wZXJ0eU5hbWVBcnJheUdldENvdW50KG5hbWVBcnJheSk7CiAgICAgc2l6ZV90IGNv
dW50OwpAQCAtMTM1Nyw5ICsxMzk5LDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgcHJpbnRmKCJGQUlMOiBUZXN0IHNjcmlw
dCByZXR1cm5lZCB1bmV4cGVjdGVkIHZhbHVlOlxuIik7CiAgICAgICAgICAgICBKU1N0cmluZ1Jl
ZiBleGNlcHRpb25JU3RyaW5nID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBleGNlcHRp
b24sIE5VTEwpOwotICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgZXhjZXB0aW9uQ0YgPSBKU1N0cmlu
Z0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBleGNlcHRpb25JU3RyaW5nKTsKLSAg
ICAgICAgICAgIENGU2hvdyhleGNlcHRpb25DRik7Ci0gICAgICAgICAgICBDRlJlbGVhc2UoZXhj
ZXB0aW9uQ0YpOworCisgICAgICAgICAgICBzaXplX3Qgc2l6ZVVURjggPSBKU1N0cmluZ0dldE1h
eGltdW1VVEY4Q1N0cmluZ1NpemUoZXhjZXB0aW9uSVN0cmluZyk7CisgICAgICAgICAgICBjaGFy
ICpleGNlcHRpb25VVEY4ID0gbWFsbG9jKHNpemVVVEY4KTsKKyAgICAgICAgICAgIEpTU3RyaW5n
R2V0VVRGOENTdHJpbmcoZXhjZXB0aW9uSVN0cmluZywgZXhjZXB0aW9uVVRGOCwgc2l6ZVVURjgp
OworICAgICAgICAgICAgcHJpbnRmKCIlc1xuIiwgZXhjZXB0aW9uVVRGOCk7CisgICAgICAgICAg
ICBmcmVlKGV4Y2VwdGlvblVURjgpOworCiAgICAgICAgICAgICBKU1N0cmluZ1JlbGVhc2UoZXhj
ZXB0aW9uSVN0cmluZyk7CiAgICAgICAgICAgICBmYWlsZWQgPSAxOwogICAgICAgICB9CkBAIC0x
Mzc2LDEwICsxNDIyLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKIAogICAg
IEpTU3RyaW5nUmVsZWFzZShqc0VtcHR5SVN0cmluZyk7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGpz
T25lSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJU3RyaW5nKTsKLSAgICBKU1N0
cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZJ
U3RyaW5nV2l0aENoYXJhY3RlcnMpOwotICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGRW1wdHlJU3Ry
aW5nV2l0aENoYXJhY3RlcnMpOwogICAgIEpTU3RyaW5nUmVsZWFzZShnb29kU3ludGF4KTsKICAg
ICBKU1N0cmluZ1JlbGVhc2UoYmFkU3ludGF4KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDQ4ZDguLjNm
MjVlYzUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wNy0xMyAgQ2FpbyBNYXJj
ZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHRlc3RhcGkuYyBk
ZXBlbmRzIG9uIHRoZSBDb3JlIEZvdW5kYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA1OAorCisgICAgICAgIFNlcGFyYXRlIENvcmVGb3Vu
ZGF0aW9uIHNwZWNpZmljIHRlc3RzIGluIEpTQydzIHRlc3RhcGkuYywgbGFuZGluZworICAgICAg
ICBhZ2FpbiB0byBmaXggV2luZG93cyBidWlsZC4gQWxzbyBlbmFibGluZyBpdCB0byBjb21waWxl
IGluIFF0CisgICAgICAgIGVudmlyb25tZW50cy4KKworICAgICAgICBBbGwgdGVzdHMgc2hvdWxk
IHdvcmsgZXhjZXB0IGZvciB0aGUgSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygpIGZ1bmN0
aW9uLAorICAgICAgICBiZWNhdXNlIGl0cyB0ZXN0cyBkZXBlbmQgb24gQ29yZSBGb3VuZGF0aW9u
IHNwZWNpZmljIGZ1bmN0aW9ucy4KKworICAgICAgICAqIEFQSS90ZXN0cy90ZXN0YXBpLmM6Cisg
ICAgICAgICh0ZXN0SlNTdHJpbmdSZWZDRik6IG1vdmVkIENvcmVGb3VuZGF0aW9uIHNwZWNpZmlj
IHRlc3RzIHRvIHRoaXMgZnVuY3Rpb24uCisgICAgICAgIChtYWluKTogVGhlIG1vdmVzIHBsdXMg
c29tZSBtaW5vciB0d2Vha3MuCisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3Rh
cGkvdGVzdGFwaS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3Rh
cGkvdGVzdGFwaUNvbW1vbi52c3Byb3BzOiBpbmNsdWRpbmcKKyAgICAgICAgY29uZmlnLmggaW4g
d2luZG93cyBidWlsZCBzeXN0ZW0uCisgICAgICAgICogdGVzdGFwaS5wcm86IEFkZGVkLgorCiAy
MDEwLTA3LTEzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjMyNjIuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovdGVzdGFwaS90ZXN0YXBpLnZjcHJvaiBi
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGkudmNw
cm9qCmluZGV4IDk1ODFlNTQuLjUxMzk4NmMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGkudmNwcm9qCisrKyBiL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGkudmNwcm9qCkBAIC0z
ODgsNiArMzg4LDEwIEBACiAJPC9SZWZlcmVuY2VzPg0KIAk8RmlsZXM+DQogCQk8RmlsZQ0KKwkJ
CVJlbGF0aXZlUGF0aD0iLi5cLi5cY29uZmlnLmgiDQorCQkJPg0KKwkJPC9GaWxlPg0KKwkJPEZp
bGUNCiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEFQSVx0ZXN0c1x0ZXN0YXBpLmMiDQogCQkJPg0K
IAkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlDb21tb24udnNwcm9wcyBiL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlDb21tb24udnNwcm9w
cwppbmRleCAxNjFmNTcxLi4xY2ZhOTI5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovdGVzdGFwaS90ZXN0YXBpQ29tbW9uLnZzcHJvcHMKKysrIGIvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3RhcGkvdGVzdGFwaUNvbW1vbi52
c3Byb3BzCkBAIC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIp
XC4uXC4uXEFQSSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxXZWJDb3Jl
XEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlXHBy
aXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1
ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7IgorCQlBZGRpdGlvbmFsSW5jbHVkZURp
cmVjdG9yaWVzPSImcXVvdDskKFByb2plY3REaXIpXC4uXC4uXEFQSSZxdW90OzsuLi8uLi87JnF1
b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZx
dW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90
OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3Jl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0T3V0cHV0RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVc
cHJpdmF0ZSZxdW90OyIKIAkJV2FybmluZ0xldmVsPSI0IgogCQlEZXRlY3Q2NEJpdFBvcnRhYmls
aXR5UHJvYmxlbXM9InRydWUiCiAJLz4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3Rlc3Rh
cGkucHJvIGIvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNWJjMTFlMAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3Jl
L3Rlc3RhcGkucHJvCkBAIC0wLDAgKzEsMzIgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0
ZXN0YXBpCitTT1VSQ0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYworUVQgLT0gZ3VpCitDT05GSUcg
LT0gYXBwX2J1bmRsZQorQ09ORklHICs9IGJ1aWxkaW5nLWxpYnMKK3dpbjMyLSo6IENPTkZJRyAr
PSBjb25zb2xlCit3aW4zMi1tc3ZjKjogQ09ORklHICs9IGV4Y2VwdGlvbnNfb2ZmIHN0bF9vZmYK
KworaXNFbXB0eShPVVRQVVRfRElSKTogT1VUUFVUX0RJUj0gLi4KK2luY2x1ZGUoJCRQV0QvLi4v
V2ViS2l0LnByaSkKKworQ09ORklHICs9IGxpbmtfcGtnY29uZmlnCisKK1FNQUtFX1JQQVRIRElS
ICs9ICQkT1VUUFVUX0RJUi9saWIKKworIUNPTkZJRyhyZWxlYXNlLCBkZWJ1Z3xyZWxlYXNlKSB7
CisgICAgT0JKRUNUU19ESVIgPSBvYmovZGVidWcKK30gZWxzZSB7ICMgUmVsZWFzZQorICAgIE9C
SkVDVFNfRElSID0gb2JqL3JlbGVhc2UKK30KK09CSkVDVFNfRElSX1dUUiA9ICQkT0JKRUNUU19E
SVIkJHtRTUFLRV9ESVJfU0VQfQoraW5jbHVkZSgkJFBXRC9KYXZhU2NyaXB0Q29yZS5wcmkpCith
ZGRKYXZhU2NyaXB0Q29yZUxpYiguKQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuQ0FQQUJJTElU
WSA9IFJlYWRVc2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCittYWMg
eworICAgIExJQlNfUFJJVkFURSArPSAtZnJhbWV3b3JrIEFwcEtpdAorfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0LnBybyBiL1dlYktpdC5wcm8KaW5kZXggZDhjMWJjNS4uNmMxNzhhYiAxMDA2NDQKLS0t
IGEvV2ViS2l0LnBybworKysgYi9XZWJLaXQucHJvCkBAIC0xMyw2ICsxMyw3IEBAIGNvbnRhaW5z
KFFUX0NPTkZJRywgZGVjbGFyYXRpdmUpIHsKICAgICBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L2Rl
Y2xhcmF0aXZlKTogU1VCRElSUyArPSBXZWJLaXQvcXQvZGVjbGFyYXRpdmUKIH0KIGV4aXN0cygk
JFBXRC9KYXZhU2NyaXB0Q29yZS9qc2MucHJvKTogU1VCRElSUyArPSBKYXZhU2NyaXB0Q29yZS9q
c2MucHJvCitleGlzdHMoJCRQV0QvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8pOiBTVUJESVJT
ICs9IEphdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJvCiBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L3Rl
c3RzKTogU1VCRElSUyArPSBXZWJLaXQvcXQvdGVzdHMKIGV4aXN0cygkJFBXRC9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8pOiBTVUJESVJTICs9IFdlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwogZXhpc3RzKCQkUFdE
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8pOiBTVUJESVJTICs9
IFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8KLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61506</attachid>
            <date>2010-07-14 05:16:34 -0700</date>
            <delta_ts>2010-07-14 07:41:45 -0700</delta_ts>
            <desc>Separate CF parts of testapi, compile support for Qt environment, take 4</desc>
            <filename>0001-Separate-CoreFoundation-specific-tests-in-JSC-s-test.patch</filename>
            <type>text/plain</type>
            <size>18490</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSA1ZjBlOWI2ODA0ZWFjZTUyODQ0MTQ3MmI0NjA1NmJhNWZlMjg4ZjVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCAxNCBKdWwgMjAxMCAwMTo0Mzo1OSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRl
c3RzIGluIEpTQydzIHRlc3RhcGkuYwoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysKIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMgICAgICAgICAgICAgICAgIHwgIDE3NiArKysrKysrKysrKystLS0tLS0tLQog
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIx
ICsrKwogLi4uL3Rlc3RhcGkvdGVzdGFwaUNvbW1vbi52c3Byb3BzICAgICAgICAgICAgICAgICAg
fCAgICAyICstCiBKYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzIgKysrKwogV2ViS2l0LnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTc2IGluc2VydGlvbnMoKyks
IDY4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEphdmFTY3JpcHRDb3JlL3Rlc3Rh
cGkucHJvCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDEyNGU4NmMu
LjY0NWMzNjMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMC0wNy0xMyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fp
by5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHRlc3RhcGkuYyBkZXBlbmRzIG9uIHRoZSBDb3JlIEZvdW5kYXRp
b24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA1
OAorCisgICAgICAgIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRlc3RzIGluIEpT
QydzIHRlc3RhcGkuYywgbGFuZGluZworICAgICAgICBhZ2FpbiB0byBmaXggV2luZG93cyBidWls
ZC4KKworICAgICAgICAqIFdlYktpdC5wcm86IGVuYWJsZSBjb21waWxhdGlvbiBvZiBKU0MgQyBB
UEkgdGVzdC4KKwogMjAxMC0wNy0xNCAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkuYwppbmRleCAxODNhYmY1Li42NTc3NjE1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmMKQEAgLTIzLDcgKzIzLDE4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShDRikKICNpbmNsdWRlICJKYXZhU2NyaXB0
Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0
aW1lLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJK
U0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNPYmplY3RSZWZQcml2YXRlLmgiCkBA
IC05MSw2ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoSlNW
YWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZQogICAgIEpTU3RyaW5nUmVs
ZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KIAorLy8gRklYTUU6IGRlZmluZSB0aGlzIGFzc2VydCBm
b3Igbm9uLUNGIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShDRikKIHN0YXRpYyB2b2lkIGFzc2Vy
dEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBl
Y3RlZFZhbHVlKQogewogICAgIEpTU3RyaW5nUmVmIHZhbHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9T
dHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsKQEAgLTExOSw2ICsxMzIsNyBAQCBzdGF0
aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29u
c3QgY2hhciogZXhwZWN0ZWRWYQogICAgIGZyZWUoY2ZCdWZmZXIpOwogICAgIEpTU3RyaW5nUmVs
ZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgYm9vbCB0aW1lWm9uZUlz
UFNUKCkKIHsKQEAgLTgxNyw2ICs4MzEsODEgQEAgc3RhdGljIGJvb2wgY2hlY2tGb3JDeWNsZUlu
UHJvdG90eXBlQ2hhaW4oKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBQTEFURk9STShD
RikKKy8vIFRlc3QgdGhlIEphdmFTY3JpcHRDb3JlIHNwZWNpZmljIEFQSSBmb3IgY29udmVydGlu
ZyBKU1N0cmluZ1JlZnMgdG8vZnJvbSBDRlN0cmluZ3MuCitzdGF0aWMgdm9pZCB0ZXN0SlNTdHJp
bmdSZWZDRigpCit7CisgICAgVW5pQ2hhciBzaW5nbGVVbmlDaGFyID0gNjU7IC8vIENhcGl0YWwg
QQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmluZyA9CisgICAgICAgIENGU3RyaW5nQ3Jl
YXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmc2luZ2xlVW5pQ2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NGQWxsb2NhdG9yTnVsbCk7CisKKyAg
ICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNm
U3RyaW5nKTsKKyAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZyk7CisKKyAgICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0g
Q0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3Ry
aW5nRW5jb2RpbmdVVEY4KTsKKworICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmcgPSBK
U1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhjZkVtcHR5U3RyaW5nKTsKKyAgICBKU1ZhbHVlUmVm
IGpzQ0ZFbXB0eVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlT
dHJpbmcpOworCisgICAgQ0ZJbmRleCBjZlN0cmluZ0xlbmd0aCA9IENGU3RyaW5nR2V0TGVuZ3Ro
KGNmU3RyaW5nKTsKKyAgICBVbmlDaGFyICpidWZmZXIgPSAoVW5pQ2hhciopbWFsbG9jKGNmU3Ry
aW5nTGVuZ3RoICogc2l6ZW9mKFVuaUNoYXIpKTsKKyAgICBDRlN0cmluZ0dldENoYXJhY3RlcnMo
Y2ZTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIENGUmFuZ2VNYWtlKDAsIGNmU3Ry
aW5nTGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKKyAgICBKU1N0
cmluZ1JlZiBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycygoSlNDaGFyKilidWZmZXIsIGNmU3RyaW5nTGVuZ3RoKTsKKyAgICBKU1ZhbHVlUmVm
IGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpz
Q0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworCisgICAgSlNTdHJpbmdSZWYganNDRkVtcHR5SVN0
cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFy
KilidWZmZXIsIENGU3RyaW5nR2V0TGVuZ3RoKGNmRW1wdHlTdHJpbmcpKTsKKyAgICBmcmVlKGJ1
ZmZlcik7CisgICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpT
VmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyk7
CisKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pT
VHlwZVN0cmluZyk7CisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisgICAgQVNTRVJUKEpTVmFsdWVH
ZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CisgICAg
QVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKKworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NG
U3RyaW5nLCB0cnVlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCB0cnVlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5U3Ry
aW5nLCBmYWxzZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCBmYWxzZSk7CisKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3Ry
aW5nLCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3RyaW5nV2l0aENo
YXJhY3RlcnMsIG5hbigiIikpOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0
cmluZywgMCk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nV2l0aENo
YXJhY3RlcnMsIDApOworICAgIEFTU0VSVChzaXplb2YoSlNDaGFyKSA9PSBzaXplb2YoVW5pQ2hh
cikpOworCisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmcsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5n
LCAiIik7CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCAiIik7CisKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRlN0
cmluZywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRlN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0NGRW1wdHlT
dHJpbmcsICIiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5n
V2l0aENoYXJhY3RlcnMsICIiKTsKKworICAgIENGU3RyaW5nUmVmIGNmSlNTdHJpbmcgPSBKU1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGSVN0cmluZyk7CisgICAg
Q0ZTdHJpbmdSZWYgY2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwganNDRkVtcHR5SVN0cmluZyk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZK
U1N0cmluZywgY2ZTdHJpbmcpKTsKKyAgICBBU1NFUlQoQ0ZFcXVhbChjZkpTRW1wdHlTdHJpbmcs
IGNmRW1wdHlTdHJpbmcpKTsKKyAgICBDRlJlbGVhc2UoY2ZKU1N0cmluZyk7CisgICAgQ0ZSZWxl
YXNlKGNmSlNFbXB0eVN0cmluZyk7CisKKyAgICBDRlJlbGVhc2UoY2ZTdHJpbmcpOworICAgIENG
UmVsZWFzZShjZkVtcHR5U3RyaW5nKTsKKworICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmlu
Zyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEpTU3RyaW5n
UmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKyAgICBKU1N0cmluZ1JlbGVhc2Uo
anNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKK30KKyNlbmRpZgorCiBpbnQgbWFpbihp
bnQgYXJnYywgY2hhciogYXJndltdKQogewogICAgIGNvbnN0IGNoYXIgKnNjcmlwdFBhdGggPSAi
dGVzdGFwaS5qcyI7CkBAIC04NjksMzQgKzk1OCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAgICAgSlNTdHJpbmdSZWYganNPbmVJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIjEiKTsKICAgICBKU1ZhbHVlUmVmIGpzT25lU3RyaW5nID0gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwganNPbmVJU3RyaW5nKTsKIAotICAgIFVuaUNoYXIgc2luZ2xl
VW5pQ2hhciA9IDY1OyAvLyBDYXBpdGFsIEEKLSAgICBDRk11dGFibGVTdHJpbmdSZWYgY2ZTdHJp
bmcgPSAKLSAgICAgICAgQ0ZTdHJpbmdDcmVhdGVNdXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVy
c05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaW5nbGVVbmlDaGFyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrQ0ZBbGxvY2F0b3JOdWxsKTsKLQotICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNT
dHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZTdHJpbmcpOwotICAgIEpTVmFsdWVSZWYganNDRlN0
cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICAKLSAg
ICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0gQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKLSAgICAKLSAg
ICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJp
bmcoY2ZFbXB0eVN0cmluZyk7Ci0gICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1Zh
bHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nKTsKLQotICAgIENGSW5kZXgg
Y2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dldExlbmd0aChjZlN0cmluZyk7Ci0gICAgVW5pQ2hh
ciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxvYyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlD
aGFyKSk7Ci0gICAgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJzKGNmU3RyaW5nLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0ZSYW5nZU1ha2UoMCwgY2ZTdHJpbmdMZW5ndGgpLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKLSAgICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZ1dp
dGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFyKilidWZm
ZXIsIGNmU3RyaW5nTGVuZ3RoKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFj
dGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3Rl
cnMpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVy
cyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmlu
Z0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Ci0gICAgZnJlZShidWZmZXIpOwotICAgIEpTVmFs
dWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwotCiAgICAgQVNTRVJUKEpT
VmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzVW5kZWZpbmVkKSA9PSBrSlNUeXBlVW5kZWZpbmVkKTsK
ICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNOdWxsKSA9PSBrSlNUeXBlTnVs
bCk7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzVHJ1ZSkgPT0ga0pTVHlw
ZUJvb2xlYW4pOwpAQCAtOTA2LDEwICs5NjcsMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
IGFyZ3ZbXSkKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNPbmVUaGlyZCkg
PT0ga0pTVHlwZU51bWJlcik7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpz
RW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlw
ZShjb250ZXh0LCBqc09uZVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpT
VmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAg
IEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMp
ID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBq
c0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0
VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0
cmluZyk7CisKKyAgICAvLyBGSVhNRTogQWRkIHRlc3RzIGZvciBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzLCB0aGV5IGFyZSBvbmx5IGNvdmVyZWQgaW4gdGhlCisgICAgLy8gQ29yZUZvdW5k
YXRpb24tc3BlY2lmaWMgdGVzdHMuCisKKyNpZiBQTEFURk9STShDRikKKyAgICB0ZXN0SlNTdHJp
bmdSZWZDRigpOworI2VuZGlmCiAKICAgICBKU09iamVjdFJlZiBteU9iamVjdCA9IEpTT2JqZWN0
TWFrZShjb250ZXh0LCBNeU9iamVjdF9jbGFzcyhjb250ZXh0KSwgTlVMTCk7CiAgICAgSlNTdHJp
bmdSZWYgbXlPYmplY3RJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk15
T2JqZWN0Iik7CkBAIC05NjMsNyArMTAyNyw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgCiAgICAgSlNHYXJiYWdlQ29sbGVjdChjb250ZXh0KTsKICAgICAKLSAgICBm
b3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAgaW50IGk7CisgICAgZm9yIChpID0g
MDsgaSA8IDEwMDAwOyBpKyspCiAgICAgICAgIEpTT2JqZWN0TWFrZShjb250ZXh0LCAwLCAwKTsK
IAogICAgIGFIZWFwUmVmID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJp
dmF0ZVByb3BlcnR5KGNvbnRleHQsIG15T2JqZWN0LCBwcml2YXRlUHJvcGVydHlOYW1lKSwgMCk7
CkBAIC0xMDY1LDEwICsxMTMwLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNPbmVUaGlyZCwgdHJ1ZSk7CiAgICAgYXNzZXJ0
RXF1YWxzQXNCb29sZWFuKGpzRW1wdHlTdHJpbmcsIGZhbHNlKTsKICAgICBhc3NlcnRFcXVhbHNB
c0Jvb2xlYW4oanNPbmVTdHJpbmcsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihq
c0NGU3RyaW5nLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5
U3RyaW5nLCBmYWxzZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzLCBmYWxzZSk7CiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIo
anNVbmRlZmluZWQsIG5hbigiIikpOwogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzTnVsbCwg
MCk7CkBAIC0xMDc5LDEyICsxMTQwLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3Zb
XSkKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc09uZVRoaXJkLCAxLjAgLyAzLjApOwogICAg
IGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzRW1wdHlTdHJpbmcsIDApOwogICAgIGFzc2VydEVxdWFs
c0FzTnVtYmVyKGpzT25lU3RyaW5nLCAxKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NG
U3RyaW5nLCBuYW4oIiIpKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3RyaW5nV2l0
aENoYXJhY3RlcnMsIG5hbigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0
eVN0cmluZywgMCk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nV2l0
aENoYXJhY3RlcnMsIDApOwotICAgIEFTU0VSVChzaXplb2YoSlNDaGFyKSA9PSBzaXplb2YoVW5p
Q2hhcikpOwogICAgIAorLy8gRklYTUU6IEltcGxlbWVudCBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIgZm9yIG5vbi1DRiBwbGF0Zm9ybXMuCisjaWYgUExBVEZPUk0oQ0YpCiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVW5kZWZpbmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNz
ZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzTnVsbCwgIm51bGwiKTsKICAgICBhc3NlcnRFcXVh
bHNBc0NoYXJhY3RlcnNQdHIoanNUcnVlLCAidHJ1ZSIpOwpAQCAtMTA5NCwxMCArMTE1Miw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFy
YWN0ZXJzUHRyKGpzT25lVGhpcmQsICIwLjMzMzMzMzMzMzMzMzMzMzMiKTsKICAgICBhc3NlcnRF
cXVhbHNBc0NoYXJhY3RlcnNQdHIoanNFbXB0eVN0cmluZywgIiIpOwogICAgIGFzc2VydEVxdWFs
c0FzQ2hhcmFjdGVyc1B0cihqc09uZVN0cmluZywgIjEiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0No
YXJhY3RlcnNQdHIoanNDRlN0cmluZywgIkEiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0Fz
Q2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmcsICIiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0No
YXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKKyNlbmRpZgog
ICAgIAogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc1VuZGVmaW5lZCwgInVuZGVmaW5l
ZCIpOwogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc051bGwsICJudWxsIik7CkBAIC0x
MTA4LDEwICsxMTYzLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBh
c3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMzMyIp
OwogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0VtcHR5U3RyaW5nLCAiIik7CiAgICAg
YXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzT25lU3RyaW5nLCAiMSIpOwotICAgIGFzc2VydEVx
dWFsc0FzVVRGOFN0cmluZyhqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRG
OFN0cmluZyhqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0gICAgYXNzZXJ0RXF1YWxz
QXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRG
OFN0cmluZyhqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOwogICAgIAogICAgIEFT
U0VSVChKU1ZhbHVlSXNTdHJpY3RFcXVhbChjb250ZXh0LCBqc1RydWUsIGpzVHJ1ZSkpOwogICAg
IEFTU0VSVCghSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCwganNPbmUsIGpzT25lU3RyaW5n
KSk7CkBAIC0xMTE5LDE2ICsxMTcwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3Zb
XSkKICAgICBBU1NFUlQoSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwganNPbmUsIGpzT25lU3RyaW5n
LCBOVUxMKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBqc1RydWUsIGpz
RmFsc2UsIE5VTEwpKTsKICAgICAKLSAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJp
bmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOwotICAgIENG
U3RyaW5nUmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOwotICAgIEFTU0VSVChDRkVxdWFsKGNmSlNT
dHJpbmcsIGNmU3RyaW5nKSk7Ci0gICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBj
ZkVtcHR5U3RyaW5nKSk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOwotICAgIENGUmVsZWFz
ZShjZkpTRW1wdHlTdHJpbmcpOwogCi0gICAgQ0ZSZWxlYXNlKGNmU3RyaW5nKTsKLSAgICBDRlJl
bGVhc2UoY2ZFbXB0eVN0cmluZyk7Ci0gICAgCiAgICAganNHbG9iYWxWYWx1ZSA9IEpTT2JqZWN0
TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKICAgICBtYWtlR2xvYmFsTnVtYmVyVmFsdWUoY29u
dGV4dCk7CiAgICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCwganNHbG9iYWxWYWx1ZSk7CkBAIC0x
MjU2LDcgKzEyOTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAg
byA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKICAgICBKU09iamVjdFNldFBy
b3BlcnR5KGNvbnRleHQsIG8sIGpzT25lSVN0cmluZywgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4
dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7Ci0gICAgSlNPYmplY3RTZXRQ
cm9wZXJ0eShjb250ZXh0LCBvLCBqc0NGSVN0cmluZywgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRl
eHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtLCBOVUxMKTsKKyAgICBKU09iamVj
dFNldFByb3BlcnR5KGNvbnRleHQsIG8sIHByb3BlcnR5TmFtZSwgSlNWYWx1ZU1ha2VOdW1iZXIo
Y29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5VTEwpOwogICAgIEpT
UHJvcGVydHlOYW1lQXJyYXlSZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1l
cyhjb250ZXh0LCBvKTsKICAgICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpTUHJvcGVydHlOYW1l
QXJyYXlHZXRDb3VudChuYW1lQXJyYXkpOwogICAgIHNpemVfdCBjb3VudDsKQEAgLTEzNTcsOSAr
MTM5OSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIHByaW50ZigiRkFJTDogVGVzdCBzY3JpcHQgcmV0dXJuZWQgdW5leHBl
Y3RlZCB2YWx1ZTpcbiIpOwogICAgICAgICAgICAgSlNTdHJpbmdSZWYgZXhjZXB0aW9uSVN0cmlu
ZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgZXhjZXB0aW9uLCBOVUxMKTsKLSAgICAg
ICAgICAgIENGU3RyaW5nUmVmIGV4Y2VwdGlvbkNGID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZXhjZXB0aW9uSVN0cmluZyk7Ci0gICAgICAgICAgICBDRlNob3co
ZXhjZXB0aW9uQ0YpOwotICAgICAgICAgICAgQ0ZSZWxlYXNlKGV4Y2VwdGlvbkNGKTsKKworICAg
ICAgICAgICAgc2l6ZV90IHNpemVVVEY4ID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdT
aXplKGV4Y2VwdGlvbklTdHJpbmcpOworICAgICAgICAgICAgY2hhciAqZXhjZXB0aW9uVVRGOCA9
IG1hbGxvYyhzaXplVVRGOCk7CisgICAgICAgICAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKGV4
Y2VwdGlvbklTdHJpbmcsIGV4Y2VwdGlvblVURjgsIHNpemVVVEY4KTsKKyAgICAgICAgICAgIHBy
aW50ZigiJXNcbiIsIGV4Y2VwdGlvblVURjgpOworICAgICAgICAgICAgZnJlZShleGNlcHRpb25V
VEY4KTsKKwogICAgICAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGV4Y2VwdGlvbklTdHJpbmcpOwog
ICAgICAgICAgICAgZmFpbGVkID0gMTsKICAgICAgICAgfQpAQCAtMTM3NiwxMCArMTQyMiw2IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBKU1N0cmluZ1JlbGVhc2Uo
anNFbXB0eUlTdHJpbmcpOwogICAgIEpTU3RyaW5nUmVsZWFzZShqc09uZUlTdHJpbmcpOwotICAg
IEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZF
bXB0eUlTdHJpbmcpOwotICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJz
KTsKICAgICBKU1N0cmluZ1JlbGVhc2UoZ29vZFN5bnRheCk7CiAgICAgSlNTdHJpbmdSZWxlYXNl
KGJhZFN5bnRheCk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBiYWQ0OGQ4Li5iNGNmNTNiIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMTMgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBG
aWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0YXBpLmMgZGVwZW5kcyBvbiB0aGUgQ29y
ZSBGb3VuZGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAwNTgKKworICAgICAgICBTZXBhcmF0ZSBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0
ZXN0cyBpbiBKU0MncyB0ZXN0YXBpLmMsIGxhbmRpbmcKKyAgICAgICAgYWdhaW4gdG8gZml4IFdp
bmRvd3MgYnVpbGQuIEFsc28gZW5hYmxpbmcgaXQgdG8gY29tcGlsZSBpbiBRdAorICAgICAgICBl
bnZpcm9ubWVudHMuCisKKyAgICAgICAgQWxsIHRlc3RzIHNob3VsZCB3b3JrIGV4Y2VwdCBmb3Ig
dGhlIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKSBmdW5jdGlvbiwKKyAgICAgICAgYmVj
YXVzZSBpdHMgdGVzdHMgZGVwZW5kIG9uIENvcmUgRm91bmRhdGlvbiBzcGVjaWZpYyBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAodGVzdEpTU3Ry
aW5nUmVmQ0YpOiBtb3ZlZCBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0ZXN0cyB0byB0aGlzIGZ1
bmN0aW9uLgorICAgICAgICAobWFpbik6IFRoZSBtb3ZlcyBwbHVzIHNvbWUgbWlub3IgdHdlYWtz
LgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlDb21tb24u
dnNwcm9wczogaW5jbHVkaW5nCisgICAgICAgIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGNvbmZp
Zy5oIGluIHdpbmRvd3MgYnVpbGQgc3lzdGVtLgorICAgICAgICAqIHRlc3RhcGkucHJvOiBBZGRl
ZC4KKwogMjAxMC0wNy0xMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYzMjYyLgpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3RhcGkvdGVzdGFwaUNv
bW1vbi52c3Byb3BzIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3Rh
cGkvdGVzdGFwaUNvbW1vbi52c3Byb3BzCmluZGV4IDE2MWY1NzEuLjFjZmE5MjkgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlD
b21tb24udnNwcm9wcworKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
dGVzdGFwaS90ZXN0YXBpQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29s
CiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cQVBJJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0
cHV0RGlyKVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KFdlYktpdE91dHB1dERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilc
aW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDsi
CisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cQVBJJnF1b3Q7Oy4uLy4uLzsmcXVvdDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxXZWJD
b3JlXEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRl
XHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGlu
Y2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7IgogCQlXYXJuaW5nTGV2ZWw9IjQi
CiAJCURldGVjdDY0Qml0UG9ydGFiaWxpdHlQcm9ibGVtcz0idHJ1ZSIKIAkvPgpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8gYi9KYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBy
bwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YmMxMWUwCi0tLSAvZGV2L251
bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KQEAgLTAsMCArMSwzMiBAQAorVEVN
UExBVEUgPSBhcHAKK1RBUkdFVCA9IHRlc3RhcGkKK1NPVVJDRVMgPSBBUEkvdGVzdHMvdGVzdGFw
aS5jCitRVCAtPSBndWkKK0NPTkZJRyAtPSBhcHBfYnVuZGxlCitDT05GSUcgKz0gYnVpbGRpbmct
bGlicword2luMzItKjogQ09ORklHICs9IGNvbnNvbGUKK3dpbjMyLW1zdmMqOiBDT05GSUcgKz0g
ZXhjZXB0aW9uc19vZmYgc3RsX29mZgorCitpc0VtcHR5KE9VVFBVVF9ESVIpOiBPVVRQVVRfRElS
PSAuLgoraW5jbHVkZSgkJFBXRC8uLi9XZWJLaXQucHJpKQorCitDT05GSUcgKz0gbGlua19wa2dj
b25maWcKKworUU1BS0VfUlBBVEhESVIgKz0gJCRPVVRQVVRfRElSL2xpYgorCishQ09ORklHKHJl
bGVhc2UsIGRlYnVnfHJlbGVhc2UpIHsKKyAgICBPQkpFQ1RTX0RJUiA9IG9iai9kZWJ1ZworfSBl
bHNlIHsgIyBSZWxlYXNlCisgICAgT0JKRUNUU19ESVIgPSBvYmovcmVsZWFzZQorfQorT0JKRUNU
U19ESVJfV1RSID0gJCRPQkpFQ1RTX0RJUiQke1FNQUtFX0RJUl9TRVB9CitpbmNsdWRlKCQkUFdE
L0phdmFTY3JpcHRDb3JlLnByaSkKK2FkZEphdmFTY3JpcHRDb3JlTGliKC4pCisKK3N5bWJpYW4g
eworICAgIFRBUkdFVC5DQVBBQklMSVRZID0gUmVhZFVzZXJEYXRhIFdyaXRlVXNlckRhdGEgTmV0
d29ya1NlcnZpY2VzCit9CisKK21hYyB7CisgICAgTElCU19QUklWQVRFICs9IC1mcmFtZXdvcmsg
QXBwS2l0Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQucHJvIGIvV2ViS2l0LnBybwppbmRleCBkOGMx
YmM1Li42YzE3OGFiIDEwMDY0NAotLS0gYS9XZWJLaXQucHJvCisrKyBiL1dlYktpdC5wcm8KQEAg
LTEzLDYgKzEzLDcgQEAgY29udGFpbnMoUVRfQ09ORklHLCBkZWNsYXJhdGl2ZSkgewogICAgIGV4
aXN0cygkJFBXRC9XZWJLaXQvcXQvZGVjbGFyYXRpdmUpOiBTVUJESVJTICs9IFdlYktpdC9xdC9k
ZWNsYXJhdGl2ZQogfQogZXhpc3RzKCQkUFdEL0phdmFTY3JpcHRDb3JlL2pzYy5wcm8pOiBTVUJE
SVJTICs9IEphdmFTY3JpcHRDb3JlL2pzYy5wcm8KK2V4aXN0cygkJFBXRC9KYXZhU2NyaXB0Q29y
ZS90ZXN0YXBpLnBybyk6IFNVQkRJUlMgKz0gSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KIGV4
aXN0cygkJFBXRC9XZWJLaXQvcXQvdGVzdHMpOiBTVUJESVJTICs9IFdlYktpdC9xdC90ZXN0cwog
ZXhpc3RzKCQkUFdEL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
LnBybyk6IFNVQkRJUlMgKz0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWUucHJvCiBleGlzdHMoJCRQV0QvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvSW1h
Z2VEaWZmLnBybyk6IFNVQkRJUlMgKz0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvSW1h
Z2VEaWZmLnBybwotLSAKMS43LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61517</attachid>
            <date>2010-07-14 07:41:45 -0700</date>
            <delta_ts>2010-09-22 00:22:37 -0700</delta_ts>
            <desc>Separate CF parts of testapi, compile support for Qt environment, take 5</desc>
            <filename>0001-Separate-CoreFoundation-specific-tests-in-JSC-s-test.patch</filename>
            <type>text/plain</type>
            <size>18515</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">RnJvbSA3NmE0MzI4MGJhMjU5ZjlkYmQ3YTU0MzIyMjE1NDkzMjIzZGU1MzViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gPGNhaW8u
b2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KRGF0ZTogV2VkLCAxNCBKdWwgMjAxMCAwMTo0Mzo1OSAt
MDMwMApTdWJqZWN0OiBbUEFUQ0hdIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRl
c3RzIGluIEpTQydzIHRlc3RhcGkuYwoKLS0tCiBDaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysKIEphdmFTY3JpcHRDb3JlL0FQSS90ZXN0
cy90ZXN0YXBpLmMgICAgICAgICAgICAgICAgIHwgIDE3NiArKysrKysrKysrKystLS0tLS0tLQog
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIx
ICsrKwogLi4uL3Rlc3RhcGkvdGVzdGFwaUNvbW1vbi52c3Byb3BzICAgICAgICAgICAgICAgICAg
fCAgICAyICstCiBKYXZhU2NyaXB0Q29yZS90ZXN0YXBpLnBybyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgMzIgKysrKwogV2ViS2l0LnBybyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTc2IGluc2VydGlvbnMoKyks
IDY4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IEphdmFTY3JpcHRDb3JlL3Rlc3Rh
cGkucHJvCgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDEyNGU4NmMu
LjY0NWMzNjMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMC0wNy0xMyAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fp
by5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHRlc3RhcGkuYyBkZXBlbmRzIG9uIHRoZSBDb3JlIEZvdW5kYXRp
b24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDA1
OAorCisgICAgICAgIFNlcGFyYXRlIENvcmVGb3VuZGF0aW9uIHNwZWNpZmljIHRlc3RzIGluIEpT
QydzIHRlc3RhcGkuYywgbGFuZGluZworICAgICAgICBhZ2FpbiB0byBmaXggV2luZG93cyBidWls
ZC4KKworICAgICAgICAqIFdlYktpdC5wcm86IGVuYWJsZSBjb21waWxhdGlvbiBvZiBKU0MgQyBB
UEkgdGVzdC4KKwogMjAxMC0wNy0xNCAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jIGIvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L3Rlc3RhcGkuYwppbmRleCAxODNhYmY1Li42NTc3NjE1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5jCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLmMKQEAgLTIzLDcgKzIzLDE4IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW5j
bHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShDRikKICNpbmNsdWRlICJKYXZhU2NyaXB0
Q29yZS5oIgorI2Vsc2UKKyNpbmNsdWRlICJKYXZhU2NyaXB0LmgiCisjaW5jbHVkZSA8c3RkaW8u
aD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0
aW1lLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgIkpTQmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJK
U0NvbnRleHRSZWZQcml2YXRlLmgiCiAjaW5jbHVkZSAiSlNPYmplY3RSZWZQcml2YXRlLmgiCkBA
IC05MSw2ICsxMDIsOCBAQCBzdGF0aWMgdm9pZCBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoSlNW
YWx1ZVJlZiB2YWx1ZSwgY29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZQogICAgIEpTU3RyaW5nUmVs
ZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KIAorLy8gRklYTUU6IGRlZmluZSB0aGlzIGFzc2VydCBm
b3Igbm9uLUNGIHBsYXRmb3Jtcy4KKyNpZiBQTEFURk9STShDRikKIHN0YXRpYyB2b2lkIGFzc2Vy
dEVxdWFsc0FzQ2hhcmFjdGVyc1B0cihKU1ZhbHVlUmVmIHZhbHVlLCBjb25zdCBjaGFyKiBleHBl
Y3RlZFZhbHVlKQogewogICAgIEpTU3RyaW5nUmVmIHZhbHVlQXNTdHJpbmcgPSBKU1ZhbHVlVG9T
dHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBOVUxMKTsKQEAgLTExOSw2ICsxMzIsNyBAQCBzdGF0
aWMgdm9pZCBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoSlNWYWx1ZVJlZiB2YWx1ZSwgY29u
c3QgY2hhciogZXhwZWN0ZWRWYQogICAgIGZyZWUoY2ZCdWZmZXIpOwogICAgIEpTU3RyaW5nUmVs
ZWFzZSh2YWx1ZUFzU3RyaW5nKTsKIH0KKyNlbmRpZgogCiBzdGF0aWMgYm9vbCB0aW1lWm9uZUlz
UFNUKCkKIHsKQEAgLTgxNyw2ICs4MzEsODEgQEAgc3RhdGljIGJvb2wgY2hlY2tGb3JDeWNsZUlu
UHJvdG90eXBlQ2hhaW4oKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBQTEFURk9STShD
RikKKy8vIFRlc3QgdGhlIEphdmFTY3JpcHRDb3JlIHNwZWNpZmljIEFQSSBmb3IgY29udmVydGlu
ZyBKU1N0cmluZ1JlZnMgdG8vZnJvbSBDRlN0cmluZ3MuCitzdGF0aWMgdm9pZCB0ZXN0SlNTdHJp
bmdSZWZDRigpCit7CisgICAgVW5pQ2hhciBzaW5nbGVVbmlDaGFyID0gNjU7IC8vIENhcGl0YWwg
QQorICAgIENGTXV0YWJsZVN0cmluZ1JlZiBjZlN0cmluZyA9CisgICAgICAgIENGU3RyaW5nQ3Jl
YXRlTXV0YWJsZVdpdGhFeHRlcm5hbENoYXJhY3RlcnNOb0NvcHkoa0NGQWxsb2NhdG9yRGVmYXVs
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmc2luZ2xlVW5pQ2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NGQWxsb2NhdG9yTnVsbCk7CisKKyAg
ICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKGNm
U3RyaW5nKTsKKyAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmcgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGSVN0cmluZyk7CisKKyAgICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0g
Q0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3Ry
aW5nRW5jb2RpbmdVVEY4KTsKKworICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmcgPSBK
U1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhjZkVtcHR5U3RyaW5nKTsKKyAgICBKU1ZhbHVlUmVm
IGpzQ0ZFbXB0eVN0cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlT
dHJpbmcpOworCisgICAgQ0ZJbmRleCBjZlN0cmluZ0xlbmd0aCA9IENGU3RyaW5nR2V0TGVuZ3Ro
KGNmU3RyaW5nKTsKKyAgICBVbmlDaGFyICpidWZmZXIgPSAoVW5pQ2hhciopbWFsbG9jKGNmU3Ry
aW5nTGVuZ3RoICogc2l6ZW9mKFVuaUNoYXIpKTsKKyAgICBDRlN0cmluZ0dldENoYXJhY3RlcnMo
Y2ZTdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIENGUmFuZ2VNYWtlKDAsIGNmU3Ry
aW5nTGVuZ3RoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKKyAgICBKU1N0
cmluZ1JlZiBqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycygoSlNDaGFyKilidWZmZXIsIGNmU3RyaW5nTGVuZ3RoKTsKKyAgICBKU1ZhbHVlUmVm
IGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpz
Q0ZJU3RyaW5nV2l0aENoYXJhY3RlcnMpOworCisgICAgSlNTdHJpbmdSZWYganNDRkVtcHR5SVN0
cmluZ1dpdGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFy
KilidWZmZXIsIENGU3RyaW5nR2V0TGVuZ3RoKGNmRW1wdHlTdHJpbmcpKTsKKyAgICBmcmVlKGJ1
ZmZlcik7CisgICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycyA9IEpT
VmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVycyk7
CisKKyAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNDRlN0cmluZykgPT0ga0pT
VHlwZVN0cmluZyk7CisgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJp
bmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0cmluZyk7CisgICAgQVNTRVJUKEpTVmFsdWVH
ZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CisgICAg
QVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKKworICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihqc0NG
U3RyaW5nLCB0cnVlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCB0cnVlKTsKKyAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5U3Ry
aW5nLCBmYWxzZSk7CisgICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCBmYWxzZSk7CisKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3Ry
aW5nLCBuYW4oIiIpKTsKKyAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3RyaW5nV2l0aENo
YXJhY3RlcnMsIG5hbigiIikpOworICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0eVN0
cmluZywgMCk7CisgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nV2l0aENo
YXJhY3RlcnMsIDApOworICAgIEFTU0VSVChzaXplb2YoSlNDaGFyKSA9PSBzaXplb2YoVW5pQ2hh
cikpOworCisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmcsICJBIik7
CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZTdHJpbmdXaXRoQ2hhcmFjdGVy
cywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5n
LCAiIik7CisgICAgYXNzZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzQ0ZFbXB0eVN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCAiIik7CisKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRlN0
cmluZywgIkEiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRlN0cmluZ1dpdGhD
aGFyYWN0ZXJzLCAiQSIpOworICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0NGRW1wdHlT
dHJpbmcsICIiKTsKKyAgICBhc3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNDRkVtcHR5U3RyaW5n
V2l0aENoYXJhY3RlcnMsICIiKTsKKworICAgIENGU3RyaW5nUmVmIGNmSlNTdHJpbmcgPSBKU1N0
cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0NGSVN0cmluZyk7CisgICAg
Q0ZTdHJpbmdSZWYgY2ZKU0VtcHR5U3RyaW5nID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwganNDRkVtcHR5SVN0cmluZyk7CisgICAgQVNTRVJUKENGRXF1YWwoY2ZK
U1N0cmluZywgY2ZTdHJpbmcpKTsKKyAgICBBU1NFUlQoQ0ZFcXVhbChjZkpTRW1wdHlTdHJpbmcs
IGNmRW1wdHlTdHJpbmcpKTsKKyAgICBDRlJlbGVhc2UoY2ZKU1N0cmluZyk7CisgICAgQ0ZSZWxl
YXNlKGNmSlNFbXB0eVN0cmluZyk7CisKKyAgICBDRlJlbGVhc2UoY2ZTdHJpbmcpOworICAgIENG
UmVsZWFzZShjZkVtcHR5U3RyaW5nKTsKKworICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmlu
Zyk7CisgICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZFbXB0eUlTdHJpbmcpOworICAgIEpTU3RyaW5n
UmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKKyAgICBKU1N0cmluZ1JlbGVhc2Uo
anNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJzKTsKK30KKyNlbmRpZgorCiBpbnQgbWFpbihp
bnQgYXJnYywgY2hhciogYXJndltdKQogewogICAgIGNvbnN0IGNoYXIgKnNjcmlwdFBhdGggPSAi
dGVzdGFwaS5qcyI7CkBAIC04NjksMzQgKzk1OCw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFy
KiBhcmd2W10pCiAgICAgSlNTdHJpbmdSZWYganNPbmVJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIjEiKTsKICAgICBKU1ZhbHVlUmVmIGpzT25lU3RyaW5nID0gSlNWYWx1
ZU1ha2VTdHJpbmcoY29udGV4dCwganNPbmVJU3RyaW5nKTsKIAotICAgIFVuaUNoYXIgc2luZ2xl
VW5pQ2hhciA9IDY1OyAvLyBDYXBpdGFsIEEKLSAgICBDRk11dGFibGVTdHJpbmdSZWYgY2ZTdHJp
bmcgPSAKLSAgICAgICAgQ0ZTdHJpbmdDcmVhdGVNdXRhYmxlV2l0aEV4dGVybmFsQ2hhcmFjdGVy
c05vQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaW5nbGVVbmlDaGFyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrQ0ZBbGxvY2F0b3JOdWxsKTsKLQotICAgIEpTU3RyaW5nUmVmIGpzQ0ZJU3RyaW5nID0gSlNT
dHJpbmdDcmVhdGVXaXRoQ0ZTdHJpbmcoY2ZTdHJpbmcpOwotICAgIEpTVmFsdWVSZWYganNDRlN0
cmluZyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nKTsKLSAgICAKLSAg
ICBDRlN0cmluZ1JlZiBjZkVtcHR5U3RyaW5nID0gQ0ZTdHJpbmdDcmVhdGVXaXRoQ1N0cmluZyhr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAiIiwga0NGU3RyaW5nRW5jb2RpbmdVVEY4KTsKLSAgICAKLSAg
ICBKU1N0cmluZ1JlZiBqc0NGRW1wdHlJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoQ0ZTdHJp
bmcoY2ZFbXB0eVN0cmluZyk7Ci0gICAgSlNWYWx1ZVJlZiBqc0NGRW1wdHlTdHJpbmcgPSBKU1Zh
bHVlTWFrZVN0cmluZyhjb250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nKTsKLQotICAgIENGSW5kZXgg
Y2ZTdHJpbmdMZW5ndGggPSBDRlN0cmluZ0dldExlbmd0aChjZlN0cmluZyk7Ci0gICAgVW5pQ2hh
ciogYnVmZmVyID0gKFVuaUNoYXIqKW1hbGxvYyhjZlN0cmluZ0xlbmd0aCAqIHNpemVvZihVbmlD
aGFyKSk7Ci0gICAgQ0ZTdHJpbmdHZXRDaGFyYWN0ZXJzKGNmU3RyaW5nLCAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgQ0ZSYW5nZU1ha2UoMCwgY2ZTdHJpbmdMZW5ndGgpLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnVmZmVyKTsKLSAgICBKU1N0cmluZ1JlZiBqc0NGSVN0cmluZ1dp
dGhDaGFyYWN0ZXJzID0gSlNTdHJpbmdDcmVhdGVXaXRoQ2hhcmFjdGVycygoSlNDaGFyKilidWZm
ZXIsIGNmU3RyaW5nTGVuZ3RoKTsKLSAgICBKU1ZhbHVlUmVmIGpzQ0ZTdHJpbmdXaXRoQ2hhcmFj
dGVycyA9IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGpzQ0ZJU3RyaW5nV2l0aENoYXJhY3Rl
cnMpOwotICAgIAotICAgIEpTU3RyaW5nUmVmIGpzQ0ZFbXB0eUlTdHJpbmdXaXRoQ2hhcmFjdGVy
cyA9IEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKEpTQ2hhciopYnVmZmVyLCBDRlN0cmlu
Z0dldExlbmd0aChjZkVtcHR5U3RyaW5nKSk7Ci0gICAgZnJlZShidWZmZXIpOwotICAgIEpTVmFs
dWVSZWYganNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMgPSBKU1ZhbHVlTWFrZVN0cmluZyhj
b250ZXh0LCBqc0NGRW1wdHlJU3RyaW5nV2l0aENoYXJhY3RlcnMpOwotCiAgICAgQVNTRVJUKEpT
VmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzVW5kZWZpbmVkKSA9PSBrSlNUeXBlVW5kZWZpbmVkKTsK
ICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNOdWxsKSA9PSBrSlNUeXBlTnVs
bCk7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzVHJ1ZSkgPT0ga0pTVHlw
ZUJvb2xlYW4pOwpAQCAtOTA2LDEwICs5NjcsMTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq
IGFyZ3ZbXSkKICAgICBBU1NFUlQoSlNWYWx1ZUdldFR5cGUoY29udGV4dCwganNPbmVUaGlyZCkg
PT0ga0pTVHlwZU51bWJlcik7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpz
RW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwogICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlw
ZShjb250ZXh0LCBqc09uZVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7Ci0gICAgQVNTRVJUKEpT
VmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAg
IEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMp
ID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0VHlwZShjb250ZXh0LCBq
c0NGRW1wdHlTdHJpbmcpID09IGtKU1R5cGVTdHJpbmcpOwotICAgIEFTU0VSVChKU1ZhbHVlR2V0
VHlwZShjb250ZXh0LCBqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycykgPT0ga0pTVHlwZVN0
cmluZyk7CisKKyAgICAvLyBGSVhNRTogQWRkIHRlc3RzIGZvciBKU1N0cmluZ0NyZWF0ZVdpdGhD
aGFyYWN0ZXJzLCB0aGV5IGFyZSBvbmx5IGNvdmVyZWQgaW4gdGhlCisgICAgLy8gQ29yZUZvdW5k
YXRpb24tc3BlY2lmaWMgdGVzdHMuCisKKyNpZiBQTEFURk9STShDRikKKyAgICB0ZXN0SlNTdHJp
bmdSZWZDRigpOworI2VuZGlmCiAKICAgICBKU09iamVjdFJlZiBteU9iamVjdCA9IEpTT2JqZWN0
TWFrZShjb250ZXh0LCBNeU9iamVjdF9jbGFzcyhjb250ZXh0KSwgTlVMTCk7CiAgICAgSlNTdHJp
bmdSZWYgbXlPYmplY3RJU3RyaW5nID0gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIk15
T2JqZWN0Iik7CkBAIC05NjMsNyArMTAyNyw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgCiAgICAgSlNHYXJiYWdlQ29sbGVjdChjb250ZXh0KTsKICAgICAKLSAgICBm
b3IgKGludCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCisgICAgaW50IGk7CisgICAgZm9yIChpID0g
MDsgaSA8IDEwMDAwOyBpKyspCiAgICAgICAgIEpTT2JqZWN0TWFrZShjb250ZXh0LCAwLCAwKTsK
IAogICAgIGFIZWFwUmVmID0gSlNWYWx1ZVRvT2JqZWN0KGNvbnRleHQsIEpTT2JqZWN0R2V0UHJp
dmF0ZVByb3BlcnR5KGNvbnRleHQsIG15T2JqZWN0LCBwcml2YXRlUHJvcGVydHlOYW1lKSwgMCk7
CkBAIC0xMDY1LDEwICsxMTMwLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkK
ICAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNPbmVUaGlyZCwgdHJ1ZSk7CiAgICAgYXNzZXJ0
RXF1YWxzQXNCb29sZWFuKGpzRW1wdHlTdHJpbmcsIGZhbHNlKTsKICAgICBhc3NlcnRFcXVhbHNB
c0Jvb2xlYW4oanNPbmVTdHJpbmcsIHRydWUpOwotICAgIGFzc2VydEVxdWFsc0FzQm9vbGVhbihq
c0NGU3RyaW5nLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRlN0cmluZ1dp
dGhDaGFyYWN0ZXJzLCB0cnVlKTsKLSAgICBhc3NlcnRFcXVhbHNBc0Jvb2xlYW4oanNDRkVtcHR5
U3RyaW5nLCBmYWxzZSk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNCb29sZWFuKGpzQ0ZFbXB0eVN0cmlu
Z1dpdGhDaGFyYWN0ZXJzLCBmYWxzZSk7CiAgICAgCiAgICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIo
anNVbmRlZmluZWQsIG5hbigiIikpOwogICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzTnVsbCwg
MCk7CkBAIC0xMDc5LDEyICsxMTQwLDkgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3Zb
XSkKICAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc09uZVRoaXJkLCAxLjAgLyAzLjApOwogICAg
IGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzRW1wdHlTdHJpbmcsIDApOwogICAgIGFzc2VydEVxdWFs
c0FzTnVtYmVyKGpzT25lU3RyaW5nLCAxKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NG
U3RyaW5nLCBuYW4oIiIpKTsKLSAgICBhc3NlcnRFcXVhbHNBc051bWJlcihqc0NGU3RyaW5nV2l0
aENoYXJhY3RlcnMsIG5hbigiIikpOwotICAgIGFzc2VydEVxdWFsc0FzTnVtYmVyKGpzQ0ZFbXB0
eVN0cmluZywgMCk7Ci0gICAgYXNzZXJ0RXF1YWxzQXNOdW1iZXIoanNDRkVtcHR5U3RyaW5nV2l0
aENoYXJhY3RlcnMsIDApOwotICAgIEFTU0VSVChzaXplb2YoSlNDaGFyKSA9PSBzaXplb2YoVW5p
Q2hhcikpOwogICAgIAorLy8gRklYTUU6IEltcGxlbWVudCBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIgZm9yIG5vbi1DRiBwbGF0Zm9ybXMuCisjaWYgUExBVEZPUk0oQ0YpCiAgICAgYXNzZXJ0
RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzVW5kZWZpbmVkLCAidW5kZWZpbmVkIik7CiAgICAgYXNz
ZXJ0RXF1YWxzQXNDaGFyYWN0ZXJzUHRyKGpzTnVsbCwgIm51bGwiKTsKICAgICBhc3NlcnRFcXVh
bHNBc0NoYXJhY3RlcnNQdHIoanNUcnVlLCAidHJ1ZSIpOwpAQCAtMTA5NCwxMCArMTE1Miw3IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYXNzZXJ0RXF1YWxzQXNDaGFy
YWN0ZXJzUHRyKGpzT25lVGhpcmQsICIwLjMzMzMzMzMzMzMzMzMzMzMiKTsKICAgICBhc3NlcnRF
cXVhbHNBc0NoYXJhY3RlcnNQdHIoanNFbXB0eVN0cmluZywgIiIpOwogICAgIGFzc2VydEVxdWFs
c0FzQ2hhcmFjdGVyc1B0cihqc09uZVN0cmluZywgIjEiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0No
YXJhY3RlcnNQdHIoanNDRlN0cmluZywgIkEiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0NoYXJhY3Rl
cnNQdHIoanNDRlN0cmluZ1dpdGhDaGFyYWN0ZXJzLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0Fz
Q2hhcmFjdGVyc1B0cihqc0NGRW1wdHlTdHJpbmcsICIiKTsKLSAgICBhc3NlcnRFcXVhbHNBc0No
YXJhY3RlcnNQdHIoanNDRkVtcHR5U3RyaW5nV2l0aENoYXJhY3RlcnMsICIiKTsKKyNlbmRpZgog
ICAgIAogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc1VuZGVmaW5lZCwgInVuZGVmaW5l
ZCIpOwogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc051bGwsICJudWxsIik7CkBAIC0x
MTA4LDEwICsxMTYzLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICBh
c3NlcnRFcXVhbHNBc1VURjhTdHJpbmcoanNPbmVUaGlyZCwgIjAuMzMzMzMzMzMzMzMzMzMzMyIp
OwogICAgIGFzc2VydEVxdWFsc0FzVVRGOFN0cmluZyhqc0VtcHR5U3RyaW5nLCAiIik7CiAgICAg
YXNzZXJ0RXF1YWxzQXNVVEY4U3RyaW5nKGpzT25lU3RyaW5nLCAiMSIpOwotICAgIGFzc2VydEVx
dWFsc0FzVVRGOFN0cmluZyhqc0NGU3RyaW5nLCAiQSIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRG
OFN0cmluZyhqc0NGU3RyaW5nV2l0aENoYXJhY3RlcnMsICJBIik7Ci0gICAgYXNzZXJ0RXF1YWxz
QXNVVEY4U3RyaW5nKGpzQ0ZFbXB0eVN0cmluZywgIiIpOwotICAgIGFzc2VydEVxdWFsc0FzVVRG
OFN0cmluZyhqc0NGRW1wdHlTdHJpbmdXaXRoQ2hhcmFjdGVycywgIiIpOwogICAgIAogICAgIEFT
U0VSVChKU1ZhbHVlSXNTdHJpY3RFcXVhbChjb250ZXh0LCBqc1RydWUsIGpzVHJ1ZSkpOwogICAg
IEFTU0VSVCghSlNWYWx1ZUlzU3RyaWN0RXF1YWwoY29udGV4dCwganNPbmUsIGpzT25lU3RyaW5n
KSk7CkBAIC0xMTE5LDE2ICsxMTcwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3Zb
XSkKICAgICBBU1NFUlQoSlNWYWx1ZUlzRXF1YWwoY29udGV4dCwganNPbmUsIGpzT25lU3RyaW5n
LCBOVUxMKSk7CiAgICAgQVNTRVJUKCFKU1ZhbHVlSXNFcXVhbChjb250ZXh0LCBqc1RydWUsIGpz
RmFsc2UsIE5VTEwpKTsKICAgICAKLSAgICBDRlN0cmluZ1JlZiBjZkpTU3RyaW5nID0gSlNTdHJp
bmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwganNDRklTdHJpbmcpOwotICAgIENG
U3RyaW5nUmVmIGNmSlNFbXB0eVN0cmluZyA9IEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGpzQ0ZFbXB0eUlTdHJpbmcpOwotICAgIEFTU0VSVChDRkVxdWFsKGNmSlNT
dHJpbmcsIGNmU3RyaW5nKSk7Ci0gICAgQVNTRVJUKENGRXF1YWwoY2ZKU0VtcHR5U3RyaW5nLCBj
ZkVtcHR5U3RyaW5nKSk7Ci0gICAgQ0ZSZWxlYXNlKGNmSlNTdHJpbmcpOwotICAgIENGUmVsZWFz
ZShjZkpTRW1wdHlTdHJpbmcpOwogCi0gICAgQ0ZSZWxlYXNlKGNmU3RyaW5nKTsKLSAgICBDRlJl
bGVhc2UoY2ZFbXB0eVN0cmluZyk7Ci0gICAgCiAgICAganNHbG9iYWxWYWx1ZSA9IEpTT2JqZWN0
TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKICAgICBtYWtlR2xvYmFsTnVtYmVyVmFsdWUoY29u
dGV4dCk7CiAgICAgSlNWYWx1ZVByb3RlY3QoY29udGV4dCwganNHbG9iYWxWYWx1ZSk7CkBAIC0x
MjU2LDcgKzEyOTgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogCiAgICAg
byA9IEpTT2JqZWN0TWFrZShjb250ZXh0LCBOVUxMLCBOVUxMKTsKICAgICBKU09iamVjdFNldFBy
b3BlcnR5KGNvbnRleHQsIG8sIGpzT25lSVN0cmluZywgSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4
dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7Ci0gICAgSlNPYmplY3RTZXRQ
cm9wZXJ0eShjb250ZXh0LCBvLCBqc0NGSVN0cmluZywgIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRl
eHQsIDEpLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRFbnVtLCBOVUxMKTsKKyAgICBKU09iamVj
dFNldFByb3BlcnR5KGNvbnRleHQsIG8sIHByb3BlcnR5TmFtZSwgSlNWYWx1ZU1ha2VOdW1iZXIo
Y29udGV4dCwgMSksIGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udEVudW0sIE5VTEwpOwogICAgIEpT
UHJvcGVydHlOYW1lQXJyYXlSZWYgbmFtZUFycmF5ID0gSlNPYmplY3RDb3B5UHJvcGVydHlOYW1l
cyhjb250ZXh0LCBvKTsKICAgICBzaXplX3QgZXhwZWN0ZWRDb3VudCA9IEpTUHJvcGVydHlOYW1l
QXJyYXlHZXRDb3VudChuYW1lQXJyYXkpOwogICAgIHNpemVfdCBjb3VudDsKQEAgLTEzNTcsOSAr
MTM5OSwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIHByaW50ZigiRkFJTDogVGVzdCBzY3JpcHQgcmV0dXJuZWQgdW5leHBl
Y3RlZCB2YWx1ZTpcbiIpOwogICAgICAgICAgICAgSlNTdHJpbmdSZWYgZXhjZXB0aW9uSVN0cmlu
ZyA9IEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgZXhjZXB0aW9uLCBOVUxMKTsKLSAgICAg
ICAgICAgIENGU3RyaW5nUmVmIGV4Y2VwdGlvbkNGID0gSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgZXhjZXB0aW9uSVN0cmluZyk7Ci0gICAgICAgICAgICBDRlNob3co
ZXhjZXB0aW9uQ0YpOwotICAgICAgICAgICAgQ0ZSZWxlYXNlKGV4Y2VwdGlvbkNGKTsKKworICAg
ICAgICAgICAgc2l6ZV90IHNpemVVVEY4ID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdT
aXplKGV4Y2VwdGlvbklTdHJpbmcpOworICAgICAgICAgICAgY2hhciAqZXhjZXB0aW9uVVRGOCA9
IG1hbGxvYyhzaXplVVRGOCk7CisgICAgICAgICAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKGV4
Y2VwdGlvbklTdHJpbmcsIGV4Y2VwdGlvblVURjgsIHNpemVVVEY4KTsKKyAgICAgICAgICAgIHBy
aW50ZigiJXNcbiIsIGV4Y2VwdGlvblVURjgpOworICAgICAgICAgICAgZnJlZShleGNlcHRpb25V
VEY4KTsKKwogICAgICAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGV4Y2VwdGlvbklTdHJpbmcpOwog
ICAgICAgICAgICAgZmFpbGVkID0gMTsKICAgICAgICAgfQpAQCAtMTM3NiwxMCArMTQyMiw2IEBA
IGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAKICAgICBKU1N0cmluZ1JlbGVhc2Uo
anNFbXB0eUlTdHJpbmcpOwogICAgIEpTU3RyaW5nUmVsZWFzZShqc09uZUlTdHJpbmcpOwotICAg
IEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZyk7Ci0gICAgSlNTdHJpbmdSZWxlYXNlKGpzQ0ZF
bXB0eUlTdHJpbmcpOwotICAgIEpTU3RyaW5nUmVsZWFzZShqc0NGSVN0cmluZ1dpdGhDaGFyYWN0
ZXJzKTsKLSAgICBKU1N0cmluZ1JlbGVhc2UoanNDRkVtcHR5SVN0cmluZ1dpdGhDaGFyYWN0ZXJz
KTsKICAgICBKU1N0cmluZ1JlbGVhc2UoZ29vZFN5bnRheCk7CiAgICAgSlNTdHJpbmdSZWxlYXNl
KGJhZFN5bnRheCk7CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBiYWQ0OGQ4Li5iNGNmNTNiIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDctMTMgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBG
aWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB0ZXN0YXBpLmMgZGVwZW5kcyBvbiB0aGUgQ29y
ZSBGb3VuZGF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDAwNTgKKworICAgICAgICBTZXBhcmF0ZSBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0
ZXN0cyBpbiBKU0MncyB0ZXN0YXBpLmMsIGxhbmRpbmcKKyAgICAgICAgYWdhaW4gdG8gZml4IFdp
bmRvd3MgYnVpbGQuIEFsc28gZW5hYmxpbmcgaXQgdG8gY29tcGlsZSBpbiBRdAorICAgICAgICBl
bnZpcm9ubWVudHMuCisKKyAgICAgICAgQWxsIHRlc3RzIHNob3VsZCB3b3JrIGV4Y2VwdCBmb3Ig
dGhlIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKSBmdW5jdGlvbiwKKyAgICAgICAgYmVj
YXVzZSBpdHMgdGVzdHMgZGVwZW5kIG9uIENvcmUgRm91bmRhdGlvbiBzcGVjaWZpYyBmdW5jdGlv
bnMuCisKKyAgICAgICAgKiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAodGVzdEpTU3Ry
aW5nUmVmQ0YpOiBtb3ZlZCBDb3JlRm91bmRhdGlvbiBzcGVjaWZpYyB0ZXN0cyB0byB0aGlzIGZ1
bmN0aW9uLgorICAgICAgICAobWFpbik6IFRoZSBtb3ZlcyBwbHVzIHNvbWUgbWlub3IgdHdlYWtz
LgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlDb21tb24u
dnNwcm9wczogaW5jbHVkaW5nCisgICAgICAgIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIGNvbmZp
Zy5oIGluIHdpbmRvd3MgYnVpbGQgc3lzdGVtLgorICAgICAgICAqIHRlc3RhcGkucHJvOiBBZGRl
ZC4KKwogMjAxMC0wNy0xMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYzMjYyLgpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3RhcGkvdGVzdGFwaUNv
bW1vbi52c3Byb3BzIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL3Rlc3Rh
cGkvdGVzdGFwaUNvbW1vbi52c3Byb3BzCmluZGV4IDE2MWY1NzEuLmRhMTViOTUgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai90ZXN0YXBpL3Rlc3RhcGlD
b21tb24udnNwcm9wcworKysgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
dGVzdGFwaS90ZXN0YXBpQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29s
CiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3Jp
ZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5cLi5cQVBJJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0
cHV0RGlyKVxpbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRPdXRwdXREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRPdXRwdXREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KFdlYktpdE91dHB1dERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdE91dHB1dERpcilc
aW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
JnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDsi
CisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoUHJvamVjdERpcilcLi5c
Li5cQVBJJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cLi4mcXVvdDs7JnF1b3Q7JChXZWJL
aXRPdXRwdXREaXIpXGluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OzsmcXVv
dDskKFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KFdlYktpdE91dHB1dERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0T3V0cHV0RGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0T3V0cHV0
RGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGlu
Y2x1ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZx
dW90OyIKIAkJV2FybmluZ0xldmVsPSI0IgogCQlEZXRlY3Q2NEJpdFBvcnRhYmlsaXR5UHJvYmxl
bXM9InRydWUiCiAJLz4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3Rlc3RhcGkucHJvIGIv
SmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNWJjMTFlMAotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3JlL3Rlc3RhcGku
cHJvCkBAIC0wLDAgKzEsMzIgQEAKK1RFTVBMQVRFID0gYXBwCitUQVJHRVQgPSB0ZXN0YXBpCitT
T1VSQ0VTID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYworUVQgLT0gZ3VpCitDT05GSUcgLT0gYXBwX2J1
bmRsZQorQ09ORklHICs9IGJ1aWxkaW5nLWxpYnMKK3dpbjMyLSo6IENPTkZJRyArPSBjb25zb2xl
Cit3aW4zMi1tc3ZjKjogQ09ORklHICs9IGV4Y2VwdGlvbnNfb2ZmIHN0bF9vZmYKKworaXNFbXB0
eShPVVRQVVRfRElSKTogT1VUUFVUX0RJUj0gLi4KK2luY2x1ZGUoJCRQV0QvLi4vV2ViS2l0LnBy
aSkKKworQ09ORklHICs9IGxpbmtfcGtnY29uZmlnCisKK1FNQUtFX1JQQVRIRElSICs9ICQkT1VU
UFVUX0RJUi9saWIKKworIUNPTkZJRyhyZWxlYXNlLCBkZWJ1Z3xyZWxlYXNlKSB7CisgICAgT0JK
RUNUU19ESVIgPSBvYmovZGVidWcKK30gZWxzZSB7ICMgUmVsZWFzZQorICAgIE9CSkVDVFNfRElS
ID0gb2JqL3JlbGVhc2UKK30KK09CSkVDVFNfRElSX1dUUiA9ICQkT0JKRUNUU19ESVIkJHtRTUFL
RV9ESVJfU0VQfQoraW5jbHVkZSgkJFBXRC9KYXZhU2NyaXB0Q29yZS5wcmkpCithZGRKYXZhU2Ny
aXB0Q29yZUxpYiguKQorCitzeW1iaWFuIHsKKyAgICBUQVJHRVQuQ0FQQUJJTElUWSA9IFJlYWRV
c2VyRGF0YSBXcml0ZVVzZXJEYXRhIE5ldHdvcmtTZXJ2aWNlcworfQorCittYWMgeworICAgIExJ
QlNfUFJJVkFURSArPSAtZnJhbWV3b3JrIEFwcEtpdAorfQpkaWZmIC0tZ2l0IGEvV2ViS2l0LnBy
byBiL1dlYktpdC5wcm8KaW5kZXggZDhjMWJjNS4uNmMxNzhhYiAxMDA2NDQKLS0tIGEvV2ViS2l0
LnBybworKysgYi9XZWJLaXQucHJvCkBAIC0xMyw2ICsxMyw3IEBAIGNvbnRhaW5zKFFUX0NPTkZJ
RywgZGVjbGFyYXRpdmUpIHsKICAgICBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L2RlY2xhcmF0aXZl
KTogU1VCRElSUyArPSBXZWJLaXQvcXQvZGVjbGFyYXRpdmUKIH0KIGV4aXN0cygkJFBXRC9KYXZh
U2NyaXB0Q29yZS9qc2MucHJvKTogU1VCRElSUyArPSBKYXZhU2NyaXB0Q29yZS9qc2MucHJvCitl
eGlzdHMoJCRQV0QvSmF2YVNjcmlwdENvcmUvdGVzdGFwaS5wcm8pOiBTVUJESVJTICs9IEphdmFT
Y3JpcHRDb3JlL3Rlc3RhcGkucHJvCiBleGlzdHMoJCRQV0QvV2ViS2l0L3F0L3Rlc3RzKTogU1VC
RElSUyArPSBXZWJLaXQvcXQvdGVzdHMKIGV4aXN0cygkJFBXRC9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZS5wcm8pOiBTVUJESVJTICs9IFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlLnBybwogZXhpc3RzKCQkUFdEL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8pOiBTVUJESVJTICs9IFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0ltYWdlRGlmZi5wcm8KLS0gCjEuNy4xCgo=
</data>
<flag name="review"
          id="49558"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
          </attachment>
      

    </bug>

</bugzilla>