<?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>61421</bug_id>
          
          <creation_ts>2011-05-24 22:59:19 -0700</creation_ts>
          <short_desc>Handle focus event in shadow content.</short_desc>
          <delta_ts>2011-08-17 19:41:29 -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>DOM</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>
          
          <blocked>59805</blocked>
    
    <blocked>61409</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>409477</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-05-24 22:59:19 -0700</bug_when>
    <thetext>We should make sure that focus event happend in elements of shadow content is properly retargeted to a right element, which should be a shadow host element, and call right eventListners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417681</commentid>
    <comment_count>1</comment_count>
      <attachid>96506</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-06-08 16:38:31 -0700</bug_when>
    <thetext>Created attachment 96506
WIP: Needs tests and loving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452208</commentid>
    <comment_count>2</comment_count>
      <attachid>104166</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-08-17 05:10:31 -0700</bug_when>
    <thetext>Created attachment 104166
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452209</commentid>
    <comment_count>3</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-08-17 05:12:18 -0700</bug_when>
    <thetext>Hi Dimitri,
I&apos;ve updated a patch, which is based on your patch, fixing some minor issues and adding a LayoutTest.

Could you review that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452272</commentid>
    <comment_count>4</comment_count>
      <attachid>104166</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-08-17 08:31:42 -0700</bug_when>
    <thetext>Comment on attachment 104166
patch

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

&gt; Source/WebCore/dom/Event.cpp:343
&gt; +PassRefPtr&lt;FocusEventDispatchMediator&gt; FocusEventDispatchMediator::create(PassRefPtr&lt;Node&gt; oldFocusedNode)
&gt; +{
&gt; +    return adoptRef(new FocusEventDispatchMediator(oldFocusedNode));
&gt; +}
&gt; +
&gt; +FocusEventDispatchMediator::FocusEventDispatchMediator(PassRefPtr&lt;Node&gt; oldFocusedNode)
&gt; +    : EventDispatchMediator(Event::create(eventNames().focusEvent, false, false))
&gt; +    , m_oldFocusedNode(oldFocusedNode)
&gt; +{
&gt; +}
&gt; +
&gt; +bool FocusEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
&gt; +{
&gt; +    dispatcher-&gt;adjustRelatedTarget(event(), m_oldFocusedNode);
&gt; +    return EventDispatchMediator::dispatchEvent(dispatcher);
&gt; +}
&gt; +
&gt; +PassRefPtr&lt;BlurEventDispatchMediator&gt; BlurEventDispatchMediator::create(PassRefPtr&lt;Node&gt; newFocusedNode)
&gt; +{
&gt; +    return adoptRef(new BlurEventDispatchMediator(newFocusedNode));
&gt; +}
&gt; +
&gt; +BlurEventDispatchMediator::BlurEventDispatchMediator(PassRefPtr&lt;Node&gt; newFocusedNode)
&gt; +    : EventDispatchMediator(Event::create(eventNames().blurEvent, false, false))
&gt; +    , m_newFocusedNode(newFocusedNode)
&gt; +{
&gt; +}
&gt; +
&gt; +bool BlurEventDispatchMediator::dispatchEvent(EventDispatcher* dispatcher) const
&gt; +{
&gt; +    dispatcher-&gt;adjustRelatedTarget(event(), m_newFocusedNode);
&gt; +    return EventDispatchMediator::dispatchEvent(dispatcher);
&gt; +}

These should be in UIEvent, right?

&gt; Source/WebCore/page/FocusController.cpp:80
&gt; +        document-&gt;focusedNode()-&gt;dispatchBlurEvent(0);

Ah. This is a nice improvement over my old patch! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452759</commentid>
    <comment_count>5</comment_count>
      <attachid>104166</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-08-17 17:29:58 -0700</bug_when>
    <thetext>Comment on attachment 104166
patch

Thank you for the review.

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

&gt;&gt; Source/WebCore/dom/Event.cpp:343
&gt;&gt; +}
&gt; 
&gt; These should be in UIEvent, right?

Focus/Blur events are not UIEvent in definition according to http://www.w3.org/TR/DOM-Level-2-Events/events.html.
Hence, I&apos;d like to avoid putting these in UIEvent.{h,cpp}, even though they look very &apos;similar&apos; to FocusIn/FocusOut events.

I am landing this patch as is. But it&apos;s uncomfortable for me to leave these Focus/BlurEventDispatchMediator in Event.h.  So I&apos;ll extract EventDispatchMediator and Focus/BlueEventDispatchMediator to another files, named EventDispatchMediator.{h, cpp} in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452818</commentid>
    <comment_count>6</comment_count>
      <attachid>104166</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 19:41:25 -0700</bug_when>
    <thetext>Comment on attachment 104166
patch

Clearing flags on attachment: 104166

Committed r93276: &lt;http://trac.webkit.org/changeset/93276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452819</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 19:41:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96506</attachid>
            <date>2011-06-08 16:38:31 -0700</date>
            <delta_ts>2011-08-17 05:10:26 -0700</delta_ts>
            <desc>WIP: Needs tests and loving.</desc>
            <filename>bug-61421-20110608163829.patch</filename>
            <type>text/plain</type>
            <size>11358</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNl
YTVkNTc1M2MxOTYzZGM3MjEyMDA3Njk3MzI2ZWIxMDNjM2M2YjkuLjUzN2VjZDg1NDgxM2JhOTVl
MTA2ZDllYjNmYWZiY2Y4YmY0ZjAwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzA5
NCw4ICszMDk0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERhc2hib2FyZFJlZ2lvbnMoY29uc3Qg
VmVjdG9yPERhc2hib2FyZFJlZ2lvblZhbHVlPiYgcmVnaW9ucykKIH0KICNlbmRpZgogCi1ib29s
IERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2Rl
KQoteyAgICAKK2Jvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4g
cHJwTmV3Rm9jdXNlZE5vZGUpCit7CisgICAgUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlID0g
cHJwTmV3Rm9jdXNlZE5vZGU7CisKICAgICAvLyBNYWtlIHN1cmUgbmV3Rm9jdXNlZE5vZGUgaXMg
YWN0dWFsbHkgaW4gdGhpcyBkb2N1bWVudAogICAgIGlmIChuZXdGb2N1c2VkTm9kZSAmJiAobmV3
Rm9jdXNlZE5vZGUtPmRvY3VtZW50KCkgIT0gdGhpcykpCiAgICAgICAgIHJldHVybiB0cnVlOwpA
QCAtMzEyNyw3ICszMTI5LDcgQEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKICAgICAgICAgfQogCiAgICAgICAgIC8vIERpc3Bh
dGNoIHRoZSBibHVyIGV2ZW50IGFuZCBsZXQgdGhlIG5vZGUgZG8gYW55IG90aGVyIGJsdXIgcmVs
YXRlZCBhY3Rpdml0aWVzIChpbXBvcnRhbnQgZm9yIHRleHQgZmllbGRzKQotICAgICAgICBvbGRG
b2N1c2VkTm9kZS0+ZGlzcGF0Y2hCbHVyRXZlbnQoKTsKKyAgICAgICAgb2xkRm9jdXNlZE5vZGUt
PmRpc3BhdGNoQmx1ckV2ZW50KG5ld0ZvY3VzZWROb2RlKTsKIAogICAgICAgICBpZiAobV9mb2N1
c2VkTm9kZSkgewogICAgICAgICAgICAgLy8gaGFuZGxlciBzaGlmdGVkIGZvY3VzCkBAIC0zMTcx
LDcgKzMxNzMsNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkTm9kZShQYXNzUmVmUHRyPE5v
ZGU+IG5ld0ZvY3VzZWROb2RlKQogICAgICAgICBtX2ZvY3VzZWROb2RlID0gbmV3Rm9jdXNlZE5v
ZGUuZ2V0KCk7CiAKICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGZvY3VzIGV2ZW50IGFuZCBsZXQg
dGhlIG5vZGUgZG8gYW55IG90aGVyIGZvY3VzIHJlbGF0ZWQgYWN0aXZpdGllcyAoaW1wb3J0YW50
IGZvciB0ZXh0IGZpZWxkcykKLSAgICAgICAgbV9mb2N1c2VkTm9kZS0+ZGlzcGF0Y2hGb2N1c0V2
ZW50KCk7CisgICAgICAgIG1fZm9jdXNlZE5vZGUtPmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1
c2VkTm9kZSk7CiAKICAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGUgIT0gbmV3Rm9jdXNlZE5vZGUp
IHsKICAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAK
aW5kZXggOGNiNDA1NGNmMjAzOGI3YzMyMjhlOGIwYzg1YjMwMjgwMjkwNDcxMC4uNTRkOWQ5ODVk
Y2E5NGViZGE0NTJmYzVjZDcxYzFkMDg5N2IyNmFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0z
MjcsNCArMzI3LDI4IEBAIGJvb2wgRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50
KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29uc3QKICAgICByZXR1cm4gZGlzcGF0Y2hl
ci0+ZGlzcGF0Y2hFdmVudChtX2V2ZW50LmdldCgpKTsKIH0KIAorRm9jdXNFdmVudERpc3BhdGNo
TWVkaWF0b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gb2xk
Rm9jdXNlZE5vZGUpCisgICAgOiBtX29sZEZvY3VzZWROb2RlKG9sZEZvY3VzZWROb2RlKQorewor
ICAgIHNldEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGZhbHNl
LCBmYWxzZSkpOworfQorCitib29sIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRj
aEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29uc3QKK3sKKyAgICBkaXNwYXRj
aGVyLT5hZGp1c3RSZWxhdGVkVGFyZ2V0KGV2ZW50KCksIG1fb2xkRm9jdXNlZE5vZGUpOworICAg
IHJldHVybiBkaXNwYXRjaGVyLT5kaXNwYXRjaEV2ZW50KGV2ZW50KCkpOworfQorCitCbHVyRXZl
bnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCisgICAgOiBtX25ld0ZvY3VzZWROb2RlKG5ld0ZvY3VzZWRO
b2RlKQoreworICAgIHNldEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVu
dCwgZmFsc2UsIGZhbHNlKSk7Cit9CisKK2Jvb2wgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6
ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRpc3BhdGNoZXIpIGNvbnN0Cit7CisgICAg
ZGlzcGF0Y2hlci0+YWRqdXN0UmVsYXRlZFRhcmdldChldmVudCgpLCBtX25ld0ZvY3VzZWROb2Rl
KTsKKyAgICByZXR1cm4gZGlzcGF0Y2hlci0+ZGlzcGF0Y2hFdmVudChldmVudCgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCBjMmRhYzdhYzlmYjA2ZGIy
M2IwMjQwYTAzMjhiN2RkZDdjMjZiY2E5Li45YTYwMTRjNWI2YjkxZWZhZjRmNWMwODA2YzA4ZmFi
NDdjZDA5ZWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuaApAQCAtMjE3LDYgKzIxNywyNyBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsKIH07CiAKK2NsYXNzIEZvY3VzRXZlbnREaXNwYXRj
aE1lZGlhdG9yIDogcHVibGljIEV2ZW50RGlzcGF0Y2hNZWRpYXRvciB7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgRm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBvbGRG
b2N1c2VkTm9kZSk7CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGRpc3BhdGNoRXZlbnQo
RXZlbnREaXNwYXRjaGVyKikgY29uc3Q7CisKKyAgICBSZWZQdHI8Tm9kZT4gbV9vbGRGb2N1c2Vk
Tm9kZTsKK307CisKK2NsYXNzIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3IgOiBwdWJsaWMgRXZl
bnREaXNwYXRjaE1lZGlhdG9yIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBCbHVyRXZlbnREaXNw
YXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOworCitwcml2YXRl
OgorICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNvbnN0
OworCisgICAgUmVmUHRyPE5vZGU+IG1fbmV3Rm9jdXNlZE5vZGU7Cit9OworCisKIGlubGluZSBF
dmVudERpc3BhdGNoTWVkaWF0b3I6OkV2ZW50RGlzcGF0Y2hNZWRpYXRvcigpCiB7CiB9CkBAIC0y
MzEsNiArMjUyLDcgQEAgaW5saW5lIHZvaWQgRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpzZXRFdmVu
dChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAgICBtX2V2ZW50ID0gZXZlbnQ7CiB9CiAKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRXZlbnRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CmluZGV4IGJkNDFlNTI4YTAyNWRjZmE5MTdjOTAwODNiZDY1MmIxYzIxNGI4ZDQuLjdiYzc5YzI1
MDU4NmIwYjYyNWRjOTkzOWY5MzNkODY4MWY2OTdlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTI3
NDAsMjQgKzI3NDAsMjQgQEAgYm9vbCBOb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICByZXR1cm4gRXZlbnREaXNwYXRjaGVyOjpkaXNw
YXRjaEV2ZW50KHRoaXMsIFdoZWVsRXZlbnREaXNwYXRjaE1lZGlhdG9yKGV2ZW50LCBkb2N1bWVu
dCgpLT5kZWZhdWx0VmlldygpKSk7CiB9CiAKLXZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50
KCkKK3ZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9j
dXNlZE5vZGUpCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgZG9jdW1l
bnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmVsZW1lbnREaWRGb2N1cyh0aGlzKTsK
ICAgICAKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZvY3Vz
RXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVu
dCh0aGlzLCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihvbGRGb2N1c2VkTm9kZSkpOwogfQog
CiB2b2lkIE5vZGU6OndpbGxCbHVyKCkKIHsKIH0KIAotdm9pZCBOb2RlOjpkaXNwYXRjaEJsdXJF
dmVudCgpCit2b2lkIE5vZGU6OmRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Rm9jdXNlZE5vZGUpCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmVsZW1lbnREaWRCbHVyKHRoaXMp
OwogICAgIAotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1
ckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZl
bnQodGhpcywgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcihuZXdGb2N1c2VkTm9kZSkpOwogfQog
CiB2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNmZjOTVm
YzA4MWE4NWMwZGM0Y2FiNmI2MTk2ZDJlODRiN2YyNTMzNC4uNGM5M2M2NWQxZjUyYjcyMTk3NmZj
NGUwNzQzNTFjZWQ4YzUxMjcyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC01NTUsOSArNTU1LDkgQEAgcHVi
bGljOgogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBpbnQgY2xpY2tDb3VudCA9IDAsIE5v
ZGUqIHJlbGF0ZWRUYXJnZXQgPSAwKTsKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2so
UGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9
IGZhbHNlLCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUpOwogCi0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRm9jdXNFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZl
bnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxCbHVyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5v
ZGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaENoYW5nZUV2ZW50KCk7CiAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA3MzVhZWNkMTk5NGMwMWQ0ZWNmZjg3ZmZm
YmZiZGUyNTAxYzFhNjcyLi4xYWQ2M2MyN2RhMDI5OWNkMjZjMzFlZjk0MTBlNGRmY2EzOGY0OTVk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTQzOCw5ICs0MzgsOSBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3Rv
bVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCiAgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9t
RXJyb3JNZXNzYWdlKGVycm9yKTsKIH0KIAotdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXNwYXRjaEJsdXJFdmVudCgpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNo
Qmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiB7Ci0gICAgSFRNTEVs
ZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KCk7CisgICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQmx1
ckV2ZW50KG5ld0ZvY3VzZWROb2RlKTsKICAgICBoaWRlVmlzaWJsZVZhbGlkYXRpb25NZXNzYWdl
KCk7CiB9CiAKQEAgLTU3OCwyMCArNTc4LDIwIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKICAgICBzZXRUZXh0QXNPZkxhc3RGb3JtQ29u
dHJvbENoYW5nZUV2ZW50KGluaXRpYWxWYWx1ZS5pc051bGwoKSA/IFN0cmluZygiIikgOiBpbml0
aWFsVmFsdWUpOwogfQogCi12b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRj
aEZvY3VzRXZlbnQoKQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hG
b2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCiB7CiAgICAgaWYgKHN1
cHBvcnRzUGxhY2Vob2xkZXIoKSkKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5
KGZhbHNlKTsKICAgICBoYW5kbGVGb2N1c0V2ZW50KCk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CisgICAgSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlKTsKIH0K
IAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQor
dm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKICAgICBpZiAoc3VwcG9ydHNQbGFjZWhvbGRl
cigpKQogICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoZmFsc2UpOwogICAgIGhh
bmRsZUJsdXJFdmVudCgpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRp
c3BhdGNoQmx1ckV2ZW50KCk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6
ZGlzcGF0Y2hCbHVyRXZlbnQobmV3Rm9jdXNlZE5vZGUpOwogfQogCiBTdHJpbmcgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnN0cmlwcGVkUGxhY2Vob2xkZXIoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA0M2YwYzA2NmQ0Y2E4
NTE1N2Y0OWFmYmJiNDgxNmU3NzQ3OTQ3MGMzLi4xNDYzNzljODc1Y2I0ZGNlNWU4OTIyZWU4ODJi
ZDUxZDY5ODAxOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9p
ZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hC
bHVyRXZlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogCiAg
ICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0IG9mIHdpbGxWYWxp
ZGF0ZSgpIGhhcyBjaGFuZ2VkLgpAQCAtMjIyLDggKzIyMiw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChTdHJpbmcg
dGV4dCkgeyBtX3RleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQgPSB0ZXh0OyB9CiAK
IHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUp
OwogCiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAppbmRleCBjMjAxOGZlMGYwODkxOGNlMDc1NzJl
MDFlOWE5Y2ZhODc5ODI4MjI0Li4xN2EwZDRkMzg4NTVkZWJhYjM0ZTY0OWJhOWEwZWFhZmMwYzdj
MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzY3
LDE2ICszNjcsMTYgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzZXQoKQogICAgIHNldE5l
ZWRzVmFsaWRpdHlDaGVjaygpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpkaXNwYXRj
aEZvY3VzRXZlbnQoKQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50
KFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5vZGUpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6
ZGlzcGF0Y2hGb2N1c0V2ZW50KG1fZGF0YSwgdGhpcyk7Ci0gICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CisgICAgSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KG9sZEZvY3VzZWROb2RlKTsKIH0K
IAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoKQordm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1
c2VkTm9kZSkKIHsKICAgICBTZWxlY3RFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudChtX2RhdGEs
IHRoaXMpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoQmx1
ckV2ZW50KCk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZTo6ZGlzcGF0Y2hC
bHVyRXZlbnQobmV3Rm9jdXNlZE5vZGUpOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaAppbmRleCA0YzdkNTQwNGQyOTE4ZWI3ZjdkYjY1NTg2OTU2NTM1MjZlMmQx
OWUyLi5hMGM0YTlkODU0MDZmZWIwYjUzNWE4ZDkyZjRhZjY0ZjM4OWYwMmZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMDMsOCArMTAzLDggQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2ZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoQmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudChQYXNz
UmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hC
bHVyRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSk7CiAgICAgCiAgICAgdmly
dHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGNmZTY3NDRkMGM1YjFl
MGNkMWNjYjEwNjg1Mjc1MWQxMzg0M2QxZjMuLmY1NjNjMDU3ZDQxYTQxMjFjYjlkYmFlMDQzZTUz
ZjY1NTM4MjZmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAg
LTc2LDEwICs3NiwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGlzcGF0Y2hFdmVudHNPbldpbmRv
d0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVudCwgYm9vbAogICAgIH0KIAogICAgIGlm
ICghZm9jdXNlZCAmJiBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSkKLSAgICAgICAgZG9jdW1lbnQt
PmZvY3VzZWROb2RlKCktPmRpc3BhdGNoQmx1ckV2ZW50KCk7CisgICAgICAgIGRvY3VtZW50LT5m
b2N1c2VkTm9kZSgpLT5kaXNwYXRjaEJsdXJFdmVudChkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSk7
CiAgICAgZG9jdW1lbnQtPmRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShmb2N1c2Vk
ID8gZXZlbnROYW1lcygpLmZvY3VzRXZlbnQgOiBldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKICAgICBpZiAoZm9jdXNlZCAmJiBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKSkK
LSAgICAgICAgZG9jdW1lbnQtPmZvY3VzZWROb2RlKCktPmRpc3BhdGNoRm9jdXNFdmVudCgpOwor
ICAgICAgICBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKS0+ZGlzcGF0Y2hGb2N1c0V2ZW50KGRvY3Vt
ZW50LT5mb2N1c2VkTm9kZSgpKTsKIH0KIAogRm9jdXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xs
ZXIoUGFnZSogcGFnZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104166</attachid>
            <date>2011-08-17 05:10:31 -0700</date>
            <delta_ts>2011-08-17 19:41:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug-61421-20110817211030.patch</filename>
            <type>text/plain</type>
            <size>18862</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMxMzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZGRkMzdkNDdiZDNhYjUyMjZmMWI4
Zjc2MjM3ZmZmMjgyMjM4MTVhLi4wNDg2YjkzMTk0ZjgyZWQ5YjdhZGZhNzM3ZjU1MWU5NDM0OWY3
YjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMTcgIEhheWF0byBJdG8gIDxoYXlh
dG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBwcm9wZXIgaGFuZGxpbmcgb2Yg
Zm9jdXMvYmx1ciBldmVudHMgaW4gcmVnYXJkIHRvIHNoYWRvdyBET00gYm91bmRhcmllcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlcyBG
b2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvci9CbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yIHNvCisg
ICAgICAgIHRoYXQgZm9jdXMvYmx1ZSBldmVudHMgYXJlIHN0b3BwZWQgYXQgdGhlIGxvd2VzdCBj
b21tb24gc2hhZG93IGJvdW5kYXJ5LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1ib3VuZGFyeS1ldmVudHMuaHRtbDoKKwogMjAxMS0wOC0xNiAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFyayBzdmcvd2ljZC90ZXN0LXJp
Z2h0c2l6aW5nLWEueGh0bWwgYXMgZmxha2V5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMtZXhwZWN0ZWQudHh0
CmluZGV4IGE1N2I3MGVmMjZhYmMwNmQwZTVhNmMxOGFjODU2Mjk0NWRhYWFlNTIuLjZjNDY1Y2Ex
ZTE1NWVkNTYyOTM1ZGZkYzJmY2U1NDIxMGI3NmNkZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2ZW50cy1leHBl
Y3RlZC50eHQKQEAgLTY4LDYgKzY4LDE2IEBAIE9sZCBmb2N1c2VkIG5vZGUgYW5kIG5ldyBmb2N1
c2VkIG5vZGUgZXhpc3QgaW4gc2VwYXJhdGVkIHN1YnRyZWVzLCBjcm9zc2luZyBzaGFkCiBNb3Zp
bmcgZm9jdXMgZnJvbSBzaGFkb3dEL3NoYWRvd0Yvc2hhZG93Ry9kaXZIIHRvIHNoYWRvd0Qvc2hh
ZG93Sy9kaXZMCiBQQVNTIGRpc3BhdGNoZWRFdmVudCgiZm9jdXNpbiIpIGlzIFsiZGl2TChAZGl2
TCkiLCAic2hhZG93SyhAc2hhZG93SykiLCAic2hhZG93SyhAZGl2SikiXQogUEFTUyBkaXNwYXRj
aGVkRXZlbnQoImZvY3Vzb3V0IikgaXMgWyJkaXZIKEBkaXZIKSIsICJzaGFkb3dHKEBzaGFkb3dH
KSIsICJzaGFkb3dGKEBzaGFkb3dGKSIsICJzaGFkb3dGKEBkaXZFKSJdCisKK01vdmUgZm9jdXMg
ZnJvbSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxsIG5vZGVzIGFyZSBvdXRzaWRlIG9m
IHNoYWRvdyBib3VuZGFyeS4KK01vdmluZyBmb2N1cyBmcm9tIGRpdkIgdG8gZGl2QworUEFTUyBk
aXNwYXRjaGVkRXZlbnQoImZvY3VzIikgaXMgWyJkaXZDKEBkaXZBKShjYXB0dXJpbmcgcGhhc2Up
IiwgImRpdkMoQGRpdkMpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJkaXZC
KEBkaXZBKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkIoQGRpdkIpIl0KKworT2xkIGZvY3VzZWQg
bm9kZSBhbmQgbmV3IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBzZXBhcmF0ZWQgc3VidHJlZXMsIGNy
b3NzaW5nIHNoYWRvdyBib3VuZGFyaWVzLiBNYWtpbmcgc3VyZSB0aGF0IGFuIGV2ZW50IGlzIG5v
dCBkaXNwYXRjaGVkIGJleW9uZCB0aGUgbG93ZXN0IGNvbW1vbiBib3VuZGFyeS4KK01vdmluZyBm
b2N1cyBmcm9tIHNoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkggdG8gc2hhZG93RC9zaGFkb3dL
L2RpdkwKK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpIGlzIFsic2hhZG93SyhAZGl2Siko
Y2FwdHVyaW5nIHBoYXNlKSIsICJzaGFkb3dLKEBzaGFkb3dLKShjYXB0dXJpbmcgcGhhc2UpIiwg
ImRpdkwoQGRpdkwpIl0KK1BBU1MgZGlzcGF0Y2hlZEV2ZW50KCJibHVyIikgaXMgWyJzaGFkb3dG
KEBkaXZFKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0YoQHNoYWRvd0YpKGNhcHR1cmluZyBw
aGFzZSkiLCAic2hhZG93RyhAc2hhZG93RykoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZIKEBkaXZI
KSJdCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZl
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWJvdW5kYXJ5LWV2
ZW50cy5odG1sCmluZGV4IDcyZTg5NzJiMmUwNjAxODI5Y2IxMWU5NDQyMDQ2OGIyNGU3MDgzYjYu
LmE4ZTI4YzhkMTU1YWE3NTEzY2MwYjU3OTY1MTc1NjBjYzQwOGY0NjQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctYm91bmRhcnktZXZlbnRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1ib3VuZGFyeS1ldmVudHMuaHRt
bApAQCAtNTcsNiArNTcsOCBAQCBmdW5jdGlvbiByZWNvcmRFdmVudChldmVudCkKICAgICAgICAg
ZXZlbnRTdHJpbmcgKz0gJyg8LScgKyBldmVudC5yZWxhdGVkVGFyZ2V0LmlkICsgJyknOwogICAg
IGlmIChldmVudC5jdXJyZW50VGFyZ2V0KQogICAgICAgICBldmVudFN0cmluZyArPSAnKEAnICsg
ZXZlbnQuY3VycmVudFRhcmdldC5pZCArICcpJzsKKyAgICBpZiAoZXZlbnQuZXZlbnRQaGFzZSA9
PSAxKQorICAgICAgICBldmVudFN0cmluZyArPSAnKGNhcHR1cmluZyBwaGFzZSknOwogICAgIGV2
ZW50UmVjb3Jkc1tldmVudFR5cGVdLnB1c2goZXZlbnRTdHJpbmcpOwogfQogCkBAIC05Nyw2ICs5
OSw4IEBAIGZ1bmN0aW9uIHByZXBhcmVEb21UcmVlKHBhcmVudCkKICAgICAgICAgZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCdtb3VzZW91dCcsIHJlY29yZEV2ZW50LCBmYWxzZSk7CiAgICAgICAg
IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIHJlY29yZEV2ZW50LCBmYWxzZSk7
CiAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNvdXQnLCByZWNvcmRFdmVu
dCwgZmFsc2UpOworICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgcmVj
b3JkRXZlbnQsIHRydWUpOyAgLy8gY2FwdHVyaW5nIHBoYXNlCisgICAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcignYmx1cicsIHJlY29yZEV2ZW50LCB0cnVlKTsgIC8vIGNhcHR1cmluZyBw
aGFzZQogICAgIH0KIH0KIApAQCAtMTkxLDYgKzE5NSwxNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAog
ICAgIC8vIE9taXR0ZWQgdGVzdCBjYXNlcyB3aGVyZSBlaXRoZXIgYSBvbGRGb2N1c2VkTm9kZSBv
ciBuZXdGb2N1c2VkTm9kZSBpcyBhbiBhbmNlc3RvciBvZiB0aGUgb3RoZXIuCiAgICAgLy8gRHVl
IHRvIGEgZm9jdXMgdHJhbnNmZXIgbWVjaGFuaXNtIG9uIHNoYWRvdyBob3N0cywgYSBmb2N1c2Vk
IG5vZGUgc2hvdWxkIGJlIGEgbGVhZiBub2RlIGluIGdlbmVyYWwuCisKKyAgICAvLyBUZXN0IGZv
ciBmb2N1cy9ibHVyIGV2ZW50cy4gRXZlbnQgbGlzdG5lcnMgc2hvdWxkIGJlIHJlZ2lzdGVyZCBv
biBjYXB0dXJlaW5nIHBoYXNlLgorICAgIG1vdmVGb2N1cygnZGl2QicsICdkaXZDJywKKyAgICAg
ICAgICAgICAgJ01vdmUgZm9jdXMgZnJvbSBhIG5vZGUgdG8gaXRzIHNpYmxpbmcgbm9kZS4gQWxs
IG5vZGVzIGFyZSBvdXRzaWRlIG9mIHNoYWRvdyBib3VuZGFyeS4nKTsKKyAgICBzaG91bGRCZSgn
ZGlzcGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1siZGl2QyhAZGl2QSkoY2FwdHVyaW5nIHBoYXNl
KSIsICJkaXZDKEBkaXZDKSJdJyk7CisgICAgc2hvdWxkQmUoJ2Rpc3BhdGNoZWRFdmVudCgiYmx1
ciIpJywgJ1siZGl2QihAZGl2QSkoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZCKEBkaXZCKSJdJyk7
CisKKyAgICBtb3ZlRm9jdXMoJ3NoYWRvd0Qvc2hhZG93Ri9zaGFkb3dHL2RpdkgnLCAnc2hhZG93
RC9zaGFkb3dLL2RpdkwnLAorICAgICAgICAgICAgICAnT2xkIGZvY3VzZWQgbm9kZSBhbmQgbmV3
IGZvY3VzZWQgbm9kZSBleGlzdCBpbiBzZXBhcmF0ZWQgc3VidHJlZXMsIGNyb3NzaW5nIHNoYWRv
dyBib3VuZGFyaWVzLiBNYWtpbmcgc3VyZSB0aGF0IGFuIGV2ZW50IGlzIG5vdCBkaXNwYXRjaGVk
IGJleW9uZCB0aGUgbG93ZXN0IGNvbW1vbiBib3VuZGFyeS4nKTsKKyAgICBzaG91bGRCZSgnZGlz
cGF0Y2hlZEV2ZW50KCJmb2N1cyIpJywgJ1sic2hhZG93SyhAZGl2SikoY2FwdHVyaW5nIHBoYXNl
KSIsICJzaGFkb3dLKEBzaGFkb3dLKShjYXB0dXJpbmcgcGhhc2UpIiwgImRpdkwoQGRpdkwpIl0n
KTsKKyAgICBzaG91bGRCZSgnZGlzcGF0Y2hlZEV2ZW50KCJibHVyIiknLCAnWyJzaGFkb3dGKEBk
aXZFKShjYXB0dXJpbmcgcGhhc2UpIiwgInNoYWRvd0YoQHNoYWRvd0YpKGNhcHR1cmluZyBwaGFz
ZSkiLCAic2hhZG93RyhAc2hhZG93RykoY2FwdHVyaW5nIHBoYXNlKSIsICJkaXZIKEBkaXZIKSJd
Jyk7CiB9CiAKIHRlc3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYWU4MjEyMjgyMDNmY2ZjNWNlZjM2NGY3
YjAzM2MzZTQ2MmJhMGQ1Li44MjYwMmQ5NWVkYzkwYzM1NTU0ZjgzN2RmYjQ0NTUxOTkyMTIzMDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDgtMTcgIEhheWF0byBJdG8gIDxo
YXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcGxlbWVudCBwcm9wZXIgaGFuZGxpbmcg
b2YgZm9jdXMvYmx1ciBldmVudHMgaW4gcmVnYXJkIHRvIHNoYWRvdyBET00gYm91bmRhcmllcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNDIxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
cyBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvci9CbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yIHNv
CisgICAgICAgIHRoYXQgZm9jdXMvYmx1ZSBldmVudHMgYXJlIHN0b3BwZWQgYXQgdGhlIGxvd2Vz
dCBjb21tb24gc2hhZG93IGJvdW5kYXJ5LgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRGb2N1c2VkTm9kZSk6CisgICAgICAgICog
ZG9tL0V2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0
b3I6OkZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkZvY3Vz
RXZlbnREaXNwYXRjaE1lZGlhdG9yOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpC
bHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpCbHVyRXZlbnREaXNwYXRjaE1lZGlhdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQp
OgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpkaXNwYXRjaEJsdXJFdmVudCk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQpOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNo
Rm9jdXNFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2
ZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAg
ICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0
Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKToKKwogMjAxMS0wOC0xNiAgSmVmZnJleSBQ
ZmF1ICA8anBmYXVAYXBwbGUuY29tPgogCiAgICAgICAgIE5ldyBYTUwgcGFyc2VyOiBSZXBsYWNl
IGFzc2VydGlvbnMgcmVnYXJkaW5nIGNoYXJhY3RlciBkYXRhIGluIHRoZSBwcm9sb2cgd2l0aCBw
cm9wZXIgY2hlY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmNTVhMGI1ODZmYzczYmMy
YmY0OTBmZWFhYzZjMDhjZmE1MzNlN2M1Li5kMGY5ODQ5ZjI4NjliNTA5YWFmN2FhNTA0NzUyZjJk
NjY2MzUzNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMxMjUsNyArMzEyNSw3IEBA
IGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWROb2RlKFBhc3NSZWZQdHI8Tm9kZT4gcHJwTmV3Rm9j
dXNlZE5vZGUpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBEaXNwYXRjaCB0aGUgYmx1ciBldmVu
dCBhbmQgbGV0IHRoZSBub2RlIGRvIGFueSBvdGhlciBibHVyIHJlbGF0ZWQgYWN0aXZpdGllcyAo
aW1wb3J0YW50IGZvciB0ZXh0IGZpZWxkcykKLSAgICAgICAgb2xkRm9jdXNlZE5vZGUtPmRpc3Bh
dGNoQmx1ckV2ZW50KCk7CisgICAgICAgIG9sZEZvY3VzZWROb2RlLT5kaXNwYXRjaEJsdXJFdmVu
dChuZXdGb2N1c2VkTm9kZSk7CiAKICAgICAgICAgaWYgKG1fZm9jdXNlZE5vZGUpIHsKICAgICAg
ICAgICAgIC8vIGhhbmRsZXIgc2hpZnRlZCBmb2N1cwpAQCAtMzE2OSw3ICszMTY5LDcgQEAgYm9v
bCBEb2N1bWVudDo6c2V0Rm9jdXNlZE5vZGUoUGFzc1JlZlB0cjxOb2RlPiBwcnBOZXdGb2N1c2Vk
Tm9kZSkKICAgICAgICAgbV9mb2N1c2VkTm9kZSA9IG5ld0ZvY3VzZWROb2RlOwogCiAgICAgICAg
IC8vIERpc3BhdGNoIHRoZSBmb2N1cyBldmVudCBhbmQgbGV0IHRoZSBub2RlIGRvIGFueSBvdGhl
ciBmb2N1cyByZWxhdGVkIGFjdGl2aXRpZXMgKGltcG9ydGFudCBmb3IgdGV4dCBmaWVsZHMpCi0g
ICAgICAgIG1fZm9jdXNlZE5vZGUtPmRpc3BhdGNoRm9jdXNFdmVudCgpOworICAgICAgICBtX2Zv
Y3VzZWROb2RlLT5kaXNwYXRjaEZvY3VzRXZlbnQob2xkRm9jdXNlZE5vZGUpOwogCiAgICAgICAg
IGlmIChtX2ZvY3VzZWROb2RlICE9IG5ld0ZvY3VzZWROb2RlKSB7CiAgICAgICAgICAgICAvLyBo
YW5kbGVyIHNoaWZ0ZWQgZm9jdXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnQuY3BwCmluZGV4IDhkYjVhMTIzYWE5NjVi
YmZhZjVlNWE2OTI5MWNlODE3ZWU0ODg0N2QuLjkxMzc5NzEwZWYzOWUzZGM4MGVmOThhZjU4N2U4
ZDAxYjUwNDA4MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMzA4LDQgKzMwOCwzOSBAQCBib29s
IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNoZXIqIGRp
c3BhdGNoZXIpIGNvbnN0CiAgICAgcmV0dXJuIGRpc3BhdGNoZXItPmRpc3BhdGNoRXZlbnQobV9l
dmVudC5nZXQoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8Rm9jdXNFdmVudERpc3BhdGNoTWVkaWF0b3I+
IEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yOjpjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBvbGRG
b2N1c2VkTm9kZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZvY3VzRXZlbnREaXNwYXRj
aE1lZGlhdG9yKG9sZEZvY3VzZWROb2RlKSk7Cit9CisKK0ZvY3VzRXZlbnREaXNwYXRjaE1lZGlh
dG9yOjpGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3Vz
ZWROb2RlKQorICAgIDogRXZlbnREaXNwYXRjaE1lZGlhdG9yKEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSkpCisgICAgLCBtX29sZEZvY3VzZWROb2Rl
KG9sZEZvY3VzZWROb2RlKQoreworfQorCitib29sIEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9y
OjpkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciogZGlzcGF0Y2hlcikgY29uc3QKK3sKKyAg
ICBkaXNwYXRjaGVyLT5hZGp1c3RSZWxhdGVkVGFyZ2V0KGV2ZW50KCksIG1fb2xkRm9jdXNlZE5v
ZGUpOworICAgIHJldHVybiBFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNoRXZlbnQoZGlz
cGF0Y2hlcik7Cit9CisKK1Bhc3NSZWZQdHI8Qmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4gQmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNl
ZE5vZGUpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbHVyRXZlbnREaXNwYXRjaE1lZGlh
dG9yKG5ld0ZvY3VzZWROb2RlKSk7Cit9CisKK0JsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OkJs
dXJFdmVudERpc3BhdGNoTWVkaWF0b3IoUGFzc1JlZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkK
KyAgICA6IEV2ZW50RGlzcGF0Y2hNZWRpYXRvcihFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5i
bHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkpCisgICAgLCBtX25ld0ZvY3VzZWROb2RlKG5ld0ZvY3Vz
ZWROb2RlKQoreworfQorCitib29sIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmRpc3BhdGNo
RXZlbnQoRXZlbnREaXNwYXRjaGVyKiBkaXNwYXRjaGVyKSBjb25zdAoreworICAgIGRpc3BhdGNo
ZXItPmFkanVzdFJlbGF0ZWRUYXJnZXQoZXZlbnQoKSwgbV9uZXdGb2N1c2VkTm9kZSk7CisgICAg
cmV0dXJuIEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6ZGlzcGF0Y2hFdmVudChkaXNwYXRjaGVyKTsK
K30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCmluZGV4IGY0NTU3ODEy
YmViYjRlZDQxZGM2NjIxODA1ODIyMzlkYTUwYjQ4ZTEuLjBkNjIxN2NjYWM2OTAxNzk3MDYwODZm
YTY3MWZkN2EyYWM5YmIxYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudC5oCkBAIC0yMzAsNiArMjMwLDI0IEBAIGlu
bGluZSB2b2lkIEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6c2V0RXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCiAgICAgbV9ldmVudCA9IGV2ZW50OwogfQogCitjbGFzcyBGb2N1c0V2ZW50RGlz
cGF0Y2hNZWRpYXRvciA6IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3IgeworcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yPiBjcmVhdGUo
UGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7Citwcml2YXRlOgorICAgIGV4cGxpY2l0
IEZvY3VzRXZlbnREaXNwYXRjaE1lZGlhdG9yKFBhc3NSZWZQdHI8Tm9kZT4gb2xkRm9jdXNlZE5v
ZGUpOworICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50RGlzcGF0Y2hlciopIGNv
bnN0OworICAgIFJlZlB0cjxOb2RlPiBtX29sZEZvY3VzZWROb2RlOworfTsKKworY2xhc3MgQmx1
ckV2ZW50RGlzcGF0Y2hNZWRpYXRvciA6IHB1YmxpYyBFdmVudERpc3BhdGNoTWVkaWF0b3Igewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I+
IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IG5ld0ZvY3VzZWROb2RlKTsKK3ByaXZhdGU6CisgICAg
ZXhwbGljaXQgQmx1ckV2ZW50RGlzcGF0Y2hNZWRpYXRvcihQYXNzUmVmUHRyPE5vZGU+IG5ld0Zv
Y3VzZWROb2RlKTsKKyAgICB2aXJ0dWFsIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudERpc3BhdGNo
ZXIqKSBjb25zdDsKKyAgICBSZWZQdHI8Tm9kZT4gbV9uZXdGb2N1c2VkTm9kZTsKK307CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEV2ZW50X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCBhZWI2MmUwZjg0ZGVhOTdkNDI4MzE5OThkMDljNzcxNzBiYmRjMjEzLi5hMDg4OGNjYzVk
ZDM3MTBlN2U4OTNmODBlNDI0MWE5NjcwMzExOWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yNzc3
LDI0ICsyNzc3LDI0IEBAIGJvb2wgTm9kZTo6ZGlzcGF0Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgcmV0dXJuIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2hFdmVudCh0aGlzLCBXaGVlbEV2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKGV2ZW50LCBk
b2N1bWVudCgpLT5kZWZhdWx0VmlldygpKSk7CiB9CiAKLXZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1
c0V2ZW50KCkKK3ZvaWQgTm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFBhc3NSZWZQdHI8Tm9kZT4g
b2xkRm9jdXNlZE5vZGUpCiB7CiAgICAgaWYgKGRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAg
ZG9jdW1lbnQoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPmVsZW1lbnREaWRGb2N1cyh0
aGlzKTsKICAgICAKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2hFdmVudCh0aGlzLCBGb2N1c0V2ZW50RGlzcGF0Y2hNZWRpYXRvcjo6Y3JlYXRlKG9sZEZvY3Vz
ZWROb2RlKSk7CiB9CiAKIHZvaWQgTm9kZTo6d2lsbEJsdXIoKQogewogfQogCi12b2lkIE5vZGU6
OmRpc3BhdGNoQmx1ckV2ZW50KCkKK3ZvaWQgTm9kZTo6ZGlzcGF0Y2hCbHVyRXZlbnQoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdGb2N1c2VkTm9kZSkKIHsKICAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgp
KQogICAgICAgICBkb2N1bWVudCgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+ZWxlbWVu
dERpZEJsdXIodGhpcyk7Ci0gICAgCi0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworCisgICAgRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaEV2ZW50KHRoaXMsIEJsdXJFdmVudERpc3BhdGNoTWVkaWF0b3I6OmNyZWF0
ZShuZXdGb2N1c2VkTm9kZSkpOwogfQogCiB2b2lkIE5vZGU6OmRpc3BhdGNoQ2hhbmdlRXZlbnQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKaW5kZXggNmViNzY3OWFmY2E2NTYwZmNkOWE2NzdlMjEwYmY5Nzg0ZTA1YTc0
YS4uNDQ1ZDgxYjQ5MWM4ZGM2NTBmMTE2NjQzMDRmZTVmOGFhN2RkZWQ0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CkBAIC01NjIsOSArNTYyLDkgQEAgcHVibGljOgogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBpbnQgY2xpY2tDb3VudCA9IDAsIE5vZGUqIHJlbGF0ZWRUYXJnZXQgPSAwKTsKICAgICB2b2lk
IGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50
LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRy
dWUpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOworICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9k
ZSk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCbHVyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoQmx1ckV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaENo
YW5nZUV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW5wdXRFdmVudCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCBm
MzY5N2NlMTcxNTRmMTkzY2M0YThkOTFkNjA4ZDQ1MWFmYTc5YmI2Li5kZTJmM2I3NTg1NzE2NzI2
OTBhZDNjY2RjZmRiZGM1ZDVjN2JkMDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTQzMCw5ICs0MzAsOSBAQCB2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3IpCiAg
ICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGVycm9yKTsKIH0KIAotdm9pZCBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudCgpCit2b2lkIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpCiB7Ci0gICAgSFRNTEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KCk7CisgICAg
SFRNTEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KG5ld0ZvY3VzZWROb2RlKTsKICAgICBoaWRl
VmlzaWJsZVZhbGlkYXRpb25NZXNzYWdlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMWIzYTVmY2I2NDU0ODk1Y2JmYjMwODhmMzAz
NWM1YjAzODkzM2FlNi4uZTA0MmFkMzhlOGEwZGFiOWMzMGQ3NDdhYzc1ZjMxNzQyMDQ5MzY1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTEy
MSw3ICsxMjEsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUo
U3R5bGVDaGFuZ2UpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9j
dXNlZE5vZGUpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKIAogICAgIC8vIFRoaXMgbXVz
dCBiZSBjYWxsZWQgYW55IHRpbWUgdGhlIHJlc3VsdCBvZiB3aWxsVmFsaWRhdGUoKSBoYXMgY2hh
bmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggODdh
YzY0ZjQwYmRjMDVmODVmZjNkZjVlZmRmZmI1MjRkMGFhYTBjYy4uNTNjMGRhNzMwOGQxZGJhZDM1
ZmZmMzM4YTgyYWZmMzE3NWIwNWZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAKQEAgLTM2NywxNiArMzY3LDE2IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnJlc2V0KCkKICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKIH0KIAotdm9pZCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OmRpc3BhdGNoRm9jdXNFdmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQogewog
ICAgIFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChtX2RhdGEsIHRoaXMpOwotICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudCgpOwor
ICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChv
bGRGb2N1c2VkTm9kZSk7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoQmx1
ckV2ZW50KCkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFBhc3NS
ZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiB7CiAgICAgU2VsZWN0RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQobV9kYXRhLCB0aGlzKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0
aFN0YXRlOjpkaXNwYXRjaEJsdXJFdmVudCgpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OmRpc3BhdGNoQmx1ckV2ZW50KG5ld0ZvY3VzZWROb2RlKTsKIH0KIAogdm9pZCBI
VE1MU2VsZWN0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNGM3ZDU0MDRkMjkxOGViN2Y3
ZGI2NTU4Njk1NjUzNTI2ZTJkMTllMi4uYTBjNGE5ZDg1NDA2ZmViMGI1MzVhOGQ5MmY0YWY2NGYz
ODlmMDJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTAz
LDggKzEwMyw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5
bGVDaGFuZ2UpOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwotICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5v
ZGUpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggZDUxOWRiMTAyNjgxNWUwYzcxMWQ3MWE3ZTE2ZWM4
YjY3MjYxZTI3ZS4uZDc1Mjk2YWNkNTRhZjkxNjczMTVjYzBlYmRlZmQxMjNlYTMwMGRkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKQEAgLTY0LDIwICs2NCwyMCBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpp
bnNlcnRlZEludG9Eb2N1bWVudCgpCiAgICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFu
Z2VFdmVudChpbml0aWFsVmFsdWUuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogaW5pdGlhbFZh
bHVlKTsKIH0KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6ZGlzcGF0Y2hGb2N1
c0V2ZW50KCkKK3ZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNF
dmVudChQYXNzUmVmUHRyPE5vZGU+IG9sZEZvY3VzZWROb2RlKQogewogICAgIGlmIChzdXBwb3J0
c1BsYWNlaG9sZGVyKCkpCiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eShmYWxz
ZSk7CiAgICAgaGFuZGxlRm9jdXNFdmVudCgpOwotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudCgpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnRXaXRoU3RhdGU6OmRpc3BhdGNoRm9jdXNFdmVudChvbGRGb2N1c2VkTm9kZSk7CiB9CiAKLXZv
aWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KCkKK3ZvaWQg
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFBhc3NSZWZQdHI8
Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpCiB7CiAgICAgaWYgKHN1cHBvcnRzUGxhY2Vob2xkZXIoKSkK
ICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KGZhbHNlKTsKICAgICBoYW5kbGVC
bHVyRXZlbnQoKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpkaXNwYXRj
aEJsdXJFdmVudCgpOworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OmRpc3Bh
dGNoQmx1ckV2ZW50KG5ld0ZvY3VzZWROb2RlKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMjQyYWUw
NTRhYThkMmIyYjc0M2QwNDlkMzAxZjU0YWM3MWM0NTFhYi4uZWZjNGIxMWQzN2U0NWMwMDViMmM1
MGU5NGM3MDRkNWI3OTUwNjg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTAxLDggKzEwMSw4IEBAIHByaXZhdGU6CiAgICAg
aW50IGNvbXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBUZXh0RmllbGRTZWxlY3Rpb25E
aXJlY3Rpb24gY29tcHV0ZVNlbGVjdGlvbkRpcmVjdGlvbigpIGNvbnN0OwogCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJs
dXJFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFzc1JlZlB0
cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2
ZW50KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Rm9jdXNlZE5vZGUpOwogCiAgICAgYm9vbCBpc1BsYWNl
aG9sZGVyRW1wdHkoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
Y3BwCmluZGV4IDM1NzU0ODEyMTg2NTc3ZjE4NWNhMDgzNzQ1NzA1MTE2YmU5Yzk5ZmIuLjVjY2U1
ZDhiYzk3NTNlZWQ0MGE1ZWRhYjI5NjgyN2FlMWY1YWUxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTc3LDEwICs3NywxMCBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgZGlzcGF0Y2hFdmVudHNPbldpbmRvd0FuZEZvY3VzZWROb2RlKERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbAogICAgIH0KIAogICAgIGlmICghZm9jdXNlZCAmJiBkb2N1bWVudC0+Zm9jdXNlZE5v
ZGUoKSkKLSAgICAgICAgZG9jdW1lbnQtPmZvY3VzZWROb2RlKCktPmRpc3BhdGNoQmx1ckV2ZW50
KCk7CisgICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEJsdXJFdmVudCgw
KTsKICAgICBkb2N1bWVudC0+ZGlzcGF0Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGZvY3Vz
ZWQgPyBldmVudE5hbWVzKCkuZm9jdXNFdmVudCA6IGV2ZW50TmFtZXMoKS5ibHVyRXZlbnQsIGZh
bHNlLCBmYWxzZSkpOwogICAgIGlmIChmb2N1c2VkICYmIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgp
KQotICAgICAgICBkb2N1bWVudC0+Zm9jdXNlZE5vZGUoKS0+ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7
CisgICAgICAgIGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpLT5kaXNwYXRjaEZvY3VzRXZlbnQoMCk7
CiB9CiAKIEZvY3VzQ29udHJvbGxlcjo6Rm9jdXNDb250cm9sbGVyKFBhZ2UqIHBhZ2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>