<?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>131237</bug_id>
          
          <creation_ts>2014-04-04 12:14:40 -0700</creation_ts>
          <short_desc>Use preallocated stack reference to store adjacentBacktrackingStart</short_desc>
          <delta_ts>2014-04-06 21:53:57 -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>CSS</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>997663</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-04 12:14:40 -0700</bug_when>
    <thetext>Instead of using push / pop, allocate stack reference in prologue and store adjacentBacktrackingStart to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997666</commentid>
    <comment_count>1</comment_count>
      <attachid>228614</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-04 12:29:31 -0700</bug_when>
    <thetext>Created attachment 228614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997694</commentid>
    <comment_count>2</comment_count>
      <attachid>228614</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-04 15:12:55 -0700</bug_when>
    <thetext>Comment on attachment 228614
Patch

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

Everything looks correct to me.  CQ- because of two nitpicks.

&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:210
&gt; +    bool m_needsAdjacentBacktrackingStart : 1;

You should not use a bit field here.

I would put the field just after m_selectorFragments since it is related to a global state of code generation.

&gt; Source/WebCore/cssjit/StackAllocator.h:63
&gt; +    StackReference push()

The name push() is a bit misleading. I think allocate() or allocateUninitialized() would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997851</commentid>
    <comment_count>3</comment_count>
      <attachid>228665</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-05 00:42:55 -0700</bug_when>
    <thetext>Created attachment 228665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997852</commentid>
    <comment_count>4</comment_count>
      <attachid>228614</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-05 00:46:38 -0700</bug_when>
    <thetext>Comment on attachment 228614
Patch

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

Thank you for your review!
I&apos;ve fixed and attached revised patch.

&gt;&gt; Source/WebCore/cssjit/SelectorCompiler.cpp:210
&gt;&gt; +    bool m_needsAdjacentBacktrackingStart : 1;
&gt; 
&gt; You should not use a bit field here.
&gt; 
&gt; I would put the field just after m_selectorFragments since it is related to a global state of code generation.

Thank you! You&apos;re right.
I&apos;ve removed a bit field. And moved m_needsAdjacentBacktrackingStart to just after m_selectorFragments.

&gt;&gt; Source/WebCore/cssjit/StackAllocator.h:63
&gt;&gt; +    StackReference push()
&gt; 
&gt; The name push() is a bit misleading. I think allocate() or allocateUninitialized() would be better.

Right. I&apos;ve renamed it to allocateUninitialized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997905</commentid>
    <comment_count>5</comment_count>
      <attachid>228665</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-05 12:03:57 -0700</bug_when>
    <thetext>Comment on attachment 228665
Patch

Everything looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997907</commentid>
    <comment_count>6</comment_count>
      <attachid>228665</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-05 12:32:25 -0700</bug_when>
    <thetext>Comment on attachment 228665
Patch

Clearing flags on attachment: 228665

Committed r166834: &lt;http://trac.webkit.org/changeset/166834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997908</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-05 12:32:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998078</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2014-04-06 21:53:57 -0700</bug_when>
    <thetext>Thank you!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228614</attachid>
            <date>2014-04-04 12:29:31 -0700</date>
            <delta_ts>2014-04-05 00:47:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131237-20140405042949.patch</filename>
            <type>text/plain</type>
            <size>11323</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlYzQwOTI4YzE1NjA1
ZjYzZTVkZTcwMmVkZjRmZDdjNzc5ODQ3NS4uMDUzYTJlOTQwOGYwZTc4ZDNhMTMyNDc3MmIzNjc3
MWM3OTkyMmUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA0LTA0ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBwcmVhbGxv
Y2F0ZWQgc3RhY2sgcmVmZXJlbmNlIHRvIHN0b3JlIGFkamFjZW50QmFja3RyYWNraW5nU3RhcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTIzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21w
dXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JD
b21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcik6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0
b3I6OmdlbmVyYXRlRGlyZWN0QWRqYWNlbnRUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2Vu
dEJhY2t0cmFja2luZ1RhaWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2t0cmFja2luZ1RhaWxzSWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpnZW5lcmF0ZVdhbGtUb1ByZXZpb3VzQWRqYWNlbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpsaW5rRmFp
bHVyZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdUYWlsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBjc3NqaXQvU3RhY2tBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0YWNrQWxsb2NhdG9yOjpwdXNoKToKKwogMjAxNC0wNC0wNCAgTWFydGluIEhvY2sg
IDxtaG9ja0BhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gQ2hhbmdlIG9wZXJhdGlvbiBxdWV1
ZSB3aWR0aCB0byBOU09wZXJhdGlvblF1ZXVlRGVmYXVsdE1heENvbmN1cnJlbnRPcGVyYXRpb25D
b3VudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCAw
YjNhOTRiNWRjMWFmYjJlZWY1MzkzYTZmNzhhYjJkZTg3ZGJhZGUyLi4xNzgxYzlhNzY3NzM3YTg3
OTc1YmJhZjMzZWU1ZGZjZDY1NzMyMzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVj
dG9yQ29tcGlsZXIuY3BwCkBAIC0xNjMsNyArMTYzLDcgQEAgY2xhc3MgU2VsZWN0b3JDb2RlR2Vu
ZXJhdG9yIHsKICAgICB2b2lkIG1hcmtQYXJlbnRFbGVtZW50SWZSZXNvbHZpbmdTdHlsZShKU0M6
OkZ1bmN0aW9uUHRyKTsKIAogICAgIHZvaWQgbGlua0ZhaWx1cmVzKEFzc2VtYmxlcjo6SnVtcExp
c3QmIGdsb2JhbEZhaWx1cmVDYXNlcywgQmFja3RyYWNraW5nQWN0aW9uLCBBc3NlbWJsZXI6Okp1
bXBMaXN0JiBsb2NhbEZhaWx1cmVDYXNlcyk7Ci0gICAgdm9pZCBnZW5lcmF0ZUFkamFjZW50QmFj
a3RyYWNraW5nVGFpbChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOworICAgIHZv
aWQgZ2VuZXJhdGVBZGphY2VudEJhY2t0cmFja2luZ1RhaWwoKTsKICAgICB2b2lkIGdlbmVyYXRl
RGVzY2VuZGFudEJhY2t0cmFja2luZ1RhaWwoKTsKICAgICB2b2lkIGdlbmVyYXRlQmFja3RyYWNr
aW5nVGFpbHNJZk5lZWRlZChBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMsIGNvbnN0
IFNlbGVjdG9yRnJhZ21lbnQmKTsKIApAQCAtMjA3LDYgKzIwNyw4IEBAIGNsYXNzIFNlbGVjdG9y
Q29kZUdlbmVyYXRvciB7CiAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBtX2FkamFjZW50QmFja3Ry
YWNraW5nRmFpbHVyZUNhc2VzOwogICAgIEFzc2VtYmxlcjo6SnVtcExpc3QgbV9jbGVhckFkamFj
ZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzOwogCisgICAgYm9vbCBtX25lZWRzQWRqYWNlbnRC
YWNrdHJhY2tpbmdTdGFydCA6IDE7CisKICNpZiBDU1NfU0VMRUNUT1JfSklUX0RFQlVHR0lORwog
ICAgIGNvbnN0IENTU1NlbGVjdG9yKiBtX29yaWdpbmFsU2VsZWN0b3I7CiAjZW5kaWYKQEAgLTMy
Niw2ICszMjgsNyBAQCBpbmxpbmUgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVH
ZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlYwogICAgIDogbV9zdGFja0FsbG9j
YXRvcihtX2Fzc2VtYmxlcikKICAgICAsIG1fc2VsZWN0b3JDb250ZXh0KHNlbGVjdG9yQ29udGV4
dCkKICAgICAsIG1fZnVuY3Rpb25UeXBlKEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVj
a2VyKQorICAgICwgbV9uZWVkc0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQoZmFsc2UpCiAjaWYg
Q1NTX1NFTEVDVE9SX0pJVF9ERUJVR0dJTkcKICAgICAsIG1fb3JpZ2luYWxTZWxlY3Rvcihyb290
U2VsZWN0b3IpCiAjZW5kaWYKQEAgLTYzNCw4ICs2MzcsMTAgQEAgdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmNvbXB1dGVCYWNrdHJhY2tpbmdJbmZvcm1hdGlvbigpCiAgICAgICAgICAgICBm
cmFnbWVudC5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdGbGFnOjpJbmRpcmVjdEFk
amFjZW50RW50cnlQb2ludDsKICAgICAgICAgaWYgKGZyYWdtZW50LnJlbGF0aW9uVG9MZWZ0RnJh
Z21lbnQgIT0gRnJhZ21lbnRSZWxhdGlvbjo6RGVzY2VuZGFudCAmJiBmcmFnbWVudC5yZWxhdGlv
blRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpDaGlsZCAmJiBpc0ZpcnN0QW5j
ZXN0b3IoYW5jZXN0b3JQb3NpdGlvblNpbmNlRGVzY2VuZGFudFJlbGF0aW9uKSkKICAgICAgICAg
ICAgIGZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFja2luZ0ZsYWc6OlNhdmVE
ZXNjZW5kYW50QmFja3RyYWNraW5nU3RhcnQ7Ci0gICAgICAgIGlmIChmcmFnbWVudC5yZWxhdGlv
blRvTGVmdEZyYWdtZW50ID09IEZyYWdtZW50UmVsYXRpb246OkRpcmVjdEFkamFjZW50ICYmIGZy
YWdtZW50LnJlbGF0aW9uVG9SaWdodEZyYWdtZW50ID09IEZyYWdtZW50UmVsYXRpb246OkRpcmVj
dEFkamFjZW50ICYmIGlzRmlyc3RBZGphY2VudChhZGphY2VudFBvc2l0aW9uU2luY2VJbmRpcmVj
dEFkamFjZW50VHJlZVdhbGspKQorICAgICAgICBpZiAoZnJhZ21lbnQucmVsYXRpb25Ub0xlZnRG
cmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2VudCAmJiBmcmFnbWVudC5y
ZWxhdGlvblRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2Vu
dCAmJiBpc0ZpcnN0QWRqYWNlbnQoYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2Vu
dFRyZWVXYWxrKSkgewogICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgfD0g
QmFja3RyYWNraW5nRmxhZzo6U2F2ZUFkamFjZW50QmFja3RyYWNraW5nU3RhcnQ7CisgICAgICAg
ICAgICBtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IHRydWU7CisgICAgICAgIH0K
ICAgICAgICAgaWYgKGZyYWdtZW50LnJlbGF0aW9uVG9MZWZ0RnJhZ21lbnQgIT0gRnJhZ21lbnRS
ZWxhdGlvbjo6RGlyZWN0QWRqYWNlbnQgJiYgbmVlZHNBZGphY2VudFRhaWwpIHsKICAgICAgICAg
ICAgIEFTU0VSVChmcmFnbWVudC5yZWxhdGlvblRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJl
bGF0aW9uOjpEaXJlY3RBZGphY2VudCk7CiAgICAgICAgICAgICBmcmFnbWVudC5iYWNrdHJhY2tp
bmdGbGFncyB8PSBCYWNrdHJhY2tpbmdGbGFnOjpEaXJlY3RBZGphY2VudFRhaWw7CkBAIC02NjMs
NiArNjY4LDkgQEAgdm9pZCBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlU2VsZWN0b3JD
aGVja2VyKCkKICAgICBpZiAobV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KQogICAgICAgICBtX2NoZWNraW5nQ29udGV4dFN0
YWNrUmVmZXJlbmNlID0gbV9zdGFja0FsbG9jYXRvci5wdXNoKGNoZWNraW5nQ29udGV4dFJlZ2lz
dGVyKTsKIAorICAgIGlmIChtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCkKKyAgICAg
ICAgbV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0ID0gbV9zdGFja0FsbG9jYXRvci5wdXNoKCk7
CisKICAgICBBc3NlbWJsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKIAogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX3NlbGVjdG9yRnJhZ21lbnRzLnNpemUoKTsgKytpKSB7CkBAIC02
OTAsMjYgKzY5OCwzMSBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVTZWxl
Y3RvckNoZWNrZXIoKQogICAgIG1fcmVnaXN0ZXJBbGxvY2F0b3IuZGVhbGxvY2F0ZVJlZ2lzdGVy
KGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpOwogCiAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1
bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgIC8vIFN1Y2Nlc3Mu
Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSksIHJl
dHVyblJlZ2lzdGVyKTsKLSAgICAgICAgaWYgKCFyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJz
KQorICAgICAgICBpZiAoIW1fbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0ICYmICFyZXNl
cnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAvLyBTdWNjZXNzLgorICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigxKSwgcmV0
dXJuUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIucmV0KCk7CiAKLSAgICAgICAg
Ly8gRmFpbHVyZS4KLSAgICAgICAgaWYgKCFmYWlsdXJlQ2FzZXMuZW1wdHkoKSkgewotICAgICAg
ICAgICAgQXNzZW1ibGVyOjpKdW1wIHNraXBGYWlsdXJlQ2FzZTsKLSAgICAgICAgICAgIGlmIChy
ZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQotICAgICAgICAgICAgICAgIHNraXBGYWlsdXJl
Q2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKLQotICAgICAgICAgICAgZmFpbHVyZUNhc2VzLmxp
bmsoJm1fYXNzZW1ibGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVy
OjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKLQotICAgICAgICAgICAgaWYgKCFy
ZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQorICAgICAgICAgICAgLy8gRmFpbHVyZS4KKyAg
ICAgICAgICAgIGlmICghZmFpbHVyZUNhc2VzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBm
YWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKICAg
ICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKLSAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFN1Y2Nlc3MuCisgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDEpLCByZXR1
cm5SZWdpc3Rlcik7CisKKyAgICAgICAgICAgIC8vIEZhaWx1cmUuCisgICAgICAgICAgICBpZiAo
IWZhaWx1cmVDYXNlcy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQXNzZW1ibGVyOjpKdW1w
IHNraXBGYWlsdXJlQ2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKKyAgICAgICAgICAgICAgICBm
YWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOworICAgICAgICAgICAgICAgIG1fYXNzZW1i
bGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKICAg
ICAgICAgICAgICAgICBza2lwRmFpbHVyZUNhc2UubGluaygmbV9hc3NlbWJsZXIpOwotICAgICAg
ICB9Ci0gICAgICAgIGlmIChyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKSB7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX25lZWRzQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFy
dCkKKyAgICAgICAgICAgICAgICBtX3N0YWNrQWxsb2NhdG9yLnBvcEFuZERpc2NhcmRVcFRvKG1f
YWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7CiAgICAgICAgICAgICBtX3JlZ2lzdGVyQWxsb2Nh
dG9yLnJlc3RvcmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhtX3N0YWNrQWxsb2NhdG9yKTsKICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOwogICAgICAgICB9CkBAIC04MzAsOCArODQzLDEwIEBA
IHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZURpcmVjdEFkamFjZW50VHJlZVdh
bGtlcihBc3NlbWJsZXI6Okp1bXBMaXN0CiAgICAgZ2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcobWF0
Y2hpbmdGYWlsdXJlQ2FzZXMsIGZyYWdtZW50KTsKICAgICBsaW5rRmFpbHVyZXMoZmFpbHVyZUNh
c2VzLCBmcmFnbWVudC5tYXRjaGluZ0JhY2t0cmFja2luZ0FjdGlvbiwgbWF0Y2hpbmdGYWlsdXJl
Q2FzZXMpOwogCi0gICAgaWYgKGZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzICYgQmFja3RyYWNr
aW5nRmxhZzo6U2F2ZUFkamFjZW50QmFja3RyYWNraW5nU3RhcnQpCi0gICAgICAgIG1fYWRqYWNl
bnRCYWNrdHJhY2tpbmdTdGFydCA9IG1fc3RhY2tBbGxvY2F0b3IucHVzaChlbGVtZW50QWRkcmVz
c1JlZ2lzdGVyKTsKKyAgICBpZiAoZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJh
Y2tpbmdGbGFnOjpTYXZlQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCkgeworICAgICAgICB1bnNp
Z25lZCBvZmZzZXRUb0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQgPSBtX3N0YWNrQWxsb2NhdG9y
Lm9mZnNldFRvU3RhY2tSZWZlcmVuY2UobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuc3RvcmVQdHIoZWxlbWVudEFkZHJlc3NSZWdpc3RlciwgQXNzZW1i
bGVyOjpBZGRyZXNzKEFzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9mZnNldFRvQWRq
YWNlbnRCYWNrdHJhY2tpbmdTdGFydCkpOworICAgIH0KIH0KIAogdm9pZCBTZWxlY3RvckNvZGVH
ZW5lcmF0b3I6OmdlbmVyYXRlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrZXIoQXNzZW1ibGVyOjpK
dW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmcmFnbWVudCkK
QEAgLTkyNSwyNiArOTQwLDE3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpsaW5rRmFp
bHVyZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZ2xvYmFsRmFpbHVyZUNhc2VzCiAgICAgfQogfQog
Ci12b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJhY2t0cmFja2lu
Z1RhaWwoQXNzZW1ibGVyOjpKdW1wTGlzdCYgc3VjY2Vzc0Nhc2VzKQordm9pZCBTZWxlY3RvckNv
ZGVHZW5lcmF0b3I6OmdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKCkKIHsKLSAgICBT
dGFja0FsbG9jYXRvciBzdWNjZXNzU3RhY2sgPSBtX3N0YWNrQWxsb2NhdG9yOwotICAgIFN0YWNr
QWxsb2NhdG9yIHJlY292ZXJ5U3RhY2sgPSBtX3N0YWNrQWxsb2NhdG9yOwotICAgIFN0YWNrQWxs
b2NhdG9yIGZhaWx1cmVTdGFjayA9IG1fc3RhY2tBbGxvY2F0b3I7Ci0KLSAgICBzdWNjZXNzU3Rh
Y2sucG9wQW5kRGlzY2FyZChtX2FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpOwotICAgIHN1Y2Nl
c3NDYXNlcy5hcHBlbmQobV9hc3NlbWJsZXIuanVtcCgpKTsKLQogICAgIC8vIFJlY292ZXJpbmcg
dGFpbC4KICAgICBtX2FkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzLmxpbmsoJm1fYXNz
ZW1ibGVyKTsKICAgICBtX2FkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzLmNsZWFyKCk7
Ci0gICAgcmVjb3ZlcnlTdGFjay5wb3AobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0LCBlbGVt
ZW50QWRkcmVzc1JlZ2lzdGVyKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRUb0FkamFjZW50QmFja3Ry
YWNraW5nU3RhcnQgPSBtX3N0YWNrQWxsb2NhdG9yLm9mZnNldFRvU3RhY2tSZWZlcmVuY2UobV9h
ZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKKyAgICBtX2Fzc2VtYmxlci5sb2FkUHRyKEFzc2Vt
Ymxlcjo6QWRkcmVzcyhBc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBvZmZzZXRUb0Fk
amFjZW50QmFja3RyYWNraW5nU3RhcnQpLCBlbGVtZW50QWRkcmVzc1JlZ2lzdGVyKTsKICAgICBt
X2Fzc2VtYmxlci5qdW1wKG1faW5kaXJlY3RBZGphY2VudEVudHJ5UG9pbnQpOwogCiAgICAgLy8g
VG90YWwgZmFpbHVyZSB0YWlsLgogICAgIG1fY2xlYXJBZGphY2VudEJhY2t0cmFja2luZ0ZhaWx1
cmVDYXNlcy5saW5rKCZtX2Fzc2VtYmxlcik7Ci0gICAgZmFpbHVyZVN0YWNrLnBvcEFuZERpc2Nh
cmQobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKLQotICAgIG1fc3RhY2tBbGxvY2F0b3Iu
bWVyZ2Uoc3RkOjptb3ZlKHN1Y2Nlc3NTdGFjayksIHN0ZDo6bW92ZShyZWNvdmVyeVN0YWNrKSwg
c3RkOjptb3ZlKGZhaWx1cmVTdGFjaykpOwogfQogCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRv
cjo6Z2VuZXJhdGVEZXNjZW5kYW50QmFja3RyYWNraW5nVGFpbCgpCkBAIC05NTksMTUgKzk2NSwx
NSBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVEZXNjZW5kYW50QmFja3Ry
YWNraW5nVGFpbCgpCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVCYWNrdHJh
Y2tpbmdUYWlsc0lmTmVlZGVkKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVDYXNlcywgY29u
c3QgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQpCiB7CiAgICAgaWYgKGZyYWdtZW50LmJhY2t0
cmFja2luZ0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6RGlyZWN0QWRqYWNlbnRUYWlsICYmIGZy
YWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6RGVzY2VuZGFudFRh
aWwpIHsKLSAgICAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBzdWNjZXNzQ2FzZXM7Ci0gICAgICAg
IGdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKHN1Y2Nlc3NDYXNlcyk7CisgICAgICAg
IEFzc2VtYmxlcjo6SnVtcCBub3JtYWxDYXNlID0gbV9hc3NlbWJsZXIuanVtcCgpOworICAgICAg
ICBnZW5lcmF0ZUFkamFjZW50QmFja3RyYWNraW5nVGFpbCgpOwogICAgICAgICBnZW5lcmF0ZURl
c2NlbmRhbnRCYWNrdHJhY2tpbmdUYWlsKCk7Ci0gICAgICAgIHN1Y2Nlc3NDYXNlcy5saW5rKCZt
X2Fzc2VtYmxlcik7CisgICAgICAgIG5vcm1hbENhc2UubGluaygmbV9hc3NlbWJsZXIpOwogICAg
IH0gZWxzZSBpZiAoZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tpbmdGbGFn
OjpEaXJlY3RBZGphY2VudFRhaWwpIHsKLSAgICAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBzdWNj
ZXNzQ2FzZXM7Ci0gICAgICAgIGdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKHN1Y2Nl
c3NDYXNlcyk7CisgICAgICAgIEFzc2VtYmxlcjo6SnVtcCBub3JtYWxDYXNlID0gbV9hc3NlbWJs
ZXIuanVtcCgpOworICAgICAgICBnZW5lcmF0ZUFkamFjZW50QmFja3RyYWNraW5nVGFpbCgpOwog
ICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKG1fYXNzZW1ibGVyLmp1bXAoKSk7Ci0gICAgICAg
IHN1Y2Nlc3NDYXNlcy5saW5rKCZtX2Fzc2VtYmxlcik7CisgICAgICAgIG5vcm1hbENhc2UubGlu
aygmbV9hc3NlbWJsZXIpOwogICAgIH0gZWxzZSBpZiAoZnJhZ21lbnQuYmFja3RyYWNraW5nRmxh
Z3MgJiBCYWNrdHJhY2tpbmdGbGFnOjpEZXNjZW5kYW50VGFpbCkgewogICAgICAgICBBc3NlbWJs
ZXI6Okp1bXAgbm9ybWFsQ2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKICAgICAgICAgZ2VuZXJh
dGVEZXNjZW5kYW50QmFja3RyYWNraW5nVGFpbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1N0YWNrQWxsb2NhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tB
bGxvY2F0b3IuaAppbmRleCA0YTdjNmU1ZjVhNDBhOTY3Zjc0NjBkMjVhY2NkM2Y5M2EzNzFjNTBh
Li5iZGFhZTNlZjk4NDhiYjVjMjk1MGY2NTRjODdjZDA1MDc0MTU1YTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaApAQCAtNjAsNiArNjAsMTQgQEAgY2xhc3MgU3RhY2tB
bGxvY2F0b3IgewogICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9oYXNGdW5jdGlvbkNhbGxQYWRk
aW5nKTsKICAgICB9CiAKKyAgICBTdGFja1JlZmVyZW5jZSBwdXNoKCkKKyAgICB7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUKCFtX2hhc0Z1bmN0aW9uQ2FsbFBhZGRpbmcpOworICAgICAgICBtX2Fz
c2VtYmxlci5hZGRQdHJOb0ZsYWdzKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMigt
OCksIEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsKKyAgICAgICAg
bV9vZmZzZXRGcm9tVG9wICs9IDg7CisgICAgICAgIHJldHVybiBTdGFja1JlZmVyZW5jZShtX29m
ZnNldEZyb21Ub3ApOworICAgIH0KKwogICAgIFN0YWNrUmVmZXJlbmNlIHB1c2goSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCByZWdpc3RlcklEKQogICAgIHsKICAgICAgICAgUkVMRUFT
RV9BU1NFUlQoIW1faGFzRnVuY3Rpb25DYWxsUGFkZGluZyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228665</attachid>
            <date>2014-04-05 00:42:55 -0700</date>
            <delta_ts>2014-04-05 12:32:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131237-20140405164315.patch</filename>
            <type>text/plain</type>
            <size>11349</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRlYzQwOTI4YzE1NjA1
ZjYzZTVkZTcwMmVkZjRmZDdjNzc5ODQ3NS4uOTczOGFjNWY4M2YwMmQ0ZWRmMTFlYjU3MTc5M2Uw
ZWYyOTcwZmQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA0LTA1ICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFVzZSBwcmVhbGxv
Y2F0ZWQgc3RhY2sgcmVmZXJlbmNlIHRvIHN0b3JlIGFkamFjZW50QmFja3RyYWNraW5nU3RhcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTIzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxl
cjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpTZWxlY3RvckNvZGVHZW5lcmF0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpjb21w
dXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JD
b21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcik6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0
b3I6OmdlbmVyYXRlRGlyZWN0QWRqYWNlbnRUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2Vu
dEJhY2t0cmFja2luZ1RhaWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6
U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2t0cmFja2luZ1RhaWxzSWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpnZW5lcmF0ZVdhbGtUb1ByZXZpb3VzQWRqYWNlbnQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpsaW5rRmFp
bHVyZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6U2Vs
ZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdUYWlsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBjc3NqaXQvU3RhY2tBbGxvY2F0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0YWNrQWxsb2NhdG9yOjphbGxvY2F0ZVVuaW5pdGlhbGl6ZWQpOgorCiAyMDE0LTA0
LTA0ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBDaGFu
Z2Ugb3BlcmF0aW9uIHF1ZXVlIHdpZHRoIHRvIE5TT3BlcmF0aW9uUXVldWVEZWZhdWx0TWF4Q29u
Y3VycmVudE9wZXJhdGlvbkNvdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0
L1NlbGVjdG9yQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuY3BwCmluZGV4IDBiM2E5NGI1ZGMxYWZiMmVlZjUzOTNhNmY3OGFiMmRlODdkYmFkZTIu
LjU3YmRmMjYxMDFhMjBkNDUyMzBkOWY1MmY5NGQyMDFkNWIzNWVjZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKQEAgLTE2Myw3ICsxNjMsNyBAQCBjbGFz
cyBTZWxlY3RvckNvZGVHZW5lcmF0b3IgewogICAgIHZvaWQgbWFya1BhcmVudEVsZW1lbnRJZlJl
c29sdmluZ1N0eWxlKEpTQzo6RnVuY3Rpb25QdHIpOwogCiAgICAgdm9pZCBsaW5rRmFpbHVyZXMo
QXNzZW1ibGVyOjpKdW1wTGlzdCYgZ2xvYmFsRmFpbHVyZUNhc2VzLCBCYWNrdHJhY2tpbmdBY3Rp
b24sIEFzc2VtYmxlcjo6SnVtcExpc3QmIGxvY2FsRmFpbHVyZUNhc2VzKTsKLSAgICB2b2lkIGdl
bmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1
cmVDYXNlcyk7CisgICAgdm9pZCBnZW5lcmF0ZUFkamFjZW50QmFja3RyYWNraW5nVGFpbCgpOwog
ICAgIHZvaWQgZ2VuZXJhdGVEZXNjZW5kYW50QmFja3RyYWNraW5nVGFpbCgpOwogICAgIHZvaWQg
Z2VuZXJhdGVCYWNrdHJhY2tpbmdUYWlsc0lmTmVlZGVkKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZh
aWx1cmVDYXNlcywgY29uc3QgU2VsZWN0b3JGcmFnbWVudCYpOwogCkBAIC0xOTUsNiArMTk1LDcg
QEAgY2xhc3MgU2VsZWN0b3JDb2RlR2VuZXJhdG9yIHsKICAgICBTZWxlY3RvckNvbnRleHQgbV9z
ZWxlY3RvckNvbnRleHQ7CiAgICAgRnVuY3Rpb25UeXBlIG1fZnVuY3Rpb25UeXBlOwogICAgIFNl
bGVjdG9yRnJhZ21lbnRMaXN0IG1fc2VsZWN0b3JGcmFnbWVudHM7CisgICAgYm9vbCBtX25lZWRz
QWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydDsKIAogICAgIFN0YWNrQWxsb2NhdG9yOjpTdGFja1Jl
ZmVyZW5jZSBtX2NoZWNraW5nQ29udGV4dFN0YWNrUmVmZXJlbmNlOwogCkBAIC0zMjYsNiArMzI3
LDcgQEAgaW5saW5lIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JDb2RlR2VuZXJhdG9y
KGNvbnN0IENTU1NlbGVjdG9yKiByb290U2VsZWMKICAgICA6IG1fc3RhY2tBbGxvY2F0b3IobV9h
c3NlbWJsZXIpCiAgICAgLCBtX3NlbGVjdG9yQ29udGV4dChzZWxlY3RvckNvbnRleHQpCiAgICAg
LCBtX2Z1bmN0aW9uVHlwZShGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikKKyAg
ICAsIG1fbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KGZhbHNlKQogI2lmIENTU19TRUxF
Q1RPUl9KSVRfREVCVUdHSU5HCiAgICAgLCBtX29yaWdpbmFsU2VsZWN0b3Iocm9vdFNlbGVjdG9y
KQogI2VuZGlmCkBAIC02MzQsOCArNjM2LDEwIEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
Ojpjb21wdXRlQmFja3RyYWNraW5nSW5mb3JtYXRpb24oKQogICAgICAgICAgICAgZnJhZ21lbnQu
YmFja3RyYWNraW5nRmxhZ3MgfD0gQmFja3RyYWNraW5nRmxhZzo6SW5kaXJlY3RBZGphY2VudEVu
dHJ5UG9pbnQ7CiAgICAgICAgIGlmIChmcmFnbWVudC5yZWxhdGlvblRvTGVmdEZyYWdtZW50ICE9
IEZyYWdtZW50UmVsYXRpb246OkRlc2NlbmRhbnQgJiYgZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0
RnJhZ21lbnQgPT0gRnJhZ21lbnRSZWxhdGlvbjo6Q2hpbGQgJiYgaXNGaXJzdEFuY2VzdG9yKGFu
Y2VzdG9yUG9zaXRpb25TaW5jZURlc2NlbmRhbnRSZWxhdGlvbikpCiAgICAgICAgICAgICBmcmFn
bWVudC5iYWNrdHJhY2tpbmdGbGFncyB8PSBCYWNrdHJhY2tpbmdGbGFnOjpTYXZlRGVzY2VuZGFu
dEJhY2t0cmFja2luZ1N0YXJ0OwotICAgICAgICBpZiAoZnJhZ21lbnQucmVsYXRpb25Ub0xlZnRG
cmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2VudCAmJiBmcmFnbWVudC5y
ZWxhdGlvblRvUmlnaHRGcmFnbWVudCA9PSBGcmFnbWVudFJlbGF0aW9uOjpEaXJlY3RBZGphY2Vu
dCAmJiBpc0ZpcnN0QWRqYWNlbnQoYWRqYWNlbnRQb3NpdGlvblNpbmNlSW5kaXJlY3RBZGphY2Vu
dFRyZWVXYWxrKSkKKyAgICAgICAgaWYgKGZyYWdtZW50LnJlbGF0aW9uVG9MZWZ0RnJhZ21lbnQg
PT0gRnJhZ21lbnRSZWxhdGlvbjo6RGlyZWN0QWRqYWNlbnQgJiYgZnJhZ21lbnQucmVsYXRpb25U
b1JpZ2h0RnJhZ21lbnQgPT0gRnJhZ21lbnRSZWxhdGlvbjo6RGlyZWN0QWRqYWNlbnQgJiYgaXNG
aXJzdEFkamFjZW50KGFkamFjZW50UG9zaXRpb25TaW5jZUluZGlyZWN0QWRqYWNlbnRUcmVlV2Fs
aykpIHsKICAgICAgICAgICAgIGZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzIHw9IEJhY2t0cmFj
a2luZ0ZsYWc6OlNhdmVBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0OworICAgICAgICAgICAgbV9u
ZWVkc0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQgPSB0cnVlOworICAgICAgICB9CiAgICAgICAg
IGlmIChmcmFnbWVudC5yZWxhdGlvblRvTGVmdEZyYWdtZW50ICE9IEZyYWdtZW50UmVsYXRpb246
OkRpcmVjdEFkamFjZW50ICYmIG5lZWRzQWRqYWNlbnRUYWlsKSB7CiAgICAgICAgICAgICBBU1NF
UlQoZnJhZ21lbnQucmVsYXRpb25Ub1JpZ2h0RnJhZ21lbnQgPT0gRnJhZ21lbnRSZWxhdGlvbjo6
RGlyZWN0QWRqYWNlbnQpOwogICAgICAgICAgICAgZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3Mg
fD0gQmFja3RyYWNraW5nRmxhZzo6RGlyZWN0QWRqYWNlbnRUYWlsOwpAQCAtNjYzLDYgKzY2Nyw5
IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigp
CiAgICAgaWYgKG1fZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6U2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dCkKICAgICAgICAgbV9jaGVja2luZ0NvbnRleHRTdGFja1JlZmVy
ZW5jZSA9IG1fc3RhY2tBbGxvY2F0b3IucHVzaChjaGVja2luZ0NvbnRleHRSZWdpc3Rlcik7CiAK
KyAgICBpZiAobV9uZWVkc0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpCisgICAgICAgIG1fYWRq
YWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IG1fc3RhY2tBbGxvY2F0b3IuYWxsb2NhdGVVbmluaXRp
YWxpemVkKCk7CisKICAgICBBc3NlbWJsZXI6Okp1bXBMaXN0IGZhaWx1cmVDYXNlczsKIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlbGVjdG9yRnJhZ21lbnRzLnNpemUoKTsgKytp
KSB7CkBAIC02OTAsMjYgKzY5NywzMSBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2Vu
ZXJhdGVTZWxlY3RvckNoZWNrZXIoKQogICAgIG1fcmVnaXN0ZXJBbGxvY2F0b3IuZGVhbGxvY2F0
ZVJlZ2lzdGVyKGVsZW1lbnRBZGRyZXNzUmVnaXN0ZXIpOwogCiAgICAgaWYgKG1fZnVuY3Rpb25U
eXBlID09IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgIC8v
IFN1Y2Nlc3MuCi0gICAgICAgIG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1t
MzIoMSksIHJldHVyblJlZ2lzdGVyKTsKLSAgICAgICAgaWYgKCFyZXNlcnZlZENhbGxlZVNhdmVk
UmVnaXN0ZXJzKQorICAgICAgICBpZiAoIW1fbmVlZHNBZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0
ICYmICFyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKSB7CisgICAgICAgICAgICAvLyBTdWNj
ZXNzLgorICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92ZShBc3NlbWJsZXI6OlRydXN0ZWRJbW0z
MigxKSwgcmV0dXJuUmVnaXN0ZXIpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIucmV0KCk7CiAK
LSAgICAgICAgLy8gRmFpbHVyZS4KLSAgICAgICAgaWYgKCFmYWlsdXJlQ2FzZXMuZW1wdHkoKSkg
ewotICAgICAgICAgICAgQXNzZW1ibGVyOjpKdW1wIHNraXBGYWlsdXJlQ2FzZTsKLSAgICAgICAg
ICAgIGlmIChyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQotICAgICAgICAgICAgICAgIHNr
aXBGYWlsdXJlQ2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKLQotICAgICAgICAgICAgZmFpbHVy
ZUNhc2VzLmxpbmsoJm1fYXNzZW1ibGVyKTsKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmUo
QXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lzdGVyKTsKLQotICAgICAgICAg
ICAgaWYgKCFyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKQorICAgICAgICAgICAgLy8gRmFp
bHVyZS4KKyAgICAgICAgICAgIGlmICghZmFpbHVyZUNhc2VzLmVtcHR5KCkpIHsKKyAgICAgICAg
ICAgICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lz
dGVyKTsKICAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKLSAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIFN1Y2Nl
c3MuCisgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMy
KDEpLCByZXR1cm5SZWdpc3Rlcik7CisKKyAgICAgICAgICAgIC8vIEZhaWx1cmUuCisgICAgICAg
ICAgICBpZiAoIWZhaWx1cmVDYXNlcy5lbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgQXNzZW1i
bGVyOjpKdW1wIHNraXBGYWlsdXJlQ2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKKyAgICAgICAg
ICAgICAgICBmYWlsdXJlQ2FzZXMubGluaygmbV9hc3NlbWJsZXIpOworICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm1vdmUoQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMCksIHJldHVyblJlZ2lz
dGVyKTsKICAgICAgICAgICAgICAgICBza2lwRmFpbHVyZUNhc2UubGluaygmbV9hc3NlbWJsZXIp
OwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXNlcnZlZENhbGxlZVNhdmVkUmVnaXN0ZXJzKSB7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChtX25lZWRzQWRqYWNlbnRCYWNrdHJh
Y2tpbmdTdGFydCkKKyAgICAgICAgICAgICAgICBtX3N0YWNrQWxsb2NhdG9yLnBvcEFuZERpc2Nh
cmRVcFRvKG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCk7CiAgICAgICAgICAgICBtX3JlZ2lz
dGVyQWxsb2NhdG9yLnJlc3RvcmVDYWxsZWVTYXZlZFJlZ2lzdGVycyhtX3N0YWNrQWxsb2NhdG9y
KTsKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOwogICAgICAgICB9CkBAIC04MzAsOCAr
ODQyLDEwIEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZURpcmVjdEFkamFj
ZW50VHJlZVdhbGtlcihBc3NlbWJsZXI6Okp1bXBMaXN0CiAgICAgZ2VuZXJhdGVFbGVtZW50TWF0
Y2hpbmcobWF0Y2hpbmdGYWlsdXJlQ2FzZXMsIGZyYWdtZW50KTsKICAgICBsaW5rRmFpbHVyZXMo
ZmFpbHVyZUNhc2VzLCBmcmFnbWVudC5tYXRjaGluZ0JhY2t0cmFja2luZ0FjdGlvbiwgbWF0Y2hp
bmdGYWlsdXJlQ2FzZXMpOwogCi0gICAgaWYgKGZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzICYg
QmFja3RyYWNraW5nRmxhZzo6U2F2ZUFkamFjZW50QmFja3RyYWNraW5nU3RhcnQpCi0gICAgICAg
IG1fYWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCA9IG1fc3RhY2tBbGxvY2F0b3IucHVzaChlbGVt
ZW50QWRkcmVzc1JlZ2lzdGVyKTsKKyAgICBpZiAoZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3Mg
JiBCYWNrdHJhY2tpbmdGbGFnOjpTYXZlQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCkgeworICAg
ICAgICB1bnNpZ25lZCBvZmZzZXRUb0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQgPSBtX3N0YWNr
QWxsb2NhdG9yLm9mZnNldFRvU3RhY2tSZWZlcmVuY2UobV9hZGphY2VudEJhY2t0cmFja2luZ1N0
YXJ0KTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3RvcmVQdHIoZWxlbWVudEFkZHJlc3NSZWdpc3Rl
ciwgQXNzZW1ibGVyOjpBZGRyZXNzKEFzc2VtYmxlcjo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIG9m
ZnNldFRvQWRqYWNlbnRCYWNrdHJhY2tpbmdTdGFydCkpOworICAgIH0KIH0KIAogdm9pZCBTZWxl
Y3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlSW5kaXJlY3RBZGphY2VudFRyZWVXYWxrZXIoQXNz
ZW1ibGVyOjpKdW1wTGlzdCYgZmFpbHVyZUNhc2VzLCBjb25zdCBTZWxlY3RvckZyYWdtZW50JiBm
cmFnbWVudCkKQEAgLTkyNSwyNiArOTM5LDE3IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpsaW5rRmFpbHVyZXMoQXNzZW1ibGVyOjpKdW1wTGlzdCYgZ2xvYmFsRmFpbHVyZUNhc2VzCiAg
ICAgfQogfQogCi12b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVBZGphY2VudEJh
Y2t0cmFja2luZ1RhaWwoQXNzZW1ibGVyOjpKdW1wTGlzdCYgc3VjY2Vzc0Nhc2VzKQordm9pZCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKCkK
IHsKLSAgICBTdGFja0FsbG9jYXRvciBzdWNjZXNzU3RhY2sgPSBtX3N0YWNrQWxsb2NhdG9yOwot
ICAgIFN0YWNrQWxsb2NhdG9yIHJlY292ZXJ5U3RhY2sgPSBtX3N0YWNrQWxsb2NhdG9yOwotICAg
IFN0YWNrQWxsb2NhdG9yIGZhaWx1cmVTdGFjayA9IG1fc3RhY2tBbGxvY2F0b3I7Ci0KLSAgICBz
dWNjZXNzU3RhY2sucG9wQW5kRGlzY2FyZChtX2FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpOwot
ICAgIHN1Y2Nlc3NDYXNlcy5hcHBlbmQobV9hc3NlbWJsZXIuanVtcCgpKTsKLQogICAgIC8vIFJl
Y292ZXJpbmcgdGFpbC4KICAgICBtX2FkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2VzLmxp
bmsoJm1fYXNzZW1ibGVyKTsKICAgICBtX2FkamFjZW50QmFja3RyYWNraW5nRmFpbHVyZUNhc2Vz
LmNsZWFyKCk7Ci0gICAgcmVjb3ZlcnlTdGFjay5wb3AobV9hZGphY2VudEJhY2t0cmFja2luZ1N0
YXJ0LCBlbGVtZW50QWRkcmVzc1JlZ2lzdGVyKTsKKyAgICB1bnNpZ25lZCBvZmZzZXRUb0FkamFj
ZW50QmFja3RyYWNraW5nU3RhcnQgPSBtX3N0YWNrQWxsb2NhdG9yLm9mZnNldFRvU3RhY2tSZWZl
cmVuY2UobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKKyAgICBtX2Fzc2VtYmxlci5sb2Fk
UHRyKEFzc2VtYmxlcjo6QWRkcmVzcyhBc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBv
ZmZzZXRUb0FkamFjZW50QmFja3RyYWNraW5nU3RhcnQpLCBlbGVtZW50QWRkcmVzc1JlZ2lzdGVy
KTsKICAgICBtX2Fzc2VtYmxlci5qdW1wKG1faW5kaXJlY3RBZGphY2VudEVudHJ5UG9pbnQpOwog
CiAgICAgLy8gVG90YWwgZmFpbHVyZSB0YWlsLgogICAgIG1fY2xlYXJBZGphY2VudEJhY2t0cmFj
a2luZ0ZhaWx1cmVDYXNlcy5saW5rKCZtX2Fzc2VtYmxlcik7Ci0gICAgZmFpbHVyZVN0YWNrLnBv
cEFuZERpc2NhcmQobV9hZGphY2VudEJhY2t0cmFja2luZ1N0YXJ0KTsKLQotICAgIG1fc3RhY2tB
bGxvY2F0b3IubWVyZ2Uoc3RkOjptb3ZlKHN1Y2Nlc3NTdGFjayksIHN0ZDo6bW92ZShyZWNvdmVy
eVN0YWNrKSwgc3RkOjptb3ZlKGZhaWx1cmVTdGFjaykpOwogfQogCiB2b2lkIFNlbGVjdG9yQ29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGVEZXNjZW5kYW50QmFja3RyYWNraW5nVGFpbCgpCkBAIC05NTks
MTUgKzk2NCwxNSBAQCB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVEZXNjZW5k
YW50QmFja3RyYWNraW5nVGFpbCgpCiB2b2lkIFNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJh
dGVCYWNrdHJhY2tpbmdUYWlsc0lmTmVlZGVkKEFzc2VtYmxlcjo6SnVtcExpc3QmIGZhaWx1cmVD
YXNlcywgY29uc3QgU2VsZWN0b3JGcmFnbWVudCYgZnJhZ21lbnQpCiB7CiAgICAgaWYgKGZyYWdt
ZW50LmJhY2t0cmFja2luZ0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6RGlyZWN0QWRqYWNlbnRU
YWlsICYmIGZyYWdtZW50LmJhY2t0cmFja2luZ0ZsYWdzICYgQmFja3RyYWNraW5nRmxhZzo6RGVz
Y2VuZGFudFRhaWwpIHsKLSAgICAgICAgQXNzZW1ibGVyOjpKdW1wTGlzdCBzdWNjZXNzQ2FzZXM7
Ci0gICAgICAgIGdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdUYWlsKHN1Y2Nlc3NDYXNlcyk7
CisgICAgICAgIEFzc2VtYmxlcjo6SnVtcCBub3JtYWxDYXNlID0gbV9hc3NlbWJsZXIuanVtcCgp
OworICAgICAgICBnZW5lcmF0ZUFkamFjZW50QmFja3RyYWNraW5nVGFpbCgpOwogICAgICAgICBn
ZW5lcmF0ZURlc2NlbmRhbnRCYWNrdHJhY2tpbmdUYWlsKCk7Ci0gICAgICAgIHN1Y2Nlc3NDYXNl
cy5saW5rKCZtX2Fzc2VtYmxlcik7CisgICAgICAgIG5vcm1hbENhc2UubGluaygmbV9hc3NlbWJs
ZXIpOwogICAgIH0gZWxzZSBpZiAoZnJhZ21lbnQuYmFja3RyYWNraW5nRmxhZ3MgJiBCYWNrdHJh
Y2tpbmdGbGFnOjpEaXJlY3RBZGphY2VudFRhaWwpIHsKLSAgICAgICAgQXNzZW1ibGVyOjpKdW1w
TGlzdCBzdWNjZXNzQ2FzZXM7Ci0gICAgICAgIGdlbmVyYXRlQWRqYWNlbnRCYWNrdHJhY2tpbmdU
YWlsKHN1Y2Nlc3NDYXNlcyk7CisgICAgICAgIEFzc2VtYmxlcjo6SnVtcCBub3JtYWxDYXNlID0g
bV9hc3NlbWJsZXIuanVtcCgpOworICAgICAgICBnZW5lcmF0ZUFkamFjZW50QmFja3RyYWNraW5n
VGFpbCgpOwogICAgICAgICBmYWlsdXJlQ2FzZXMuYXBwZW5kKG1fYXNzZW1ibGVyLmp1bXAoKSk7
Ci0gICAgICAgIHN1Y2Nlc3NDYXNlcy5saW5rKCZtX2Fzc2VtYmxlcik7CisgICAgICAgIG5vcm1h
bENhc2UubGluaygmbV9hc3NlbWJsZXIpOwogICAgIH0gZWxzZSBpZiAoZnJhZ21lbnQuYmFja3Ry
YWNraW5nRmxhZ3MgJiBCYWNrdHJhY2tpbmdGbGFnOjpEZXNjZW5kYW50VGFpbCkgewogICAgICAg
ICBBc3NlbWJsZXI6Okp1bXAgbm9ybWFsQ2FzZSA9IG1fYXNzZW1ibGVyLmp1bXAoKTsKICAgICAg
ICAgZ2VuZXJhdGVEZXNjZW5kYW50QmFja3RyYWNraW5nVGFpbCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3Nzaml0L1N0YWNrQWxsb2NhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Nq
aXQvU3RhY2tBbGxvY2F0b3IuaAppbmRleCA0YTdjNmU1ZjVhNDBhOTY3Zjc0NjBkMjVhY2NkM2Y5
M2EzNzFjNTBhLi44Njg3YzY0ZDAyYmIxM2U5MDFiMzQ5MzRlZGUzOWEwYzU4Y2FlZGMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU3RhY2tBbGxvY2F0b3IuaApAQCAtNjAsNiArNjAsMTQgQEAgY2xh
c3MgU3RhY2tBbGxvY2F0b3IgewogICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9oYXNGdW5jdGlv
bkNhbGxQYWRkaW5nKTsKICAgICB9CiAKKyAgICBTdGFja1JlZmVyZW5jZSBhbGxvY2F0ZVVuaW5p
dGlhbGl6ZWQoKQorICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIW1faGFzRnVuY3Rpb25D
YWxsUGFkZGluZyk7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZFB0ck5vRmxhZ3MoSlNDOjpNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKC04KSwgSlNDOjpNYWNyb0Fzc2VtYmxlcjo6c3RhY2tQ
b2ludGVyUmVnaXN0ZXIpOworICAgICAgICBtX29mZnNldEZyb21Ub3AgKz0gODsKKyAgICAgICAg
cmV0dXJuIFN0YWNrUmVmZXJlbmNlKG1fb2Zmc2V0RnJvbVRvcCk7CisgICAgfQorCiAgICAgU3Rh
Y2tSZWZlcmVuY2UgcHVzaChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHJlZ2lzdGVy
SUQpCiAgICAgewogICAgICAgICBSRUxFQVNFX0FTU0VSVCghbV9oYXNGdW5jdGlvbkNhbGxQYWRk
aW5nKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>