<?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>39494</bug_id>
          
          <creation_ts>2010-05-21 09:49:35 -0700</creation_ts>
          <short_desc>Change filenameFromString to return CString</short_desc>
          <delta_ts>2010-06-04 02:43:00 -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>Platform</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>joybro201</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>228958</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-21 09:49:35 -0700</bug_when>
    <thetext>filenameFromString returns a newly allocated string and the caller must free the string. GTK and EFL ports use g_free while all others ports use fastFree. This is confusing because the same function behaves differently with respect to ports. Change filenameFromString to return CString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228968</commentid>
    <comment_count>1</comment_count>
      <attachid>56720</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-21 10:05:57 -0700</bug_when>
    <thetext>Created attachment 56720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228971</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-21 10:07:52 -0700</bug_when>
    <thetext>Attachment 56720 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/gtk/FileSystemGtk.cpp:102:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/gtk/FileSystemGtk.cpp:113:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/gtk/FileSystemGtk.cpp:208:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229009</commentid>
    <comment_count>3</comment_count>
      <attachid>56720</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-21 11:16:46 -0700</bug_when>
    <thetext>Comment on attachment 56720
Patch

Good change!

&gt; -char* filenameFromString(const String&amp;);
&gt; +WTF::CString filenameFromString(const String&amp;);

Just CString should be fine, no need for the &quot;WTF::&quot; prefix here.

I can&apos;t tell whether filenameFromString is allowed to return the null string or not. If it is allowed to return null, it seems that many call sites are missing code to handle this case and will crash. If it is not allowed to return null, then some call sites have extra unneeded code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229029</commentid>
    <comment_count>4</comment_count>
      <attachid>56720</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-21 12:02:56 -0700</bug_when>
    <thetext>Comment on attachment 56720
Patch

r- per darin&apos;s comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229579</commentid>
    <comment_count>5</comment_count>
      <attachid>56844</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-23 20:10:34 -0700</bug_when>
    <thetext>Created attachment 56844
Revised patch

Remove &quot;WTF:: prefix&quot;.

I will file a separate bug for null checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229580</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-23 20:14:22 -0700</bug_when>
    <thetext>Attachment 56844 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/gtk/FileSystemGtk.cpp:102:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/gtk/FileSystemGtk.cpp:113:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
WebCore/platform/gtk/FileSystemGtk.cpp:208:  Use 0 instead of NULL.  [readability/null] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229582</commentid>
    <comment_count>7</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-05-23 20:15:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Just CString should be fine, no need for the &quot;WTF::&quot; prefix here.

I tried to be consistent as two other functions use &quot;WTF::&quot; prefix here:

WTF::CString fileSystemRepresentation(const String&amp;);
WTF::CString openTemporaryFile(const char* prefix, PlatformFileHandle&amp;);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234115</commentid>
    <comment_count>8</comment_count>
      <attachid>56844</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-06-04 02:01:30 -0700</bug_when>
    <thetext>Comment on attachment 56844
Revised patch

&gt; I tried to be consistent as two other functions use &quot;WTF::&quot; prefix here:

That&apos;s reasonable.
Style errors came from the existing code. So, this patch looks OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234129</commentid>
    <comment_count>9</comment_count>
      <attachid>56844</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-04 02:42:54 -0700</bug_when>
    <thetext>Comment on attachment 56844
Revised patch

Clearing flags on attachment: 56844

Committed r60668: &lt;http://trac.webkit.org/changeset/60668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234130</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-04 02:43:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56720</attachid>
            <date>2010-05-21 10:05:57 -0700</date>
            <delta_ts>2010-05-23 20:10:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>filenameFromString.patch</filename>
            <type>text/plain</type>
            <size>12738</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTkzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTAtMDUtMjEgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2UgZmlsZW5hbWVGcm9tU3RyaW5nIHRvIHJldHVybiBDU3RyaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ5NAorCisgICAgICAgIGZp
bGVuYW1lRnJvbVN0cmluZyByZXR1cm5zIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBhbmQgdGhl
IGNhbGxlciBtdXN0CisgICAgICAgIGZyZWUgdGhlIHN0cmluZy4gR1RLIGFuZCBFRkwgcG9ydHMg
dXNlIGdfZnJlZSB3aGlsZSBhbGwgb3RoZXJzIHBvcnRzIHVzZQorICAgICAgICBmYXN0RnJlZS4g
VGhpcyBpcyBjb25mdXNpbmcgYmVjYXVzZSB0aGUgc2FtZSBmdW5jdGlvbiBiZWhhdmVzCisgICAg
ICAgIGRpZmZlcmVudGx5IHdpdGggcmVzcGVjdCB0byBwb3J0cy4gQ2hhbmdlIGZpbGVuYW1lRnJv
bVN0cmluZyB0byByZXR1cm4KKyAgICAgICAgQ1N0cmluZy4KKworICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGcm9tU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L0ZpbGVTeXN0ZW1FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGcm9tU3RyaW5n
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVuYW1lRnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRpc3BsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNv
cmU6OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25U
aW1lKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SHR0
cCk6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvU2hhcmVkQnVmZmVyUE9TSVguY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUpOgor
CiAyMDEwLTA1LTIxICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5j
cHAJKHJldmlzaW9uIDU5OTEwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsOSArMzEsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAj
aWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkKLWNoYXIqIGZpbGVuYW1lRnJvbVN0
cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK0NTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIHJldHVybiBmYXN0U3RyRHVwKHN0cmluZy51dGY4
KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gc3RyaW5nLnV0ZjgoKTsKIH0KICNlbmRpZgogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL0ZpbGVTeXN0ZW0uaAkocmV2aXNpb24gNTk5MTApCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L0ZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIFN0cmluZyBy
b2FtaW5nVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG8KIGJvb2wgc2FmZUNyZWF0ZUZpbGUoY29u
c3QgU3RyaW5nJiwgQ0ZEYXRhUmVmKTsKICNlbmRpZgogCi1jaGFyKiBmaWxlbmFtZUZyb21TdHJp
bmcoY29uc3QgU3RyaW5nJik7CitXVEY6OkNTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYpOwogCiAjaWYgUExBVEZPUk0oR1RLKQogU3RyaW5nIGZpbGVuYW1lVG9TdHJpbmco
Y29uc3QgY2hhciopOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5jcHAJ
KHJldmlzaW9uIDU5OTEwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRmlsZVN5c3RlbUVmbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDE0ICs1NiwxNyBAQCBDU3RyaW5nIGZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihjb25zdCBTCiAgICAgcmV0dXJuIHBhdGgudXRmOCgpOwogfQogCi1jaGFy
KiBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitDU3RyaW5nIGZpbGVu
YW1lRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKIC8vIFdBUk5JTkc6IHRoaXMg
aXMganVzdCB1c2VkIGJ5IHBsYXRmb3JtL25ldHdvcmsvc291cCwgdGh1cyBtdXN0IGJlIEdMSUIh
ISEKIC8vIFRPRE86IG1vdmUgdGhpcyB0byBDU3RyaW5nIGFuZCB1c2UgaXQgaW5zdGVhZCBpbiBi
b3RoLCBiZWluZyBtb3JlIHN0YW5kYXJkCiAjaWYgUExBVEZPUk0oV0lOX09TKQotICAgIHJldHVy
biBnX3N0cmR1cChzdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIHN0cmluZy51dGY4
KCk7CiAjZWxzZQotICAgIHJldHVybiBnX3VyaV91bmVzY2FwZV9zdHJpbmcoc3RyaW5nLnV0Zjgo
KS5kYXRhKCksIDApOworICAgIGNoYXIqIGZpbGVuYW1lID0gZ191cmlfdW5lc2NhcGVfc3RyaW5n
KHN0cmluZy51dGY4KCkuZGF0YSgpLCAwKTsKKyAgICBDU3RyaW5nIGNmaWxlbmFtZShmaWxlbmFt
ZSk7CisgICAgZ19mcmVlKGZpbGVuYW1lKTsKKyAgICByZXR1cm4gY2ZpbGVuYW1lOwogI2VuZGlm
CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVDaG9vc2VyR3RrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHAJKHJldmlz
aW9uIDU5OTEwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw4IEBAIFN0cmluZyBGaWxlQ2hvb3Nlcjo6YmFzZW5h
bWVGb3JXaWR0aChjb24KICAgICBTdHJpbmcgc3RyaW5nID0gZmlsZUJ1dHRvbk5vRmlsZVNlbGVj
dGVkTGFiZWwoKTsKIAogICAgIGlmIChtX2ZpbGVuYW1lcy5zaXplKCkgPT0gMSkgewotICAgICAg
ICBnY2hhciogc3lzdGVtRmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcobV9maWxlbmFtZXNb
MF0pOwotICAgICAgICBnY2hhciogc3lzdGVtQmFzZW5hbWUgPSBnX3BhdGhfZ2V0X2Jhc2VuYW1l
KHN5c3RlbUZpbGVuYW1lKTsKLSAgICAgICAgZ19mcmVlKHN5c3RlbUZpbGVuYW1lKTsKKyAgICAg
ICAgQ1N0cmluZyBzeXN0ZW1GaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhtX2ZpbGVuYW1l
c1swXSk7CisgICAgICAgIGdjaGFyKiBzeXN0ZW1CYXNlbmFtZSA9IGdfcGF0aF9nZXRfYmFzZW5h
bWUoc3lzdGVtRmlsZW5hbWUuZGF0YSgpKTsKICAgICAgICAgc3RyaW5nQnlBZG9wdGluZ0ZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihzeXN0ZW1CYXNlbmFtZSwgc3RyaW5nKTsKICAgICB9IGVsc2Ug
aWYgKG1fZmlsZW5hbWVzLnNpemUoKSA+IDEpCiAgICAgICAgIHJldHVybiBTdHJpbmdUcnVuY2F0
b3I6OnJpZ2h0VHJ1bmNhdGUobXVsdGlwbGVGaWxlVXBsb2FkVGV4dChtX2ZpbGVuYW1lcy5zaXpl
KCkpLCB3aWR0aCwgZm9udCwgZmFsc2UpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmls
ZVN5c3RlbUd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5
c3RlbUd0ay5jcHAJKHJldmlzaW9uIDU5OTEwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmls
ZVN5c3RlbUd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyLDEyICs1MiwxNSBAQCBTdHJpbmcg
ZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFyKiBmaWxlCiAjZW5kaWYKIH0KIAotY2hhciogZmls
ZW5hbWVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorQ1N0cmluZyBmaWxlbmFtZUZy
b21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAjaWYgT1MoV0lORE9XUykKLSAgICBy
ZXR1cm4gZ19zdHJkdXAoc3RyaW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBzdHJpbmcu
dXRmOCgpOwogI2Vsc2UKLSAgICByZXR1cm4gZ191cmlfdW5lc2NhcGVfc3RyaW5nKHN0cmluZy51
dGY4KCkuZGF0YSgpLCAwKTsKKyAgICBjaGFyKiBmaWxlbmFtZSA9IGdfdXJpX3VuZXNjYXBlX3N0
cmluZyhzdHJpbmcudXRmOCgpLmRhdGEoKSwgMCk7CisgICAgQ1N0cmluZyBjZmlsZW5hbWUoZmls
ZW5hbWUpOworICAgIGdfZnJlZShmaWxlbmFtZSk7CisgICAgcmV0dXJuIGNmaWxlbmFtZTsKICNl
bmRpZgogfQogCkBAIC02Nyw5ICs3MCw4IEBAIFN0cmluZyBmaWxlbmFtZUZvckRpc3BsYXkoY29u
c3QgU3RyaW5nJiAKICNpZiBPUyhXSU5ET1dTKQogICAgIHJldHVybiBzdHJpbmc7CiAjZWxzZQot
ICAgIGdjaGFyKiBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhzdHJpbmcpOwotICAgIGdj
aGFyKiBkaXNwbGF5ID0gZ19maWxlbmFtZV90b191dGY4KGZpbGVuYW1lLCAwLCAwLCAwLCAwKTsK
LSAgICBnX2ZyZWUoZmlsZW5hbWUpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZy
b21TdHJpbmcoc3RyaW5nKTsKKyAgICBnY2hhciogZGlzcGxheSA9IGdfZmlsZW5hbWVfdG9fdXRm
OChmaWxlbmFtZS5kYXRhKCksIDAsIDAsIDAsIDApOwogICAgIGlmICghZGlzcGxheSkKICAgICAg
ICAgcmV0dXJuIHN0cmluZzsKIApAQCAtODMsMTIgKzg1LDEwIEBAIFN0cmluZyBmaWxlbmFtZUZv
ckRpc3BsYXkoY29uc3QgU3RyaW5nJiAKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIHBh
dGgpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBnY2hhciogZmlsZW5hbWUgPSBm
aWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1l
RnJvbVN0cmluZyhwYXRoKTsKIAotICAgIGlmIChmaWxlbmFtZSkgewotICAgICAgICByZXN1bHQg
PSBnX2ZpbGVfdGVzdChmaWxlbmFtZSwgR19GSUxFX1RFU1RfRVhJU1RTKTsKLSAgICAgICAgZ19m
cmVlKGZpbGVuYW1lKTsKLSAgICB9CisgICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKKyAgICAg
ICAgcmVzdWx0ID0gZ19maWxlX3Rlc3QoZmlsZW5hbWUuZGF0YSgpLCBHX0ZJTEVfVEVTVF9FWElT
VFMpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTk2LDEyICs5NiwxMCBAQCBib29sIGZp
bGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKIHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGdjaGFyKiBmaWxlbmFt
ZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYgKGZpbGVuYW1lKSB7Ci0gICAgICAgIHJl
c3VsdCA9IGdfcmVtb3ZlKGZpbGVuYW1lKSA9PSAwOwotICAgICAgICBnX2ZyZWUoZmlsZW5hbWUp
OwotICAgIH0KKyAgICBpZiAoIWZpbGVuYW1lLmlzTnVsbCgpKQorICAgICAgICByZXN1bHQgPSBn
X3JlbW92ZShmaWxlbmFtZS5kYXRhKCkpID09IDA7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpA
QCAtMTA5LDI1ICsxMDcsMjIgQEAgYm9vbCBkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkK
IGJvb2wgZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIGJv
b2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgZ2NoYXIqIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3Ry
aW5nKHBhdGgpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0
aCk7CiAKLSAgICBpZiAoZmlsZW5hbWUpIHsKLSAgICAgICAgcmVzdWx0ID0gZ19ybWRpcihmaWxl
bmFtZSkgPT0gMDsKLSAgICAgICAgZ19mcmVlKGZpbGVuYW1lKTsKLSAgICB9CisgICAgaWYgKCFm
aWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gZ19ybWRpcihmaWxlbmFtZS5kYXRh
KCkpID09IDA7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIGdldEZpbGVTaXplKGNv
bnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXplKQogewotICAgIGdjaGFyKiBm
aWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKLSAgICBpZiAoIWZpbGVuYW1lKQor
ICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgaWYg
KGZpbGVuYW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdHJ1Y3Qg
c3RhdCBzdGF0UmVzdWx0OwotICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1lLCAmc3Rh
dFJlc3VsdCk7Ci0gICAgZ19mcmVlKGZpbGVuYW1lKTsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3Rh
dChmaWxlbmFtZS5kYXRhKCksICZzdGF0UmVzdWx0KTsKICAgICBpZiAocmVzdWx0ICE9IDApCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMTM3LDEzICsxMzIsMTIgQEAgYm9vbCBnZXRGaWxl
U2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbgogCiBib29sIGdldEZpbGVNb2RpZmljYXRpb25U
aW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiBtb2RpZmllZFRpbWUpCiB7Ci0gICAgZ2No
YXIqIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwotICAgIGlmICghZmlsZW5h
bWUpCisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAg
ICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHN0
cnVjdCBzdGF0IHN0YXRSZXN1bHQ7Ci0gICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUs
ICZzdGF0UmVzdWx0KTsKLSAgICBnX2ZyZWUoZmlsZW5hbWUpOworICAgIGdpbnQgcmVzdWx0ID0g
Z19zdGF0KGZpbGVuYW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOwogICAgIGlmIChyZXN1bHQgIT0g
MCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xNjIsMTIgKzE1NiwxMSBAQCBTdHJpbmcg
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9y
aWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBnY2hhciogZmlsZW5hbWUgPSBmaWxlbmFt
ZUZyb21TdHJpbmcocGF0aCk7Ci0gICAgaWYgKCFmaWxlbmFtZSkKKyAgICBDU3RyaW5nIGZpbGVu
YW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051bGwo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZ2ludCByZXN1bHQgPSBnX21rZGlyX3dp
dGhfcGFyZW50cyhmaWxlbmFtZSwgU19JUldYVSk7Ci0gICAgZ19mcmVlKGZpbGVuYW1lKTsKKyAg
ICBnaW50IHJlc3VsdCA9IGdfbWtkaXJfd2l0aF9wYXJlbnRzKGZpbGVuYW1lLmRhdGEoKSwgU19J
UldYVSk7CiAKICAgICByZXR1cm4gcmVzdWx0ID09IDA7CiB9CkBAIC0xODIsMTEgKzE3NSwxMCBA
QCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0CiAgICAgaWYgKHBhdGhO
YW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHBhdGhOYW1lOwogCi0gICAgY2hhciogdG1w
RmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aE5hbWUpOwotICAgIGNoYXIqIGJhc2VO
YW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSh0bXBGaWxlbmFtZSk7CisgICAgQ1N0cmluZyB0bXBG
aWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoTmFtZSk7CisgICAgY2hhciogYmFzZU5h
bWUgPSBnX3BhdGhfZ2V0X2Jhc2VuYW1lKHRtcEZpbGVuYW1lLmRhdGEoKSk7CiAgICAgU3RyaW5n
IGZpbGVOYW1lID0gU3RyaW5nOjpmcm9tVVRGOChiYXNlTmFtZSk7CiAgICAgZ19mcmVlKGJhc2VO
YW1lKTsKLSAgICBnX2ZyZWUodG1wRmlsZW5hbWUpOwogCiAgICAgcmV0dXJuIGZpbGVOYW1lOwog
fQpAQCAtMTk0LDcgKzE4Niw3IEBAIFN0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29uc3QgU3RyaW5n
JiBwYXQKIFN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICAv
KiBObyBudWxsIGNoZWNraW5nIG5lZWRlZCAqLwotICAgIEdPd25QdHI8Y2hhcj4gdG1wRmlsZW5h
bWUoZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpKTsKKyAgICBHT3duUHRyPGNoYXI+IHRtcEZpbGVu
YW1lKGNvbnN0X2Nhc3Q8Y2hhcio+KGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKS5kYXRhKCkpKTsK
ICAgICBHT3duUHRyPGNoYXI+IGRpcm5hbWUoZ19wYXRoX2dldF9kaXJuYW1lKHRtcEZpbGVuYW1l
LmdldCgpKSk7CiAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoZGlybmFtZS5nZXQoKSk7CiB9
CkBAIC0yMDMsOCArMTk1LDggQEAgVmVjdG9yPFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBT
dHJpbgogewogICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXM7CiAKLSAgICBnY2hhciogZmlsZW5h
bWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7Ci0gICAgR0RpciogZGlyID0gZ19kaXJfb3Bl
bihmaWxlbmFtZSwgMCwgMCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0
cmluZyhwYXRoKTsKKyAgICBHRGlyKiBkaXIgPSBnX2Rpcl9vcGVuKGZpbGVuYW1lLmRhdGEoKSwg
MCwgMCk7CiAgICAgaWYgKCFkaXIpCiAgICAgICAgIHJldHVybiBlbnRyaWVzOwogCkBAIC0yMTMs
MTIgKzIwNSwxMSBAQCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluCiAg
ICAgICAgIGlmICghZ19wYXR0ZXJuX21hdGNoX3N0cmluZyhwc3BlYywgbmFtZSkpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICBnY2hhciogZW50cnkgPSBnX2J1aWxkX2ZpbGVuYW1l
KGZpbGVuYW1lLCBuYW1lLCBOVUxMKTsKKyAgICAgICAgZ2NoYXIqIGVudHJ5ID0gZ19idWlsZF9m
aWxlbmFtZShmaWxlbmFtZS5kYXRhKCksIG5hbWUsIE5VTEwpOwogICAgICAgICBlbnRyaWVzLmFw
cGVuZChmaWxlbmFtZVRvU3RyaW5nKGVudHJ5KSk7CiAgICAgICAgIGdfZnJlZShlbnRyeSk7CiAg
ICAgfQogICAgIGdfZGlyX2Nsb3NlKGRpcik7Ci0gICAgZ19mcmVlKGZpbGVuYW1lKTsKIAogICAg
IHJldHVybiBlbnRyaWVzOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVm
ZmVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZm
ZXJHdGsuY3BwCShyZXZpc2lvbiA1OTkxMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJl
ZEJ1ZmZlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE5ICszMiwxNyBAQCBQYXNzUmVm
UHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVyOjpjCiAgICAgaWYgKGZpbGVQYXRoLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBnY2hhciogZmlsZW5hbWUgPSBmaWxlbmFt
ZUZyb21TdHJpbmcoZmlsZVBhdGgpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZy
b21TdHJpbmcoZmlsZVBhdGgpOwogICAgIGdjaGFyKiBjb250ZW50czsKICAgICBnc2l6ZSBzaXpl
OwogICAgIEdFcnJvciogZXJyb3IgPSAwOwotICAgIGlmICghZ19maWxlX2dldF9jb250ZW50cyhm
aWxlbmFtZSwgJmNvbnRlbnRzLCAmc2l6ZSwgJmVycm9yKSkgeworICAgIGlmICghZ19maWxlX2dl
dF9jb250ZW50cyhmaWxlbmFtZS5kYXRhKCksICZjb250ZW50cywgJnNpemUsICZlcnJvcikpIHsK
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZnVsbHkgcmVhZCBjb250ZW50cyBvZiBmaWxl
ICVzIC0gJXMiLCBmaWxlbmFtZUZvckRpc3BsYXkoZmlsZVBhdGgpLnV0ZjgoKS5kYXRhKCksIGVy
cm9yLT5tZXNzYWdlKTsKICAgICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKLSAgICAgICAgZ19m
cmVlKGZpbGVuYW1lKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gcmVzdWx0ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoY29udGVudHMsIHNpemUp
OwotICAgIGdfZnJlZShmaWxlbmFtZSk7CiAgICAgZ19mcmVlKGNvbnRlbnRzKTsKIAogICAgIHJl
dHVybiByZXN1bHQucmVsZWFzZSgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCShyZXZpc2lvbiA1OTkxMCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzMywxMCArNTMzLDggQEAgc3RhdGljIGJvb2wgc3RhcnRIdHRwKFJl
c291cmNlSGFuZGxlKiBoYQogICAgICAgICAgICAgICAgICAgICAgKiBsaWJzb3VwJ3Mgc2ltcGxl
LWh0dHBkIHRlc3QKICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAg
IEdFcnJvciogZXJyb3IgPSAwOwotICAgICAgICAgICAgICAgICAgICBnY2hhciogZmlsZU5hbWUg
PSBmaWxlbmFtZUZyb21TdHJpbmcoZWxlbWVudC5tX2ZpbGVuYW1lKTsKLSAgICAgICAgICAgICAg
ICAgICAgR01hcHBlZEZpbGUqIGZpbGVNYXBwaW5nID0gZ19tYXBwZWRfZmlsZV9uZXcoZmlsZU5h
bWUsIGZhbHNlLCAmZXJyb3IpOwotCi0gICAgICAgICAgICAgICAgICAgIGdfZnJlZShmaWxlTmFt
ZSk7CisgICAgICAgICAgICAgICAgICAgIENTdHJpbmcgZmlsZU5hbWUgPSBmaWxlbmFtZUZyb21T
dHJpbmcoZWxlbWVudC5tX2ZpbGVuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgR01hcHBlZEZp
bGUqIGZpbGVNYXBwaW5nID0gZ19tYXBwZWRfZmlsZV9uZXcoZmlsZU5hbWUuZGF0YSgpLCBmYWxz
ZSwgJmVycm9yKTsKIAogICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL3Bvc2l4L1NoYXJlZEJ1ZmZlclBPU0lYLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL3Bvc2l4L1NoYXJlZEJ1ZmZlclBPU0lYLmNwcAkocmV2aXNpb24gNTk5MTApCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3Bvc2l4L1NoYXJlZEJ1ZmZlclBPU0lYLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAsOSArNDAsOCBAQCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gU2hhcmVkQnVmZmVy
OjpjCiAgICAgaWYgKGZpbGVQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg
ICBjaGFyKiBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhmaWxlUGF0aCk7Ci0gICAgaW50
IGZkID0gb3BlbihmaWxlbmFtZSwgT19SRE9OTFkpOwotICAgIGZhc3RGcmVlKGZpbGVuYW1lKTsK
KyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKGZpbGVQYXRoKTsKKyAg
ICBpbnQgZmQgPSBvcGVuKGZpbGVuYW1lLmRhdGEoKSwgT19SRE9OTFkpOwogICAgIGlmIChmZCA9
PSAtMSkKICAgICAgICAgcmV0dXJuIDA7CiAK
</data>
<flag name="review"
          id="41190"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56844</attachid>
            <date>2010-05-23 20:10:34 -0700</date>
            <delta_ts>2010-06-04 02:42:54 -0700</delta_ts>
            <desc>Revised patch</desc>
            <filename>filenameFromString.patch</filename>
            <type>text/plain</type>
            <size>12724</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDA1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMTAtMDUtMjMgIEt3YW5nIFl1bCBTZW8gIDxza3l1bEBjb21wYW55
MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaGFuZ2UgZmlsZW5hbWVGcm9tU3RyaW5nIHRvIHJldHVybiBDU3RyaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTQ5NAorCisgICAgICAgIGZp
bGVuYW1lRnJvbVN0cmluZyByZXR1cm5zIGEgbmV3bHkgYWxsb2NhdGVkIHN0cmluZyBhbmQgdGhl
IGNhbGxlciBtdXN0CisgICAgICAgIGZyZWUgdGhlIHN0cmluZy4gR1RLIGFuZCBFRkwgcG9ydHMg
dXNlIGdfZnJlZSB3aGlsZSBhbGwgb3RoZXJzIHBvcnRzIHVzZQorICAgICAgICBmYXN0RnJlZS4g
VGhpcyBpcyBjb25mdXNpbmcgYmVjYXVzZSB0aGUgc2FtZSBmdW5jdGlvbiBiZWhhdmVzCisgICAg
ICAgIGRpZmZlcmVudGx5IHdpdGggcmVzcGVjdCB0byBwb3J0cy4gQ2hhbmdlIGZpbGVuYW1lRnJv
bVN0cmluZyB0byByZXR1cm4KKyAgICAgICAgQ1N0cmluZy4KKworICAgICAgICAqIHBsYXRmb3Jt
L0ZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGcm9tU3RyaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L0ZpbGVTeXN0ZW1FZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGcm9tU3RyaW5n
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVuYW1lRnJv
bVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRpc3BsYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVGaWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNv
cmU6OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25U
aW1lKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rvcmllcyk6CisgICAgICAgIChX
ZWJDb3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZGlyZWN0b3J5TmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlV2l0aENvbnRlbnRzT2ZGaWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0SHR0
cCk6CisgICAgICAgICogcGxhdGZvcm0vcG9zaXgvU2hhcmVkQnVmZmVyUE9TSVguY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGVXaXRoQ29udGVudHNPZkZpbGUpOgor
CiAyMDEwLTA1LTIzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5jcHAJKHJldmlz
aW9uIDYwMDU4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsOSArMzEsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgIVBMQVRG
T1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkKLWNoYXIqIGZpbGVuYW1lRnJvbVN0cmluZyhjb25z
dCBTdHJpbmcmIHN0cmluZykKK0NTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogewotICAgIHJldHVybiBmYXN0U3RyRHVwKHN0cmluZy51dGY4KCkuZGF0YSgp
KTsKKyAgICByZXR1cm4gc3RyaW5nLnV0ZjgoKTsKIH0KICNlbmRpZgogCkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0Zp
bGVTeXN0ZW0uaAkocmV2aXNpb24gNjAwNTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0
ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIFN0cmluZyByb2FtaW5nVXNl
clNwZWNpZmljU3RvcmFnZURpcmVjdG8KIGJvb2wgc2FmZUNyZWF0ZUZpbGUoY29uc3QgU3RyaW5n
JiwgQ0ZEYXRhUmVmKTsKICNlbmRpZgogCi1jaGFyKiBmaWxlbmFtZUZyb21TdHJpbmcoY29uc3Qg
U3RyaW5nJik7CitDU3RyaW5nIGZpbGVuYW1lRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKTsKIAog
I2lmIFBMQVRGT1JNKEdUSykKIFN0cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNoYXIqKTsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCShyZXZpc2lvbiA2MDA1
OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NiwxNCArNTYsMTcgQEAgQ1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
Y29uc3QgUwogICAgIHJldHVybiBwYXRoLnV0ZjgoKTsKIH0KIAotY2hhciogZmlsZW5hbWVGcm9t
U3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQorQ1N0cmluZyBmaWxlbmFtZUZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7CiAvLyBXQVJOSU5HOiB0aGlzIGlzIGp1c3QgdXNlZCBi
eSBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAsIHRodXMgbXVzdCBiZSBHTElCISEhCiAvLyBUT0RPOiBt
b3ZlIHRoaXMgdG8gQ1N0cmluZyBhbmQgdXNlIGl0IGluc3RlYWQgaW4gYm90aCwgYmVpbmcgbW9y
ZSBzdGFuZGFyZAogI2lmIFBMQVRGT1JNKFdJTl9PUykKLSAgICByZXR1cm4gZ19zdHJkdXAoc3Ry
aW5nLnV0ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBzdHJpbmcudXRmOCgpOwogI2Vsc2UKLSAg
ICByZXR1cm4gZ191cmlfdW5lc2NhcGVfc3RyaW5nKHN0cmluZy51dGY4KCkuZGF0YSgpLCAwKTsK
KyAgICBjaGFyKiBmaWxlbmFtZSA9IGdfdXJpX3VuZXNjYXBlX3N0cmluZyhzdHJpbmcudXRmOCgp
LmRhdGEoKSwgMCk7CisgICAgQ1N0cmluZyBjZmlsZW5hbWUoZmlsZW5hbWUpOworICAgIGdfZnJl
ZShmaWxlbmFtZSk7CisgICAgcmV0dXJuIGNmaWxlbmFtZTsKICNlbmRpZgogfQogCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlQ2hvb3Nlckd0ay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvRmlsZUNob29zZXJHdGsuY3BwCShyZXZpc2lvbiA2MDA1OCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVDaG9vc2VyR3RrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTcsOSArNTcsOCBAQCBTdHJpbmcgRmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgoY29u
CiAgICAgU3RyaW5nIHN0cmluZyA9IGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCk7CiAK
ICAgICBpZiAobV9maWxlbmFtZXMuc2l6ZSgpID09IDEpIHsKLSAgICAgICAgZ2NoYXIqIHN5c3Rl
bUZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKG1fZmlsZW5hbWVzWzBdKTsKLSAgICAgICAg
Z2NoYXIqIHN5c3RlbUJhc2VuYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZShzeXN0ZW1GaWxlbmFt
ZSk7Ci0gICAgICAgIGdfZnJlZShzeXN0ZW1GaWxlbmFtZSk7CisgICAgICAgIENTdHJpbmcgc3lz
dGVtRmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcobV9maWxlbmFtZXNbMF0pOworICAgICAg
ICBnY2hhciogc3lzdGVtQmFzZW5hbWUgPSBnX3BhdGhfZ2V0X2Jhc2VuYW1lKHN5c3RlbUZpbGVu
YW1lLmRhdGEoKSk7CiAgICAgICAgIHN0cmluZ0J5QWRvcHRpbmdGaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oc3lzdGVtQmFzZW5hbWUsIHN0cmluZyk7CiAgICAgfSBlbHNlIGlmIChtX2ZpbGVuYW1l
cy5zaXplKCkgPiAxKQogICAgICAgICByZXR1cm4gU3RyaW5nVHJ1bmNhdG9yOjpyaWdodFRydW5j
YXRlKG11bHRpcGxlRmlsZVVwbG9hZFRleHQobV9maWxlbmFtZXMuc2l6ZSgpKSwgd2lkdGgsIGZv
bnQsIGZhbHNlKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCShy
ZXZpc2lvbiA2MDA1OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMiArNTIsMTUgQEAgU3RyaW5nIGZpbGVuYW1lVG9TdHJp
bmcoY29uc3QgY2hhciogZmlsZQogI2VuZGlmCiB9CiAKLWNoYXIqIGZpbGVuYW1lRnJvbVN0cmlu
Zyhjb25zdCBTdHJpbmcmIHN0cmluZykKK0NTdHJpbmcgZmlsZW5hbWVGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQogewogI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIGdfc3RyZHVw
KHN0cmluZy51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gc3RyaW5nLnV0ZjgoKTsKICNlbHNl
Ci0gICAgcmV0dXJuIGdfdXJpX3VuZXNjYXBlX3N0cmluZyhzdHJpbmcudXRmOCgpLmRhdGEoKSwg
MCk7CisgICAgY2hhciogZmlsZW5hbWUgPSBnX3VyaV91bmVzY2FwZV9zdHJpbmcoc3RyaW5nLnV0
ZjgoKS5kYXRhKCksIDApOworICAgIENTdHJpbmcgY2ZpbGVuYW1lKGZpbGVuYW1lKTsKKyAgICBn
X2ZyZWUoZmlsZW5hbWUpOworICAgIHJldHVybiBjZmlsZW5hbWU7CiAjZW5kaWYKIH0KIApAQCAt
NjcsOSArNzAsOCBAQCBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYgCiAj
aWYgT1MoV0lORE9XUykKICAgICByZXR1cm4gc3RyaW5nOwogI2Vsc2UKLSAgICBnY2hhciogZmls
ZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcoc3RyaW5nKTsKLSAgICBnY2hhciogZGlzcGxheSA9
IGdfZmlsZW5hbWVfdG9fdXRmOChmaWxlbmFtZSwgMCwgMCwgMCwgMCk7Ci0gICAgZ19mcmVlKGZp
bGVuYW1lKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHN0cmlu
Zyk7CisgICAgZ2NoYXIqIGRpc3BsYXkgPSBnX2ZpbGVuYW1lX3RvX3V0ZjgoZmlsZW5hbWUuZGF0
YSgpLCAwLCAwLCAwLCAwKTsKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAgIHJldHVybiBzdHJp
bmc7CiAKQEAgLTgzLDEyICs4NSwxMCBAQCBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0
IFN0cmluZyYgCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIGJv
b2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgZ2NoYXIqIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3Ry
aW5nKHBhdGgpOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0
aCk7CiAKLSAgICBpZiAoZmlsZW5hbWUpIHsKLSAgICAgICAgcmVzdWx0ID0gZ19maWxlX3Rlc3Qo
ZmlsZW5hbWUsIEdfRklMRV9URVNUX0VYSVNUUyk7Ci0gICAgICAgIGdfZnJlZShmaWxlbmFtZSk7
Ci0gICAgfQorICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCisgICAgICAgIHJlc3VsdCA9IGdf
ZmlsZV90ZXN0KGZpbGVuYW1lLmRhdGEoKSwgR19GSUxFX1RFU1RfRVhJU1RTKTsKIAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CkBAIC05NiwxMiArOTYsMTAgQEAgYm9vbCBmaWxlRXhpc3RzKGNvbnN0
IFN0cmluZyYgcGF0aCkKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBnY2hhciogZmlsZW5hbWUgPSBmaWxlbmFtZUZy
b21TdHJpbmcocGF0aCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmlu
ZyhwYXRoKTsKIAotICAgIGlmIChmaWxlbmFtZSkgewotICAgICAgICByZXN1bHQgPSBnX3JlbW92
ZShmaWxlbmFtZSkgPT0gMDsKLSAgICAgICAgZ19mcmVlKGZpbGVuYW1lKTsKLSAgICB9CisgICAg
aWYgKCFmaWxlbmFtZS5pc051bGwoKSkKKyAgICAgICAgcmVzdWx0ID0gZ19yZW1vdmUoZmlsZW5h
bWUuZGF0YSgpKSA9PSAwOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTEwOSwyNSArMTA3
LDIyIEBAIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiBib29sIGRlbGV0ZUVt
cHR5RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGdjaGFyKiBmaWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKKyAg
ICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOwogCi0gICAgaWYg
KGZpbGVuYW1lKSB7Ci0gICAgICAgIHJlc3VsdCA9IGdfcm1kaXIoZmlsZW5hbWUpID09IDA7Ci0g
ICAgICAgIGdfZnJlZShmaWxlbmFtZSk7Ci0gICAgfQorICAgIGlmICghZmlsZW5hbWUuaXNOdWxs
KCkpCisgICAgICAgIHJlc3VsdCA9IGdfcm1kaXIoZmlsZW5hbWUuZGF0YSgpKSA9PSAwOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBh
dGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKIHsKLSAgICBnY2hhciogZmlsZW5hbWUgPSBmaWxl
bmFtZUZyb21TdHJpbmcocGF0aCk7Ci0gICAgaWYgKCFmaWxlbmFtZSkKKyAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBhdGgpOworICAgIGlmIChmaWxlbmFtZS5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgc3RydWN0IHN0YXQgc3RhdFJlc3Vs
dDsKLSAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZSwgJnN0YXRSZXN1bHQpOwotICAg
IGdfZnJlZShmaWxlbmFtZSk7CisgICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0
YSgpLCAmc3RhdFJlc3VsdCk7CiAgICAgaWYgKHJlc3VsdCAhPSAwKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTEzNywxMyArMTMyLDEyIEBAIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgU3Ry
aW5nJiBwYXRoLCBsb24KIAogYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJp
bmcmIHBhdGgsIHRpbWVfdCYgbW9kaWZpZWRUaW1lKQogewotICAgIGdjaGFyKiBmaWxlbmFtZSA9
IGZpbGVuYW1lRnJvbVN0cmluZyhwYXRoKTsKLSAgICBpZiAoIWZpbGVuYW1lKQorICAgIENTdHJp
bmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7CisgICAgaWYgKGZpbGVuYW1l
LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdHJ1Y3Qgc3RhdCBzdGF0
UmVzdWx0OwotICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVuYW1lLCAmc3RhdFJlc3VsdCk7
Ci0gICAgZ19mcmVlKGZpbGVuYW1lKTsKKyAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFt
ZS5kYXRhKCksICZzdGF0UmVzdWx0KTsKICAgICBpZiAocmVzdWx0ICE9IDApCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApAQCAtMTYyLDEyICsxNTYsMTEgQEAgU3RyaW5nIHBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudChjb25zdCBTdAogCiBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJp
bmcmIHBhdGgpCiB7Ci0gICAgZ2NoYXIqIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKHBh
dGgpOwotICAgIGlmICghZmlsZW5hbWUpCisgICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVuYW1l
RnJvbVN0cmluZyhwYXRoKTsKKyAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIGdpbnQgcmVzdWx0ID0gZ19ta2Rpcl93aXRoX3BhcmVudHMoZmls
ZW5hbWUsIFNfSVJXWFUpOwotICAgIGdfZnJlZShmaWxlbmFtZSk7CisgICAgZ2ludCByZXN1bHQg
PSBnX21rZGlyX3dpdGhfcGFyZW50cyhmaWxlbmFtZS5kYXRhKCksIFNfSVJXWFUpOwogCiAgICAg
cmV0dXJuIHJlc3VsdCA9PSAwOwogfQpAQCAtMTgyLDExICsxNzUsMTAgQEAgU3RyaW5nIHBhdGhH
ZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdAogICAgIGlmIChwYXRoTmFtZS5pc0VtcHR5KCkp
CiAgICAgICAgIHJldHVybiBwYXRoTmFtZTsKIAotICAgIGNoYXIqIHRtcEZpbGVuYW1lID0gZmls
ZW5hbWVGcm9tU3RyaW5nKHBhdGhOYW1lKTsKLSAgICBjaGFyKiBiYXNlTmFtZSA9IGdfcGF0aF9n
ZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUpOworICAgIENTdHJpbmcgdG1wRmlsZW5hbWUgPSBmaWxl
bmFtZUZyb21TdHJpbmcocGF0aE5hbWUpOworICAgIGNoYXIqIGJhc2VOYW1lID0gZ19wYXRoX2dl
dF9iYXNlbmFtZSh0bXBGaWxlbmFtZS5kYXRhKCkpOwogICAgIFN0cmluZyBmaWxlTmFtZSA9IFN0
cmluZzo6ZnJvbVVURjgoYmFzZU5hbWUpOwogICAgIGdfZnJlZShiYXNlTmFtZSk7Ci0gICAgZ19m
cmVlKHRtcEZpbGVuYW1lKTsKIAogICAgIHJldHVybiBmaWxlTmFtZTsKIH0KQEAgLTE5NCw3ICsx
ODYsNyBAQCBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0CiBTdHJpbmcg
ZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgLyogTm8gbnVsbCBjaGVj
a2luZyBuZWVkZWQgKi8KLSAgICBHT3duUHRyPGNoYXI+IHRtcEZpbGVuYW1lKGZpbGVuYW1lRnJv
bVN0cmluZyhwYXRoKSk7CisgICAgR093blB0cjxjaGFyPiB0bXBGaWxlbmFtZShjb25zdF9jYXN0
PGNoYXIqPihmaWxlbmFtZUZyb21TdHJpbmcocGF0aCkuZGF0YSgpKSk7CiAgICAgR093blB0cjxj
aGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFtZSh0bXBGaWxlbmFtZS5nZXQoKSkpOwogICAg
IHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpcm5hbWUuZ2V0KCkpOwogfQpAQCAtMjAzLDggKzE5
NSw4IEBAIFZlY3RvcjxTdHJpbmc+IGxpc3REaXJlY3RvcnkoY29uc3QgU3RyaW4KIHsKICAgICBW
ZWN0b3I8U3RyaW5nPiBlbnRyaWVzOwogCi0gICAgZ2NoYXIqIGZpbGVuYW1lID0gZmlsZW5hbWVG
cm9tU3RyaW5nKHBhdGgpOwotICAgIEdEaXIqIGRpciA9IGdfZGlyX29wZW4oZmlsZW5hbWUsIDAs
IDApOworICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlbmFtZUZyb21TdHJpbmcocGF0aCk7Cisg
ICAgR0RpciogZGlyID0gZ19kaXJfb3BlbihmaWxlbmFtZS5kYXRhKCksIDAsIDApOwogICAgIGlm
ICghZGlyKQogICAgICAgICByZXR1cm4gZW50cmllczsKIApAQCAtMjEzLDEyICsyMDUsMTEgQEAg
VmVjdG9yPFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbgogICAgICAgICBpZiAoIWdf
cGF0dGVybl9tYXRjaF9zdHJpbmcocHNwZWMsIG5hbWUpKQogICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgZ2NoYXIqIGVudHJ5ID0gZ19idWlsZF9maWxlbmFtZShmaWxlbmFtZSwgbmFt
ZSwgTlVMTCk7CisgICAgICAgIGdjaGFyKiBlbnRyeSA9IGdfYnVpbGRfZmlsZW5hbWUoZmlsZW5h
bWUuZGF0YSgpLCBuYW1lLCBOVUxMKTsKICAgICAgICAgZW50cmllcy5hcHBlbmQoZmlsZW5hbWVU
b1N0cmluZyhlbnRyeSkpOwogICAgICAgICBnX2ZyZWUoZW50cnkpOwogICAgIH0KICAgICBnX2Rp
cl9jbG9zZShkaXIpOwotICAgIGdfZnJlZShmaWxlbmFtZSk7CiAKICAgICByZXR1cm4gZW50cmll
czsKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJlZEJ1ZmZlckd0ay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkQnVmZmVyR3RrLmNwcAkocmV2
aXNpb24gNjAwNTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOSArMzIsMTcgQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IFNoYXJlZEJ1ZmZlcjo6YwogICAgIGlmIChmaWxlUGF0aC5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgZ2NoYXIqIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKGZp
bGVQYXRoKTsKKyAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKGZpbGVQ
YXRoKTsKICAgICBnY2hhciogY29udGVudHM7CiAgICAgZ3NpemUgc2l6ZTsKICAgICBHRXJyb3Iq
IGVycm9yID0gMDsKLSAgICBpZiAoIWdfZmlsZV9nZXRfY29udGVudHMoZmlsZW5hbWUsICZjb250
ZW50cywgJnNpemUsICZlcnJvcikpIHsKKyAgICBpZiAoIWdfZmlsZV9nZXRfY29udGVudHMoZmls
ZW5hbWUuZGF0YSgpLCAmY29udGVudHMsICZzaXplLCAmZXJyb3IpKSB7CiAgICAgICAgIExPR19F
UlJPUigiRmFpbGVkIHRvIGZ1bGx5IHJlYWQgY29udGVudHMgb2YgZmlsZSAlcyAtICVzIiwgZmls
ZW5hbWVGb3JEaXNwbGF5KGZpbGVQYXRoKS51dGY4KCkuZGF0YSgpLCBlcnJvci0+bWVzc2FnZSk7
CiAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7Ci0gICAgICAgIGdfZnJlZShmaWxlbmFtZSk7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHJl
c3VsdCA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnRzLCBzaXplKTsKLSAgICBnX2ZyZWUo
ZmlsZW5hbWUpOwogICAgIGdfZnJlZShjb250ZW50cyk7CiAKICAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2UoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFu
ZGxlU291cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAkocmV2aXNpb24gNjAwNTgpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MzMsMTAgKzUzMyw4IEBAIHN0YXRpYyBib29sIHN0YXJ0SHR0cChSZXNvdXJjZUhhbmRsZSog
aGEKICAgICAgICAgICAgICAgICAgICAgICogbGlic291cCdzIHNpbXBsZS1odHRwZCB0ZXN0CiAg
ICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICBHRXJyb3IqIGVycm9y
ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgZ2NoYXIqIGZpbGVOYW1lID0gZmlsZW5hbWVGcm9t
U3RyaW5nKGVsZW1lbnQubV9maWxlbmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIEdNYXBwZWRG
aWxlKiBmaWxlTWFwcGluZyA9IGdfbWFwcGVkX2ZpbGVfbmV3KGZpbGVOYW1lLCBmYWxzZSwgJmVy
cm9yKTsKLQotICAgICAgICAgICAgICAgICAgICBnX2ZyZWUoZmlsZU5hbWUpOworICAgICAgICAg
ICAgICAgICAgICBDU3RyaW5nIGZpbGVOYW1lID0gZmlsZW5hbWVGcm9tU3RyaW5nKGVsZW1lbnQu
bV9maWxlbmFtZSk7CisgICAgICAgICAgICAgICAgICAgIEdNYXBwZWRGaWxlKiBmaWxlTWFwcGlu
ZyA9IGdfbWFwcGVkX2ZpbGVfbmV3KGZpbGVOYW1lLmRhdGEoKSwgZmFsc2UsICZlcnJvcik7CiAK
ICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBnX2Vycm9yX2ZyZWUoZXJyb3IpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9TaGFy
ZWRCdWZmZXJQT1NJWC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9wb3NpeC9T
aGFyZWRCdWZmZXJQT1NJWC5jcHAJKHJldmlzaW9uIDYwMDU4KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9wb3NpeC9TaGFyZWRCdWZmZXJQT1NJWC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQw
LDggQEAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IFNoYXJlZEJ1ZmZlcjo6YwogICAgIGlmIChm
aWxlUGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgY2hhciogZmlsZW5h
bWUgPSBmaWxlbmFtZUZyb21TdHJpbmcoZmlsZVBhdGgpOwotICAgIGludCBmZCA9IG9wZW4oZmls
ZW5hbWUsIE9fUkRPTkxZKTsKLSAgICBmYXN0RnJlZShmaWxlbmFtZSk7CisgICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVuYW1lRnJvbVN0cmluZyhmaWxlUGF0aCk7CisgICAgaW50IGZkID0gb3Bl
bihmaWxlbmFtZS5kYXRhKCksIE9fUkRPTkxZKTsKICAgICBpZiAoZmQgPT0gLTEpCiAgICAgICAg
IHJldHVybiAwOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>