<?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>115068</bug_id>
          
          <creation_ts>2013-04-23 17:25:30 -0700</creation_ts>
          <short_desc>Remove TextFieldDecoration feature</short_desc>
          <delta_ts>2013-04-25 13:52: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>115109</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>880193</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-04-23 17:25:30 -0700</bug_when>
    <thetext>Remove TextFieldDecoration feature</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880194</commentid>
    <comment_count>1</comment_count>
      <attachid>199341</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-04-23 17:27:09 -0700</bug_when>
    <thetext>Created attachment 199341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880196</commentid>
    <comment_count>2</comment_count>
      <attachid>199341</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-23 17:37:06 -0700</bug_when>
    <thetext>Comment on attachment 199341
Patch

Attachment 199341 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/114434</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880198</commentid>
    <comment_count>3</comment_count>
      <attachid>199341</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-23 17:40:18 -0700</bug_when>
    <thetext>Comment on attachment 199341
Patch

Attachment 199341 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/40448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880204</commentid>
    <comment_count>4</comment_count>
      <attachid>199341</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-23 17:45:01 -0700</bug_when>
    <thetext>Comment on attachment 199341
Patch

Attachment 199341 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/24166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880208</commentid>
    <comment_count>5</comment_count>
      <attachid>199342</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-04-23 17:50:56 -0700</bug_when>
    <thetext>Created attachment 199342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880221</commentid>
    <comment_count>6</comment_count>
      <attachid>199342</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-23 18:17:51 -0700</bug_when>
    <thetext>Comment on attachment 199342
Patch

Thanks! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880290</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 18:57:16 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 199342:

platform/mac/editing/deleting/deletionUI-single-instance.html bug 114181 (author: rniwa@webkit.org)
transitions/color-transition-rounding.html bug 114182 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-svg-length.html bug 114183 (author: peter@chromium.org)
transitions/interrupt-zero-duration.html bug 114184 (authors: cmarrin@apple.com, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/multiple-background-transitions.html bug 114185 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-color.html bug 114186 (author: peter@chromium.org)
transitions/multiple-shadow-transitions.html bug 114187 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-transitions.html bug 114188 (author: simon.fraser@apple.com)
transitions/color-transition-all.html bug 114189 (authors: ossy@webkit.org and simon.fraser@apple.com)
transitions/negative-delay.html bug 114190 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-shadow.html bug 114191 (author: peter@chromium.org)
transitions/min-max-width-height-transitions.html bug 114192 (author: simon.fraser@apple.com)
transitions/cancel-transition.html bug 114193 (authors: ojan@chromium.org, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/border-radius-transition.html bug 114194 (author: simon.fraser@apple.com)
transitions/flex-transitions.html bug 114195 (author: tony@chromium.org)
transitions/mixed-type.html bug 114196 (author: mikelawther@chromium.org)
transitions/multiple-mask-transitions.html bug 114197 (author: simon.fraser@apple.com)
transitions/color-transition-premultiplied.html bug 114198 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-styles.html bug 114199 (author: simon.fraser@apple.com)
transitions/mask-transitions.html bug 114200 (authors: ojan@chromium.org, oliver@apple.com, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-length.html bug 114201 (author: peter@chromium.org)
transitions/multiple-background-size-transitions.html bug 114202 (authors: mitz@webkit.org and simon.fraser@apple.com)
transitions/clip-transition.html bug 114203 (authors: dglazkov@chromium.org and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-transform.html bug 114204 (author: peter@chromium.org)
transitions/shorthand-border-transitions.html bug 114205 (authors: ojan@chromium.org and simon.fraser@apple.com)
transitions/interrupted-accelerated-transition.html bug 56242 (authors: rniwa@webkit.org, simon.fraser@apple.com, and tonyg@chromium.org)
transitions/background-transitions.html bug 114206 (author: simon.fraser@apple.com)
http/tests/security/cookies/third-party-cookie-blocking-user-action.html bug 114511 (authors: ap@webkit.org, jochen@chromium.org, and rniwa@webkit.org)
http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html bug 114208 (authors: abarth@webkit.org and rniwa@webkit.org)
fast/loader/javascript-url-in-object.html bug 114210 (authors: rniwa@webkit.org and sam@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880291</commentid>
    <comment_count>8</comment_count>
      <attachid>199342</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 18:58:12 -0700</bug_when>
    <thetext>Comment on attachment 199342
Patch

Clearing flags on attachment: 199342

Committed r149015: &lt;http://trac.webkit.org/changeset/149015&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880292</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 18:58:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880565</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-24 08:23:21 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 115109</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199341</attachid>
            <date>2013-04-23 17:27:09 -0700</date>
            <delta_ts>2013-04-23 17:50:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115068-20130424092632.patch</filename>
            <type>text/plain</type>
            <size>17224</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZlZGJkMjVjOGM0ZjJl
MDMzMjMzZjc4YTFiOTg5Njc4N2ZkMzc5Zi4uNGExNzRiZTZhOGVkN2MzY2FjMzU0NmJmMzE4Mzc2
MDFjMjc4N2MyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA0LTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgVGV4dEZpZWxk
RGVjb3JhdGlvbiBmZWF0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTUwNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPbmx5IENocm9taXVtIHBvcnQgdXNlZCB0aGlzIGZlYXR1cmUuCisKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOiBSZW1vdmUgaXNUZXh0RmllbGREZWNvcmF0aW9uLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVz
dHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICBVcGRhdGUgYSBjb21tZW50LgorICAgICAgICAq
IGh0bWwvc2hhZG93L1RleHRGaWVsZERlY29yYXRpb25FbGVtZW50LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBodG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5oOiBSZW1vdmVk
LgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChDaHJvbWVDbGllbnQp
OiBSZW1vdmUgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25zVG8gYW5kCisgICAgICAgIGFkZFRl
eHRGaWVsZERlY29yYXRpb25zVG8KKwogMjAxMy0wNC0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5j
YXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBmb3JjZWQgc3VidGl0bGUgdHJhY2sg
c2hvdWxkIGNoYW5nZSB3aGVuIGF1ZGlvIHRyYWNrIGxhbmd1YWdlIGNoYW5nZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5oCmluZGV4IGY4NzJjMzY0MGUxZWQzOWFjY2IwZWJhZTM3MmE2Njg5MmUzOWEyOWMuLmE5
ZGExNGU4OTgzNWNhYjZmMDc3YWZiOTgxYTE2MWFmNzhhMjIzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aApAQCAtNTUyLDcgKzU1Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNJblJhbmdl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNPdXRPZlJhbmdl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNGcmFtZUVsZW1l
bnRCYXNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0
RmllbGREZWNvcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDA5NjBmYzQ0M2I4ODI5MTAxYWYzOWFiNzdk
NjVhMDU3MmVhMWZlNDMuLjYyODMxNjcxNTNlZjhmNmYwN2Q2MGEwOTVkNTNlOTc2MDc0MjgwYjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTQ4OCw5ICs0ODgsOCBAQCB2b2lkIElu
cHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQogCiAgICAgcm9vdC0+cmVtb3ZlQ2hpbGRy
ZW4oKTsKIAotICAgIC8vIEl0J3Mgb2sgdG8gY2xlYXIgY29udGVudHMgb2YgYWxsIG90aGVyIFNo
YWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0IGhhdmUKLSAgICAvLyBiZWVuIGNyZWF0ZWQgYnkg
VGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQsIGFuZCB3ZSBkb24ndCBhbGxvdyBhZGRpbmcKLSAg
ICAvLyBBdXRob3JTaGFkb3dSb290IHRvIEhUTUxJbnB1dEVsZW1lbnQuCisgICAgLy8gSXQncyBv
ayB0byBjbGVhciBjb250ZW50cyBvZiBhbGwgb3RoZXIgU2hhZG93Um9vdHMgYmVjYXVzZSB3ZSBk
b24ndCBhbGxvdworICAgIC8vIGFkZGluZyBBdXRob3JTaGFkb3dSb290IHRvIEhUTUxJbnB1dEVs
ZW1lbnQuCiAgICAgd2hpbGUgKChyb290ID0gcm9vdC0+eW91bmdlclNoYWRvd1Jvb3QoKSkpIHsK
ICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICAgICAgcm9vdC0+cmVtb3ZlQ2hpbGRyZW4oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRGaWVsZERlY29yYXRp
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRGaWVsZERlY29y
YXRpb25FbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWZiNTAxZjA1
YjQxOTQ4ODM1M2Q3NjE5MzM4Y2E5NDY0NWRjNGMyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Rmll
bGREZWNvcmF0aW9uRWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNDAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5o
IgotCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgotI2luY2x1ZGUgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKLSNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCi0jaW5jbHVkZSAiRXZlbnQuaCIK
LSNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1l
bnQuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQot
Ly8gVGV4dEZpZWxkRGVjb3JhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGV4dEZpZWxkRGVjb3JhdG9yOjp+VGV4
dEZpZWxkRGVjb3JhdG9yKCkKLXsKLX0KLQotLy8gVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotCi0vLyBGSVhNRTogVGhpcyBjbGFzcyBpcyBvbmx5IHVzZWQgaW4gQ2hyb21pdW0s
IGFuZCBoYXMgbm8gbGF5b3V0IHRlc3RzISEKLQotVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6
OlRleHRGaWVsZERlY29yYXRpb25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgVGV4dEZpZWxk
RGVjb3JhdG9yKiBkZWNvcmF0b3IpCi0gICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRp
dlRhZywgZG9jdW1lbnQpCi0gICAgLCBtX3RleHRGaWVsZERlY29yYXRvcihkZWNvcmF0b3IpCi0g
ICAgLCBtX2lzSW5Ib3ZlclN0YXRlKGZhbHNlKQotewotICAgIEFTU0VSVChkZWNvcmF0b3IpOwot
ICAgIHNldEhhc0N1c3RvbVN0eWxlQ2FsbGJhY2tzKCk7Ci19Ci0KLVBhc3NSZWZQdHI8VGV4dEZp
ZWxkRGVjb3JhdGlvbkVsZW1lbnQ+IFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBUZXh0RmllbGREZWNvcmF0b3IqIGRlY29yYXRvcikKLXsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50KGRvY3VtZW50
LCBkZWNvcmF0b3IpKTsKLX0KLQotVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQqIFRleHRGaWVs
ZERlY29yYXRpb25FbGVtZW50Ojpmcm9tU2hhZG93Um9vdChTaGFkb3dSb290KiBzaGFkb3dSb290
KQotewotICAgIGlmICghc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpCi0gICAgICAgIHx8ICFzaGFk
b3dSb290LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpCi0gICAgICAgIHx8ICFzaGFkb3dSb290
LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpLT5pc0VsZW1lbnROb2RlKCkKLSAgICAgICAgfHwg
IXRvRWxlbWVudChzaGFkb3dSb290LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpKS0+aXNUZXh0
RmllbGREZWNvcmF0aW9uKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b1RleHRG
aWVsZERlY29yYXRpb25FbGVtZW50KHNoYWRvd1Jvb3QtPmZpcnN0Q2hpbGQoKS0+bGFzdENoaWxk
KCkpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2V0RGVjb3JhdGlvblJvb3RBbmREZWNvcmF0
ZWRSb290KEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0LCBTaGFkb3dSb290KiYgZGVjb3JhdGlvblJv
b3QsIFNoYWRvd1Jvb3QqJiBkZWNvcmF0ZWRSb290KQotewotICAgIFNoYWRvd1Jvb3QqIGV4aXN0
aW5nUm9vdCA9IGlucHV0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKLSAgICBTaGFkb3dSb290KiBu
ZXdSb290ID0gMDsKLSAgICB3aGlsZSAoZXhpc3RpbmdSb290LT5jaGlsZE5vZGVDb3VudCgpID09
IDEgJiYgZXhpc3RpbmdSb290LT5maXJzdENoaWxkKCktPmhhc1RhZ05hbWUoc2hhZG93VGFnKSkg
ewotICAgICAgICBuZXdSb290ID0gZXhpc3RpbmdSb290OwotICAgICAgICBleGlzdGluZ1Jvb3Qg
PSBleGlzdGluZ1Jvb3QtPm9sZGVyU2hhZG93Um9vdCgpOwotICAgICAgICBBU1NFUlQoZXhpc3Rp
bmdSb290KTsKLSAgICB9Ci0gICAgaWYgKG5ld1Jvb3QpCi0gICAgICAgIG5ld1Jvb3QtPnJlbW92
ZUNoaWxkKG5ld1Jvb3QtPmZpcnN0Q2hpbGQoKSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGludGVyYWN0cyByZWFsbHkgYmFkbHkgd2l0aCBhdXRob3Igc2hhZG93IHJvb3Rz
IGJlY2F1c2Ugbm93Ci0gICAgICAgIC8vIHdlIGNhbiBpbnRlcmxlYXZlIHVzZXIgYWdlbnQgYW5k
IGF1dGhvciBzaGFkb3cgcm9vdHMgb24gdGhlIGVsZW1lbnQgbWVhbmluZwotICAgICAgICAvLyBp
bnB1dC5zaGFkb3dSb290IG1heSBiZSBpbmFjY2Vzc2libGUgaWYgdGhlIGJyb3dzZXIgaGFzIGRl
Y2lkZWQgdG8gZGVjb3JhdGUKLSAgICAgICAgLy8gdGhlIGlucHV0LgotICAgICAgICBuZXdSb290
ID0gaW5wdXQtPmVuc3VyZVNoYWRvdygpLT5hZGRTaGFkb3dSb290KGlucHV0LCBTaGFkb3dSb290
OjpVc2VyQWdlbnRTaGFkb3dSb290KTsKLSAgICB9Ci0gICAgZGVjb3JhdGlvblJvb3QgPSBuZXdS
b290OwotICAgIGRlY29yYXRlZFJvb3QgPSBleGlzdGluZ1Jvb3Q7Ci19Ci0KLXZvaWQgVGV4dEZp
ZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmRlY29yYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0LCBi
b29sIHZpc2libGUpCi17Ci0gICAgQVNTRVJUKGlucHV0KTsKLSAgICBTaGFkb3dSb290KiBleGlz
dGluZ1Jvb3Q7Ci0gICAgU2hhZG93Um9vdCogZGVjb3JhdGlvblJvb3Q7Ci0gICAgZ2V0RGVjb3Jh
dGlvblJvb3RBbmREZWNvcmF0ZWRSb290KGlucHV0LCBkZWNvcmF0aW9uUm9vdCwgZXhpc3RpbmdS
b290KTsKLSAgICBBU1NFUlQoZGVjb3JhdGlvblJvb3QpOwotICAgIEFTU0VSVChleGlzdGluZ1Jv
b3QpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gYm94ID0gSFRNTERpdkVsZW1lbnQ6OmNy
ZWF0ZShpbnB1dC0+ZG9jdW1lbnQoKSk7Ci0gICAgZGVjb3JhdGlvblJvb3QtPmFwcGVuZENoaWxk
KGJveCk7Ci0gICAgYm94LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxh
eSwgQ1NTVmFsdWVXZWJraXRGbGV4KTsKLSAgICBib3gtPnNldElubGluZVN0eWxlUHJvcGVydHko
Q1NTUHJvcGVydHlXZWJraXRBbGlnbkl0ZW1zLCBDU1NWYWx1ZUNlbnRlcik7Ci0gICAgQVNTRVJU
KGV4aXN0aW5nUm9vdC0+Y2hpbGROb2RlQ291bnQoKSA9PSAxKTsKLSAgICB0b0hUTUxFbGVtZW50
KGV4aXN0aW5nUm9vdC0+Zmlyc3RDaGlsZCgpKS0+c2V0SW5saW5lU3R5bGVQcm9wZXJ0eShDU1NQ
cm9wZXJ0eVdlYmtpdEZsZXhHcm93LCAxLjAsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
KTsKLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBib3gtPmFwcGVuZENoaWxkKEhUTUxTaGFk
b3dFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpzaGFkb3dUYWcsIGlucHV0LT5kb2N1bWVudCgp
KSk7Ci0jZW5kaWYKLSAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxh
eSwgdmlzaWJsZSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUpOwotICAgIGJveC0+YXBw
ZW5kQ2hpbGQodGhpcyk7Ci19Ci0KLWlubGluZSBIVE1MSW5wdXRFbGVtZW50KiBUZXh0RmllbGRE
ZWNvcmF0aW9uRWxlbWVudDo6aG9zdElucHV0KCkKLXsKLSAgICAvLyBUZXh0RmllbGREZWNvcmF0
aW9uRWxlbWVudCBpcyBjcmVhdGVkIG9ubHkgYnkgQysrIGNvZGUsIGFuZCBpdCBpcyBhbHdheXMK
LSAgICAvLyBpbiA8aW5wdXQ+IHNoYWRvdy4KLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBM
SUNBVElPTighc2hhZG93SG9zdCgpIHx8IHNoYWRvd0hvc3QoKS0+aGFzVGFnTmFtZShpbnB1dFRh
ZykpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc2hhZG93SG9z
dCgpKTsKLX0KLQotYm9vbCBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudDo6aXNUZXh0RmllbGRE
ZWNvcmF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBUZXh0Rmll
bGREZWNvcmF0aW9uRWxlbWVudDo6dXBkYXRlSW1hZ2UoKQotewotICAgIGlmICghcmVuZGVyZXIo
KSB8fCAhcmVuZGVyZXIoKS0+aXNJbWFnZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgUmVuZGVy
SW1hZ2VSZXNvdXJjZSogcmVzb3VyY2UgPSB0b1JlbmRlckltYWdlKHJlbmRlcmVyKCkpLT5pbWFn
ZVJlc291cmNlKCk7Ci0gICAgQ2FjaGVkSW1hZ2UqIGltYWdlOwotICAgIGlmIChob3N0SW5wdXQo
KS0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkpCi0gICAgICAgIGltYWdlID0gbV90ZXh0RmllbGRE
ZWNvcmF0b3ItPmltYWdlRm9yRGlzYWJsZWRTdGF0ZSgpOwotICAgIGVsc2UgaWYgKGhvc3RJbnB1
dCgpLT5pc1JlYWRPbmx5KCkpCi0gICAgICAgIGltYWdlID0gbV90ZXh0RmllbGREZWNvcmF0b3It
PmltYWdlRm9yUmVhZG9ubHlTdGF0ZSgpOwotICAgIGVsc2UgaWYgKG1faXNJbkhvdmVyU3RhdGUp
Ci0gICAgICAgIGltYWdlID0gbV90ZXh0RmllbGREZWNvcmF0b3ItPmltYWdlRm9ySG92ZXJTdGF0
ZSgpOwotICAgIGVsc2UKLSAgICAgICAgaW1hZ2UgPSBtX3RleHRGaWVsZERlY29yYXRvci0+aW1h
Z2VGb3JOb3JtYWxTdGF0ZSgpOwotICAgIEFTU0VSVChpbWFnZSk7Ci0gICAgcmVzb3VyY2UtPnNl
dENhY2hlZEltYWdlKGltYWdlKTsKLX0KLQotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gVGV4dEZp
ZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQotewotICAgIFJl
ZlB0cjxSZW5kZXJTdHlsZT4gb3JpZ2luYWxTdHlsZSA9IGRvY3VtZW50KCktPnN0eWxlUmVzb2x2
ZXIoKS0+c3R5bGVGb3JFbGVtZW50KHRoaXMpOwotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5
bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUob3JpZ2luYWxTdHlsZS5nZXQoKSk7Ci0gICAgUmVuZGVy
U3R5bGUqIGlucHV0U3R5bGUgPSBob3N0SW5wdXQoKS0+cmVuZGVyU3R5bGUoKTsKLSAgICBBU1NF
UlQoaW5wdXRTdHlsZSk7Ci0gICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChpbnB1dFN0eWxlLT5m
b250U2l6ZSgpLCBGaXhlZCkpOwotICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKGlucHV0U3R5
bGUtPmZvbnRTaXplKCksIEZpeGVkKSk7Ci0gICAgdXBkYXRlSW1hZ2UoKTsKLSAgICByZXR1cm4g
c3R5bGUucmVsZWFzZSgpOwotfQotCi1SZW5kZXJPYmplY3QqIFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikK
LXsKLSAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGFyZW5hKSBSZW5kZXJJbWFnZSh0aGlz
KTsKLSAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFnZVJlc291cmNlOjpjcmVh
dGUoKSk7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotCi12b2lkIFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50OjphdHRhY2goKQotewotICAgIEhUTUxEaXZFbGVtZW50OjphdHRhY2goKTsKLSAgICB1
cGRhdGVJbWFnZSgpOwotfQotCi12b2lkIFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50OjpkZXRh
Y2goKQotewotICAgIG1fdGV4dEZpZWxkRGVjb3JhdG9yLT53aWxsRGV0YWNoKGhvc3RJbnB1dCgp
KTsKLSAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWJvb2wgVGV4dEZpZWxkRGVj
b3JhdGlvbkVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotdm9pZCBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCogZXZlbnQpCi17Ci0gICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGlu
cHV0KGhvc3RJbnB1dCgpKTsKLSAgICBpZiAoIWlucHV0IHx8IGlucHV0LT5pc0Rpc2FibGVkT3JS
ZWFkT25seSgpIHx8ICFldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAgICAgICAgaWYgKCFldmVu
dC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKGV2ZW50KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFJlZlB0
cjxUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudD4gcHJvdGVjdG9yKHRoaXMpOwotICAgIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KSB7Ci0gICAgICAgIG1fdGV4
dEZpZWxkRGVjb3JhdG9yLT5oYW5kbGVDbGljayhpbnB1dC5nZXQoKSk7Ci0gICAgICAgIGV2ZW50
LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgIH0KLQotICAgIGlmIChldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCkgewotICAgICAgICBtX2lzSW5Ib3ZlclN0YXRl
ID0gdHJ1ZTsKLSAgICAgICAgdXBkYXRlSW1hZ2UoKTsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQt
PnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgewotICAgICAgICBtX2lzSW5I
b3ZlclN0YXRlID0gZmFsc2U7Ci0gICAgICAgIHVwZGF0ZUltYWdlKCk7Ci0gICAgfQotCi0gICAg
aWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgSFRNTERpdkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwotfQotCi1ib29sIFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkKLXsKLSAgICBjb25zdCBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOwotICAgIGlmICghaW5wdXQtPmlzRGlz
YWJsZWRPclJlYWRPbmx5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIEhU
TUxEaXZFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCk7Ci19Ci0KLWJvb2wg
VGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRz
KCkKLXsKLSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOwot
ICAgIGlmICghaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VDbGlj
a0V2ZW50cygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTJjYThhZDA5NzcyMzI3YjYxOGZiYTdjODhhZTNj
MTg3NGVmOWIxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFRleHRGaWVsZERlY29yYXRp
b25FbGVtZW50X2gKLSNkZWZpbmUgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnRfaAotCi0jaW5j
bHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
YWNoZWRJbWFnZTsKLWNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7Ci1jbGFzcyBTaGFkb3dSb290Owot
Ci0vLyBBIFRleHRGaWVsZERlY29yYXRvciBvYmplY3QgbXVzdCBsaXZlIHVudGlsIGFsbCBvZiB0
ZXh0IGZpZWxkcyB3aGljaCB3ZXJlCi0vLyBkZWNvcmF0ZWQgYnkgaXQgZGllLgotY2xhc3MgVGV4
dEZpZWxkRGVjb3JhdG9yIHsKLXB1YmxpYzoKLSAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBU
ZXh0RmllbGREZWNvcmF0b3Igd2FudHMgdG8gYWRkIGEKLSAgICAvLyBkZWNvcmF0aW9uIHRvIHRo
ZSBzcGVjaWZpZWQgdGV4dCBmaWVsZC4KLSAgICB2aXJ0dWFsIGJvb2wgd2lsbEFkZERlY29yYXRp
b25UbyhIVE1MSW5wdXRFbGVtZW50KikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCB2aXNpYmxlQnlE
ZWZhdWx0KCkgPSAwOwotCi0gICAgLy8gQSBUZXh0RmllbGREZWNvcmF0b3Igb2JqZWN0IHNob3Vs
ZCBvd24gdGhlIENhY2hlZEltYWdlIG9iamVjdHMuCi0gICAgdmlydHVhbCBDYWNoZWRJbWFnZSog
aW1hZ2VGb3JOb3JtYWxTdGF0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIENhY2hlZEltYWdlKiBpbWFn
ZUZvckRpc2FibGVkU3RhdGUoKSA9IDA7Ci0gICAgdmlydHVhbCBDYWNoZWRJbWFnZSogaW1hZ2VG
b3JSZWFkb25seVN0YXRlKCkgPSAwOwotICAgIHZpcnR1YWwgQ2FjaGVkSW1hZ2UqIGltYWdlRm9y
SG92ZXJTdGF0ZSgpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDbGljayhIVE1MSW5w
dXRFbGVtZW50KikgPSAwOwotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGp1c3QgYmVm
b3JlIGRldGFjaGluZyB0aGUgZGVjb3JhdGlvbi4gSXQgbXVzdCBub3QKLSAgICAvLyBjYWxsIGZ1
bmN0aW9ucyB3aGljaCB1cGRhdGluZyBzdGF0ZSBvZiB0aGUgc3BlY2lmaWVkIEhUTUxJbnB1dEVs
ZW1lbnQKLSAgICAvLyBvYmplY3QuCi0gICAgdmlydHVhbCB2b2lkIHdpbGxEZXRhY2goSFRNTElu
cHV0RWxlbWVudCopID0gMDsKLQotICAgIHZpcnR1YWwgflRleHRGaWVsZERlY29yYXRvcigpOwot
fTsKLQotLy8gQSBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudCBvYmplY3QgbXVzdCBiZSBpbiBh
IHNoYWRvdyB0cmVlIG9mIGFuCi0vLyBIVE1MSW5wdXRFbGVtZW50LgotY2xhc3MgVGV4dEZpZWxk
RGVjb3JhdGlvbkVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewotcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQqLCBUZXh0RmllbGREZWNvcmF0b3IqKTsKLSAgICBzdGF0aWMgVGV4dEZpZWxkRGVjb3Jh
dGlvbkVsZW1lbnQqIGZyb21TaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsKLSAgICBUZXh0RmllbGRE
ZWNvcmF0b3IqIHRleHRGaWVsZERlY29yYXRvcigpIHsgcmV0dXJuIG1fdGV4dEZpZWxkRGVjb3Jh
dG9yOyB9Ci0gICAgdm9pZCBkZWNvcmF0ZShIVE1MSW5wdXRFbGVtZW50KiwgYm9vbCB2aXNpYmxl
KTsKLQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkg
T1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQoRG9j
dW1lbnQqLCBUZXh0RmllbGREZWNvcmF0b3IqKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rmll
bGREZWNvcmF0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9j
dXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQqKSBPVkVSUklERTsKLQotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1
dCgpOwotICAgIHZvaWQgdXBkYXRlSW1hZ2UoKTsKLQotICAgIFRleHRGaWVsZERlY29yYXRvciog
bV90ZXh0RmllbGREZWNvcmF0b3I7Ci0gICAgYm9vbCBtX2lzSW5Ib3ZlclN0YXRlOwotfTsKLQot
aW5saW5lIFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50KiB0b1RleHRGaWVsZERlY29yYXRpb25F
bGVtZW50KE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUKG5vZGUpOwotICAgIEFTU0VSVF9XSVRI
X1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5vZGUtPmlzRWxlbWVudE5vZGUoKSk7Ci0gICAgQVNTRVJU
X1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odG9FbGVtZW50KG5vZGUpLT5pc1RleHRGaWVsZERl
Y29yYXRpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50Kj4obm9kZSk7Ci19Ci0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKaW5kZXggZWIwMjc5NzY5MzVhNzY1MGI0MmIxMjdiMmEyMmY2MjU4MmI2OGQyMy4uNjExY2Nh
OTljZWE3Y2FiMmQ1ZDZlODJlNTU5NzZlNzBmZGY5YmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCkBAIC0zMzksMTQgKzMzOSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVzZXRQYWdlUG9wdXBEcml2ZXIoKSA9IDA7CiAjZW5kaWYKLSAgICAvLyBUaGlzIGZ1bmN0
aW9uIGlzIGNhbGxlZCB3aGVuZXZlciBhIHRleHQgZmllbGQgPGlucHV0PiBpcyBjcmVhdGVkLiBU
aGUKLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgcmV0dXJuIHRydWUgaWYgaXQgd2FudHMg
dG8gZG8gc29tZXRoaW5nIGluCi0gICAgLy8gYWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbygpLgot
ICAgIC8vIFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9uLTAuCi0gICAgdmlydHVhbCBib29sIHdp
bGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1lbnQqKSB7IHJldHVybiBm
YWxzZTsgfQotICAgIC8vIFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9uLTAuCi0gICAgdmlydHVh
bCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRpb25zVG8oSFRNTElucHV0RWxlbWVudCopIHsgfQot
CiAgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2li
aWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRS
ZWN0JikgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199342</attachid>
            <date>2013-04-23 17:50:56 -0700</date>
            <delta_ts>2013-04-23 18:58:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115068-20130424095020.patch</filename>
            <type>text/plain</type>
            <size>18949</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZlZGJkMjVjOGM0ZjJl
MDMzMjMzZjc4YTFiOTg5Njc4N2ZkMzc5Zi4uMjVlZDA0NzRhYTYwYTJmOWYwNTVkZmI5ZmIxMmEz
OGFlYTYwMTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTA0LTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZW1vdmUgVGV4dEZpZWxk
RGVjb3JhdGlvbiBmZWF0dXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTUwNjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBPbmx5IENocm9taXVtIHBvcnQgdXNlZCB0aGlzIGZlYXR1cmUuCisKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOiBSZW1vdmUgaXNUZXh0RmllbGREZWNvcmF0aW9uLgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVz
dHJveVNoYWRvd1N1YnRyZWUpOgorICAgICAgICBVcGRhdGUgYSBjb21tZW50LgorICAgICAgICAq
IGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRGaWVs
ZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgIFJlbW92ZSBjYWxsIHNp
dGVzIG9mIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvIGFuZCBhZGRUZXh0RmllbGREZWNv
cmF0aW9uc1RvLgorICAgICAgICAqIGh0bWwvc2hhZG93L1RleHRGaWVsZERlY29yYXRpb25FbGVt
ZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0
aW9uRWxlbWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgIChDaHJvbWVDbGllbnQpOiBSZW1vdmUgd2lsbEFkZFRleHRGaWVsZERlY29yYXRpb25z
VG8gYW5kCisgICAgICAgIGFkZFRleHRGaWVsZERlY29yYXRpb25zVG8KKwogMjAxMy0wNC0yMyAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBm
b3JjZWQgc3VidGl0bGUgdHJhY2sgc2hvdWxkIGNoYW5nZSB3aGVuIGF1ZGlvIHRyYWNrIGxhbmd1
YWdlIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IGY4NzJjMzY0MGUxZWQzOWFjY2IwZWJh
ZTM3MmE2Njg5MmUzOWEyOWMuLmE5ZGExNGU4OTgzNWNhYjZmMDc3YWZiOTgxYTE2MWFmNzhhMjIz
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNTUyLDcgKzU1Miw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgaXNJblJhbmdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNPdXRPZlJhbmdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNGcmFtZUVsZW1lbnRCYXNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGREZWNvcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDA5NjBm
YzQ0M2I4ODI5MTAxYWYzOWFiNzdkNjVhMDU3MmVhMWZlNDMuLjYyODMxNjcxNTNlZjhmNmYwN2Q2
MGEwOTVkNTNlOTc2MDc0MjgwYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTQ4
OCw5ICs0ODgsOCBAQCB2b2lkIElucHV0VHlwZTo6ZGVzdHJveVNoYWRvd1N1YnRyZWUoKQogCiAg
ICAgcm9vdC0+cmVtb3ZlQ2hpbGRyZW4oKTsKIAotICAgIC8vIEl0J3Mgb2sgdG8gY2xlYXIgY29u
dGVudHMgb2YgYWxsIG90aGVyIFNoYWRvd1Jvb3RzIGJlY2F1c2UgdGhleSBtdXN0IGhhdmUKLSAg
ICAvLyBiZWVuIGNyZWF0ZWQgYnkgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQsIGFuZCB3ZSBk
b24ndCBhbGxvdyBhZGRpbmcKLSAgICAvLyBBdXRob3JTaGFkb3dSb290IHRvIEhUTUxJbnB1dEVs
ZW1lbnQuCisgICAgLy8gSXQncyBvayB0byBjbGVhciBjb250ZW50cyBvZiBhbGwgb3RoZXIgU2hh
ZG93Um9vdHMgYmVjYXVzZSB3ZSBkb24ndCBhbGxvdworICAgIC8vIGFkZGluZyBBdXRob3JTaGFk
b3dSb290IHRvIEhUTUxJbnB1dEVsZW1lbnQuCiAgICAgd2hpbGUgKChyb290ID0gcm9vdC0+eW91
bmdlclNoYWRvd1Jvb3QoKSkpIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICAgICAgcm9v
dC0+cmVtb3ZlQ2hpbGRyZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dEZpZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRU
eXBlLmNwcAppbmRleCAwNWRmZmFmYjEzOTViN2EwNjEyNzg3N2Q4MThiZjY4MTM2NGI0MjNiLi4z
NmMxZjg1MTFmMmM5MzIxZTBlZDFhYzgyYTkwMWUzODJhYjZjNzYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNs
dWRlICJCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgotI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVs
ZW1lbnRTaGFkb3cuaCIKICNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKQEAgLTIzMywxMCArMjMy
LDggQEAgdm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAg
IEFTU0VSVCghbV9pbm5lclNwaW5CdXR0b24pOwogCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
ZWxlbWVudCgpLT5kb2N1bWVudCgpOwotICAgIENocm9tZUNsaWVudCogY2hyb21lQ2xpZW50ID0g
ZG9jdW1lbnQtPnBhZ2UoKSA/IGRvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSA6
IDA7Ci0gICAgYm9vbCBzaG91bGRBZGREZWNvcmF0aW9ucyA9IGNocm9tZUNsaWVudCAmJiBjaHJv
bWVDbGllbnQtPndpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKGVsZW1lbnQoKSk7CiAgICAg
Ym9vbCBzaG91bGRIYXZlU3BpbkJ1dHRvbiA9IHRoaXMtPnNob3VsZEhhdmVTcGluQnV0dG9uKCk7
Ci0gICAgYm9vbCBjcmVhdGVzQ29udGFpbmVyID0gc2hvdWxkSGF2ZVNwaW5CdXR0b24gfHwgbmVl
ZHNDb250YWluZXIoKSB8fCBzaG91bGRBZGREZWNvcmF0aW9uczsKKyAgICBib29sIGNyZWF0ZXND
b250YWluZXIgPSBzaG91bGRIYXZlU3BpbkJ1dHRvbiB8fCBuZWVkc0NvbnRhaW5lcigpOwogCiAg
ICAgbV9pbm5lclRleHQgPSBUZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7CiAgICAgaWYgKCFjcmVhdGVzQ29udGFpbmVyKSB7CkBAIC0yNjUsOSArMjYyLDYgQEAg
dm9pZCBUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogICAgICAgICBt
X2lubmVyU3BpbkJ1dHRvbiA9IFNwaW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsICp0
aGlzKTsKICAgICAgICAgbV9jb250YWluZXItPmFwcGVuZENoaWxkKG1faW5uZXJTcGluQnV0dG9u
LCBJR05PUkVfRVhDRVBUSU9OKTsKICAgICB9Ci0KLSAgICBpZiAoc2hvdWxkQWRkRGVjb3JhdGlv
bnMpCi0gICAgICAgIGNocm9tZUNsaWVudC0+YWRkVGV4dEZpZWxkRGVjb3JhdGlvbnNUbyhlbGVt
ZW50KCkpOwogfQogCiBIVE1MRWxlbWVudCogVGV4dEZpZWxkSW5wdXRUeXBlOjpjb250YWluZXJF
bGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Rl
eHRGaWVsZERlY29yYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRGaWVsZERlY29yYXRpb25FbGVtZW50LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZWZiNTAxZjA1YjQxOTQ4ODM1M2Q3NjE5MzM4Y2E5NDY0NWRjNGMyNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudC5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwyNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICog
bWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJUZXh0RmllbGREZWNv
cmF0aW9uRWxlbWVudC5oIgotCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgotI2luY2x1
ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKLSNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCi0jaW5j
bHVkZSAiRXZlbnQuaCIKLSNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAi
SFRNTFNoYWRvd0VsZW1lbnQuaCIKLSNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKLSNpbmNs
dWRlICJSZW5kZXJJbWFnZS5oIgotI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKLSNpbmNsdWRlICJT
dHlsZVJlc29sdmVyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKLQotLy8gVGV4dEZpZWxkRGVjb3JhdG9yIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVGV4dEZpZWxk
RGVjb3JhdG9yOjp+VGV4dEZpZWxkRGVjb3JhdG9yKCkKLXsKLX0KLQotLy8gVGV4dEZpZWxkRGVj
b3JhdGlvbkVsZW1lbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0vLyBGSVhNRTogVGhpcyBjbGFzcyBpcyBvbmx5IHVz
ZWQgaW4gQ2hyb21pdW0sIGFuZCBoYXMgbm8gbGF5b3V0IHRlc3RzISEKLQotVGV4dEZpZWxkRGVj
b3JhdGlvbkVsZW1lbnQ6OlRleHRGaWVsZERlY29yYXRpb25FbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCwgVGV4dEZpZWxkRGVjb3JhdG9yKiBkZWNvcmF0b3IpCi0gICAgOiBIVE1MRGl2RWxlbWVu
dChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCi0gICAgLCBtX3RleHRGaWVsZERlY29yYXRv
cihkZWNvcmF0b3IpCi0gICAgLCBtX2lzSW5Ib3ZlclN0YXRlKGZhbHNlKQotewotICAgIEFTU0VS
VChkZWNvcmF0b3IpOwotICAgIHNldEhhc0N1c3RvbVN0eWxlQ2FsbGJhY2tzKCk7Ci19Ci0KLVBh
c3NSZWZQdHI8VGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ+IFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBUZXh0RmllbGREZWNvcmF0b3IqIGRl
Y29yYXRvcikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRGaWVsZERlY29yYXRpb25F
bGVtZW50KGRvY3VtZW50LCBkZWNvcmF0b3IpKTsKLX0KLQotVGV4dEZpZWxkRGVjb3JhdGlvbkVs
ZW1lbnQqIFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50Ojpmcm9tU2hhZG93Um9vdChTaGFkb3dS
b290KiBzaGFkb3dSb290KQotewotICAgIGlmICghc2hhZG93Um9vdC0+Zmlyc3RDaGlsZCgpCi0g
ICAgICAgIHx8ICFzaGFkb3dSb290LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpCi0gICAgICAg
IHx8ICFzaGFkb3dSb290LT5maXJzdENoaWxkKCktPmxhc3RDaGlsZCgpLT5pc0VsZW1lbnROb2Rl
KCkKLSAgICAgICAgfHwgIXRvRWxlbWVudChzaGFkb3dSb290LT5maXJzdENoaWxkKCktPmxhc3RD
aGlsZCgpKS0+aXNUZXh0RmllbGREZWNvcmF0aW9uKCkpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiB0b1RleHRGaWVsZERlY29yYXRpb25FbGVtZW50KHNoYWRvd1Jvb3QtPmZpcnN0Q2hp
bGQoKS0+bGFzdENoaWxkKCkpOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgZ2V0RGVjb3JhdGlv
blJvb3RBbmREZWNvcmF0ZWRSb290KEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0LCBTaGFkb3dSb290
KiYgZGVjb3JhdGlvblJvb3QsIFNoYWRvd1Jvb3QqJiBkZWNvcmF0ZWRSb290KQotewotICAgIFNo
YWRvd1Jvb3QqIGV4aXN0aW5nUm9vdCA9IGlucHV0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKLSAg
ICBTaGFkb3dSb290KiBuZXdSb290ID0gMDsKLSAgICB3aGlsZSAoZXhpc3RpbmdSb290LT5jaGls
ZE5vZGVDb3VudCgpID09IDEgJiYgZXhpc3RpbmdSb290LT5maXJzdENoaWxkKCktPmhhc1RhZ05h
bWUoc2hhZG93VGFnKSkgewotICAgICAgICBuZXdSb290ID0gZXhpc3RpbmdSb290OwotICAgICAg
ICBleGlzdGluZ1Jvb3QgPSBleGlzdGluZ1Jvb3QtPm9sZGVyU2hhZG93Um9vdCgpOwotICAgICAg
ICBBU1NFUlQoZXhpc3RpbmdSb290KTsKLSAgICB9Ci0gICAgaWYgKG5ld1Jvb3QpCi0gICAgICAg
IG5ld1Jvb3QtPnJlbW92ZUNoaWxkKG5ld1Jvb3QtPmZpcnN0Q2hpbGQoKSk7Ci0gICAgZWxzZSB7
Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGludGVyYWN0cyByZWFsbHkgYmFkbHkgd2l0aCBhdXRo
b3Igc2hhZG93IHJvb3RzIGJlY2F1c2Ugbm93Ci0gICAgICAgIC8vIHdlIGNhbiBpbnRlcmxlYXZl
IHVzZXIgYWdlbnQgYW5kIGF1dGhvciBzaGFkb3cgcm9vdHMgb24gdGhlIGVsZW1lbnQgbWVhbmlu
ZwotICAgICAgICAvLyBpbnB1dC5zaGFkb3dSb290IG1heSBiZSBpbmFjY2Vzc2libGUgaWYgdGhl
IGJyb3dzZXIgaGFzIGRlY2lkZWQgdG8gZGVjb3JhdGUKLSAgICAgICAgLy8gdGhlIGlucHV0Lgot
ICAgICAgICBuZXdSb290ID0gaW5wdXQtPmVuc3VyZVNoYWRvdygpLT5hZGRTaGFkb3dSb290KGlu
cHV0LCBTaGFkb3dSb290OjpVc2VyQWdlbnRTaGFkb3dSb290KTsKLSAgICB9Ci0gICAgZGVjb3Jh
dGlvblJvb3QgPSBuZXdSb290OwotICAgIGRlY29yYXRlZFJvb3QgPSBleGlzdGluZ1Jvb3Q7Ci19
Ci0KLXZvaWQgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmRlY29yYXRlKEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0LCBib29sIHZpc2libGUpCi17Ci0gICAgQVNTRVJUKGlucHV0KTsKLSAgICBT
aGFkb3dSb290KiBleGlzdGluZ1Jvb3Q7Ci0gICAgU2hhZG93Um9vdCogZGVjb3JhdGlvblJvb3Q7
Ci0gICAgZ2V0RGVjb3JhdGlvblJvb3RBbmREZWNvcmF0ZWRSb290KGlucHV0LCBkZWNvcmF0aW9u
Um9vdCwgZXhpc3RpbmdSb290KTsKLSAgICBBU1NFUlQoZGVjb3JhdGlvblJvb3QpOwotICAgIEFT
U0VSVChleGlzdGluZ1Jvb3QpOwotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gYm94ID0gSFRN
TERpdkVsZW1lbnQ6OmNyZWF0ZShpbnB1dC0+ZG9jdW1lbnQoKSk7Ci0gICAgZGVjb3JhdGlvblJv
b3QtPmFwcGVuZENoaWxkKGJveCk7Ci0gICAgYm94LT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5RGlzcGxheSwgQ1NTVmFsdWVXZWJraXRGbGV4KTsKLSAgICBib3gtPnNldElubGlu
ZVN0eWxlUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRBbGlnbkl0ZW1zLCBDU1NWYWx1ZUNlbnRl
cik7Ci0gICAgQVNTRVJUKGV4aXN0aW5nUm9vdC0+Y2hpbGROb2RlQ291bnQoKSA9PSAxKTsKLSAg
ICB0b0hUTUxFbGVtZW50KGV4aXN0aW5nUm9vdC0+Zmlyc3RDaGlsZCgpKS0+c2V0SW5saW5lU3R5
bGVQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZsZXhHcm93LCAxLjAsIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfTlVNQkVSKTsKLSNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBib3gtPmFwcGVu
ZENoaWxkKEhUTUxTaGFkb3dFbGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjpzaGFkb3dUYWcsIGlu
cHV0LT5kb2N1bWVudCgpKSk7Ci0jZW5kaWYKLSAgICBzZXRJbmxpbmVTdHlsZVByb3BlcnR5KENT
U1Byb3BlcnR5RGlzcGxheSwgdmlzaWJsZSA/IENTU1ZhbHVlQmxvY2sgOiBDU1NWYWx1ZU5vbmUp
OwotICAgIGJveC0+YXBwZW5kQ2hpbGQodGhpcyk7Ci19Ci0KLWlubGluZSBIVE1MSW5wdXRFbGVt
ZW50KiBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudDo6aG9zdElucHV0KCkKLXsKLSAgICAvLyBU
ZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudCBpcyBjcmVhdGVkIG9ubHkgYnkgQysrIGNvZGUsIGFu
ZCBpdCBpcyBhbHdheXMKLSAgICAvLyBpbiA8aW5wdXQ+IHNoYWRvdy4KLSAgICBBU1NFUlRfV0lU
SF9TRUNVUklUWV9JTVBMSUNBVElPTighc2hhZG93SG9zdCgpIHx8IHNoYWRvd0hvc3QoKS0+aGFz
VGFnTmFtZShpbnB1dFRhZykpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVt
ZW50Kj4oc2hhZG93SG9zdCgpKTsKLX0KLQotYm9vbCBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVu
dDo6aXNUZXh0RmllbGREZWNvcmF0aW9uKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotdm9pZCBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudDo6dXBkYXRlSW1hZ2UoKQotewotICAg
IGlmICghcmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKS0+aXNJbWFnZSgpKQotICAgICAgICByZXR1
cm47Ci0gICAgUmVuZGVySW1hZ2VSZXNvdXJjZSogcmVzb3VyY2UgPSB0b1JlbmRlckltYWdlKHJl
bmRlcmVyKCkpLT5pbWFnZVJlc291cmNlKCk7Ci0gICAgQ2FjaGVkSW1hZ2UqIGltYWdlOwotICAg
IGlmIChob3N0SW5wdXQoKS0+aXNEaXNhYmxlZEZvcm1Db250cm9sKCkpCi0gICAgICAgIGltYWdl
ID0gbV90ZXh0RmllbGREZWNvcmF0b3ItPmltYWdlRm9yRGlzYWJsZWRTdGF0ZSgpOwotICAgIGVs
c2UgaWYgKGhvc3RJbnB1dCgpLT5pc1JlYWRPbmx5KCkpCi0gICAgICAgIGltYWdlID0gbV90ZXh0
RmllbGREZWNvcmF0b3ItPmltYWdlRm9yUmVhZG9ubHlTdGF0ZSgpOwotICAgIGVsc2UgaWYgKG1f
aXNJbkhvdmVyU3RhdGUpCi0gICAgICAgIGltYWdlID0gbV90ZXh0RmllbGREZWNvcmF0b3ItPmlt
YWdlRm9ySG92ZXJTdGF0ZSgpOwotICAgIGVsc2UKLSAgICAgICAgaW1hZ2UgPSBtX3RleHRGaWVs
ZERlY29yYXRvci0+aW1hZ2VGb3JOb3JtYWxTdGF0ZSgpOwotICAgIEFTU0VSVChpbWFnZSk7Ci0g
ICAgcmVzb3VyY2UtPnNldENhY2hlZEltYWdlKGltYWdlKTsKLX0KLQotUGFzc1JlZlB0cjxSZW5k
ZXJTdHlsZT4gVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVy
ZXIoKQotewotICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gb3JpZ2luYWxTdHlsZSA9IGRvY3VtZW50
KCktPnN0eWxlUmVzb2x2ZXIoKS0+c3R5bGVGb3JFbGVtZW50KHRoaXMpOwotICAgIFJlZlB0cjxS
ZW5kZXJTdHlsZT4gc3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmUob3JpZ2luYWxTdHlsZS5nZXQo
KSk7Ci0gICAgUmVuZGVyU3R5bGUqIGlucHV0U3R5bGUgPSBob3N0SW5wdXQoKS0+cmVuZGVyU3R5
bGUoKTsKLSAgICBBU1NFUlQoaW5wdXRTdHlsZSk7Ci0gICAgc3R5bGUtPnNldFdpZHRoKExlbmd0
aChpbnB1dFN0eWxlLT5mb250U2l6ZSgpLCBGaXhlZCkpOwotICAgIHN0eWxlLT5zZXRIZWlnaHQo
TGVuZ3RoKGlucHV0U3R5bGUtPmZvbnRTaXplKCksIEZpeGVkKSk7Ci0gICAgdXBkYXRlSW1hZ2Uo
KTsKLSAgICByZXR1cm4gc3R5bGUucmVsZWFzZSgpOwotfQotCi1SZW5kZXJPYmplY3QqIFRleHRG
aWVsZERlY29yYXRpb25FbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEs
IFJlbmRlclN0eWxlKikKLXsKLSAgICBSZW5kZXJJbWFnZSogaW1hZ2UgPSBuZXcgKGFyZW5hKSBS
ZW5kZXJJbWFnZSh0aGlzKTsKLSAgICBpbWFnZS0+c2V0SW1hZ2VSZXNvdXJjZShSZW5kZXJJbWFn
ZVJlc291cmNlOjpjcmVhdGUoKSk7Ci0gICAgcmV0dXJuIGltYWdlOwotfQotCi12b2lkIFRleHRG
aWVsZERlY29yYXRpb25FbGVtZW50OjphdHRhY2goKQotewotICAgIEhUTUxEaXZFbGVtZW50Ojph
dHRhY2goKTsKLSAgICB1cGRhdGVJbWFnZSgpOwotfQotCi12b2lkIFRleHRGaWVsZERlY29yYXRp
b25FbGVtZW50OjpkZXRhY2goKQotewotICAgIG1fdGV4dEZpZWxkRGVjb3JhdG9yLT53aWxsRGV0
YWNoKGhvc3RJbnB1dCgpKTsKLSAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7Ci19Ci0KLWJv
b2wgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdAot
ewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCi17Ci0gICAgUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IGlucHV0KGhvc3RJbnB1dCgpKTsKLSAgICBpZiAoIWlucHV0IHx8IGlucHV0
LT5pc0Rpc2FibGVkT3JSZWFkT25seSgpIHx8ICFldmVudC0+aXNNb3VzZUV2ZW50KCkpIHsKLSAg
ICAgICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgICAgIEhUTUxEaXZF
bGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIFJlZlB0cjxUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudD4gcHJvdGVjdG9yKHRo
aXMpOwotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5jbGlja0V2ZW50KSB7
Ci0gICAgICAgIG1fdGV4dEZpZWxkRGVjb3JhdG9yLT5oYW5kbGVDbGljayhpbnB1dC5nZXQoKSk7
Ci0gICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgIH0KLQotICAgIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZW92ZXJFdmVudCkgewotICAgICAgICBt
X2lzSW5Ib3ZlclN0YXRlID0gdHJ1ZTsKLSAgICAgICAgdXBkYXRlSW1hZ2UoKTsKLSAgICB9Ci0K
LSAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgewot
ICAgICAgICBtX2lzSW5Ib3ZlclN0YXRlID0gZmFsc2U7Ci0gICAgICAgIHVwZGF0ZUltYWdlKCk7
Ci0gICAgfQotCi0gICAgaWYgKCFldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKLSAgICAgICAgSFRN
TERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwotfQotCi1ib29sIFRleHRG
aWVsZERlY29yYXRpb25FbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRzKCkKLXsK
LSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOwotICAgIGlm
ICghaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojp3aWxsUmVzcG9uZFRvTW91c2VNb3ZlRXZlbnRz
KCk7Ci19Ci0KLWJvb2wgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQ6OndpbGxSZXNwb25kVG9N
b3VzZUNsaWNrRXZlbnRzKCkKLXsKLSAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IGhvc3RJbnB1dCgpOwotICAgIGlmICghaW5wdXQtPmlzRGlzYWJsZWRPclJlYWRPbmx5KCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50Ojp3aWxsUmVz
cG9uZFRvTW91c2VDbGlja0V2ZW50cygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNvcmF0aW9u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dEZpZWxkRGVjb3JhdGlv
bkVsZW1lbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTJjYThhZDA5NzcyMzI3
YjYxOGZiYTdjODhhZTNjMTg3NGVmOWIxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0RmllbGREZWNv
cmF0aW9uRWxlbWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJp
YnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFRl
eHRGaWVsZERlY29yYXRpb25FbGVtZW50X2gKLSNkZWZpbmUgVGV4dEZpZWxkRGVjb3JhdGlvbkVs
ZW1lbnRfaAotCi0jaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBDYWNoZWRJbWFnZTsKLWNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7Ci1jbGFz
cyBTaGFkb3dSb290OwotCi0vLyBBIFRleHRGaWVsZERlY29yYXRvciBvYmplY3QgbXVzdCBsaXZl
IHVudGlsIGFsbCBvZiB0ZXh0IGZpZWxkcyB3aGljaCB3ZXJlCi0vLyBkZWNvcmF0ZWQgYnkgaXQg
ZGllLgotY2xhc3MgVGV4dEZpZWxkRGVjb3JhdG9yIHsKLXB1YmxpYzoKLSAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhpcyBUZXh0RmllbGREZWNvcmF0b3Igd2FudHMgdG8gYWRkIGEKLSAgICAvLyBk
ZWNvcmF0aW9uIHRvIHRoZSBzcGVjaWZpZWQgdGV4dCBmaWVsZC4KLSAgICB2aXJ0dWFsIGJvb2wg
d2lsbEFkZERlY29yYXRpb25UbyhIVE1MSW5wdXRFbGVtZW50KikgPSAwOwotICAgIHZpcnR1YWwg
Ym9vbCB2aXNpYmxlQnlEZWZhdWx0KCkgPSAwOwotCi0gICAgLy8gQSBUZXh0RmllbGREZWNvcmF0
b3Igb2JqZWN0IHNob3VsZCBvd24gdGhlIENhY2hlZEltYWdlIG9iamVjdHMuCi0gICAgdmlydHVh
bCBDYWNoZWRJbWFnZSogaW1hZ2VGb3JOb3JtYWxTdGF0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIENh
Y2hlZEltYWdlKiBpbWFnZUZvckRpc2FibGVkU3RhdGUoKSA9IDA7Ci0gICAgdmlydHVhbCBDYWNo
ZWRJbWFnZSogaW1hZ2VGb3JSZWFkb25seVN0YXRlKCkgPSAwOwotICAgIHZpcnR1YWwgQ2FjaGVk
SW1hZ2UqIGltYWdlRm9ySG92ZXJTdGF0ZSgpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVDbGljayhIVE1MSW5wdXRFbGVtZW50KikgPSAwOwotICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMg
Y2FsbGVkIGp1c3QgYmVmb3JlIGRldGFjaGluZyB0aGUgZGVjb3JhdGlvbi4gSXQgbXVzdCBub3QK
LSAgICAvLyBjYWxsIGZ1bmN0aW9ucyB3aGljaCB1cGRhdGluZyBzdGF0ZSBvZiB0aGUgc3BlY2lm
aWVkIEhUTUxJbnB1dEVsZW1lbnQKLSAgICAvLyBvYmplY3QuCi0gICAgdmlydHVhbCB2b2lkIHdp
bGxEZXRhY2goSFRNTElucHV0RWxlbWVudCopID0gMDsKLQotICAgIHZpcnR1YWwgflRleHRGaWVs
ZERlY29yYXRvcigpOwotfTsKLQotLy8gQSBUZXh0RmllbGREZWNvcmF0aW9uRWxlbWVudCBvYmpl
Y3QgbXVzdCBiZSBpbiBhIHNoYWRvdyB0cmVlIG9mIGFuCi0vLyBIVE1MSW5wdXRFbGVtZW50Lgot
Y2xhc3MgVGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQg
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRGaWVsZERlY29yYXRpb25FbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBUZXh0RmllbGREZWNvcmF0b3IqKTsKLSAgICBzdGF0aWMg
VGV4dEZpZWxkRGVjb3JhdGlvbkVsZW1lbnQqIGZyb21TaGFkb3dSb290KFNoYWRvd1Jvb3QqKTsK
LSAgICBUZXh0RmllbGREZWNvcmF0b3IqIHRleHRGaWVsZERlY29yYXRvcigpIHsgcmV0dXJuIG1f
dGV4dEZpZWxkRGVjb3JhdG9yOyB9Ci0gICAgdm9pZCBkZWNvcmF0ZShIVE1MSW5wdXRFbGVtZW50
KiwgYm9vbCB2aXNpYmxlKTsKLQotICAgIHZpcnR1YWwgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VN
b3ZlRXZlbnRzKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIHdpbGxSZXNwb25kVG9Nb3Vz
ZUNsaWNrRXZlbnRzKCkgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgVGV4dEZpZWxkRGVjb3Jh
dGlvbkVsZW1lbnQoRG9jdW1lbnQqLCBUZXh0RmllbGREZWNvcmF0b3IqKTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNUZXh0RmllbGREZWNvcmF0aW9uKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZF
UlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
Ym9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKSBPVkVSUklERTsKLQotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGhvc3RJbnB1dCgpOwotICAgIHZvaWQgdXBkYXRlSW1hZ2UoKTsKLQotICAgIFRleHRG
aWVsZERlY29yYXRvciogbV90ZXh0RmllbGREZWNvcmF0b3I7Ci0gICAgYm9vbCBtX2lzSW5Ib3Zl
clN0YXRlOwotfTsKLQotaW5saW5lIFRleHRGaWVsZERlY29yYXRpb25FbGVtZW50KiB0b1RleHRG
aWVsZERlY29yYXRpb25FbGVtZW50KE5vZGUqIG5vZGUpCi17Ci0gICAgQVNTRVJUKG5vZGUpOwot
ICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG5vZGUtPmlzRWxlbWVudE5vZGUo
KSk7Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04odG9FbGVtZW50KG5vZGUp
LT5pc1RleHRGaWVsZERlY29yYXRpb24oKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFRleHRG
aWVsZERlY29yYXRpb25FbGVtZW50Kj4obm9kZSk7Ci19Ci0KLX0KLSNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZWIwMjc5NzY5MzVhNzY1MGI0MmIxMjdiMmEyMmY2MjU4
MmI2OGQyMy4uNjExY2NhOTljZWE3Y2FiMmQ1ZDZlODJlNTU5NzZlNzBmZGY5YmY1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zMzksMTQgKzMzOSw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UGFnZVBvcHVwRHJpdmVyKFBhZ2VQb3B1cERyaXZlciopID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRQYWdlUG9wdXBEcml2ZXIoKSA9IDA7CiAjZW5kaWYKLSAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlciBhIHRleHQgZmllbGQgPGlucHV0
PiBpcyBjcmVhdGVkLiBUaGUKLSAgICAvLyBpbXBsZW1lbnRhdGlvbiBzaG91bGQgcmV0dXJuIHRy
dWUgaWYgaXQgd2FudHMgdG8gZG8gc29tZXRoaW5nIGluCi0gICAgLy8gYWRkVGV4dEZpZWxkRGVj
b3JhdGlvbnNUbygpLgotICAgIC8vIFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9uLTAuCi0gICAg
dmlydHVhbCBib29sIHdpbGxBZGRUZXh0RmllbGREZWNvcmF0aW9uc1RvKEhUTUxJbnB1dEVsZW1l
bnQqKSB7IHJldHVybiBmYWxzZTsgfQotICAgIC8vIFRoZSBhcmd1bWVudCBpcyBhbHdheXMgbm9u
LTAuCi0gICAgdmlydHVhbCB2b2lkIGFkZFRleHRGaWVsZERlY29yYXRpb25zVG8oSFRNTElucHV0
RWxlbWVudCopIHsgfQotCiAgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlv
bikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUlu
UmVjdChjb25zdCBJbnRSZWN0JikgeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>