<?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>102610</bug_id>
          
          <creation_ts>2012-11-18 00:12:07 -0800</creation_ts>
          <short_desc>Extend EventDispatcher::dispatchSimulatedClick to allow sending a mouseover event</short_desc>
          <delta_ts>2012-11-26 01:13:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>mifenton</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>770097</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-18 00:12:07 -0800</bug_when>
    <thetext>Allow dispatched clicks to also send a mouse over event. This is needed to pass click events for plugin snapshotting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770098</commentid>
    <comment_count>1</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-18 00:12:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/12725663&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770100</commentid>
    <comment_count>2</comment_count>
      <attachid>174844</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-18 01:59:53 -0800</bug_when>
    <thetext>Created attachment 174844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770120</commentid>
    <comment_count>3</comment_count>
      <attachid>174844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-18 07:39:08 -0800</bug_when>
    <thetext>Comment on attachment 174844
Patch

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

&gt; Source/WebCore/dom/Node.h:643
&gt; +    void dispatchSimulatedClick(Event* underlyingEvent, bool sendMouseUpDownEvents = false, bool sendMouseOverEvent = false, bool showPressedLook = true);

This is taking a bad API and making it worse. These boolean arguments are completely unreadable at call sites. If we were creating a function like this today in WebKit we would use enums instead of booleans because this function is often called with constants, which are completely unreadable at the call site.

So if you are touching this function in this way, you should change these booleans into enums, or find some other way of refactoring this function so it’s readable at call sites.

&gt; Source/WebCore/html/HTMLElement.cpp:693
&gt; -    dispatchSimulatedClick(0, false, false);
&gt; +    dispatchSimulatedClick(0, false, false, false);

This is a perfect example, what does 0, false, false, false mean here? Totally mysterious!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770183</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-18 13:40:30 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 174844 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174844&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Node.h:643
&gt; &gt; +    void dispatchSimulatedClick(Event* underlyingEvent, bool sendMouseUpDownEvents = false, bool sendMouseOverEvent = false, bool showPressedLook = true);
&gt; 
&gt; This is taking a bad API and making it worse. These boolean arguments are completely unreadable at call sites. If we were creating a function like this today in WebKit we would use enums instead of booleans because this function is often called with constants, which are completely unreadable at the call site.
&gt; 
&gt; So if you are touching this function in this way, you should change these booleans into enums, or find some other way of refactoring this function so it’s readable at call sites.
&gt; 
&gt; &gt; Source/WebCore/html/HTMLElement.cpp:693
&gt; &gt; -    dispatchSimulatedClick(0, false, false);
&gt; &gt; +    dispatchSimulatedClick(0, false, false, false);
&gt; 
&gt; This is a perfect example, what does 0, false, false, false mean here? Totally mysterious!

True. I had a previous version that used the Event::EventType enum as a mask, but thought that might be too esoteric. I&apos;ll switch to a dedicated enum for this function. It&apos;ll be nice to be able to condense all three of the bool parameters into one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770237</commentid>
    <comment_count>5</comment_count>
      <attachid>174865</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-18 17:23:07 -0800</bug_when>
    <thetext>Created attachment 174865
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775126</commentid>
    <comment_count>6</comment_count>
      <attachid>174865</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-11-25 21:34:18 -0800</bug_when>
    <thetext>Comment on attachment 174865
Patch

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

&gt; Source/WebCore/dom/EventDispatcher.cpp:226
&gt; +    if (mouseEventOptions &gt; SendNoEvents)

This seems fragile. If someone adds a new value to the enum they won’t realize that the order of enum values matters. I suggest writing this differently.

&gt; Source/WebCore/dom/EventDispatcher.cpp:229
&gt; +    if (mouseEventOptions &gt; SendNoEvents)

Same comment as above.

&gt; Source/WebCore/dom/EventDispatcher.h:29
&gt; +#include &quot;Node.h&quot;

I don’t think we want to pull in the whole Node.h header to every file that includes EventDispatcher.h. We should find some other way to get the enum in the right files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775211</commentid>
    <comment_count>7</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-26 00:23:55 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 174865 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174865&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/EventDispatcher.cpp:226
&gt; &gt; +    if (mouseEventOptions &gt; SendNoEvents)
&gt; 
&gt; This seems fragile. If someone adds a new value to the enum they won’t realize that the order of enum values matters. I suggest writing this differently.

Switched to using !=.

&gt; &gt; Source/WebCore/dom/EventDispatcher.h:29
&gt; &gt; +#include &quot;Node.h&quot;
&gt; 
&gt; I don’t think we want to pull in the whole Node.h header to every file that includes EventDispatcher.h. We should find some other way to get the enum in the right files.

I&apos;ll add a new SimulatedClickOptions.h file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775235</commentid>
    <comment_count>8</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-11-26 01:13:09 -0800</bug_when>
    <thetext>Committed r135690: &lt;http://trac.webkit.org/changeset/135690&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174844</attachid>
            <date>2012-11-18 01:59:53 -0800</date>
            <delta_ts>2012-11-18 17:23:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102610-20121118015746.patch</filename>
            <type>text/plain</type>
            <size>7100</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFiNjQ0YTVkMDAxMTQ1
OGNkZjlkMTRhMTgxZTgxZDg4YWZlYjQ2Ni4uNTg5NGFjMjhhZWJlZjE0ZDdiOWJiN2QzMTU4OWY0
MmE0MWFmYjk0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTE4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrIHRvIGFsbG93IHNlbmRpbmcgYSBtb3VzZW92ZXIgZXZl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjYx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI3MjU2NjM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGZsYWcgZm9yIHdoZXRoZXIg
YSBtb3VzZW92ZXIgZXZlbnQgc2hvdWxkIGFsc28gYmUgc2VuZCBpbiBhZGRpdGlvbiB0byB0aGUK
KyAgICAgICAgbW91c2V1cC9tb3VzZWRvd24gZXZlbnRzLgorCisgICAgICAgICogZG9tL0V2ZW50
RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudERpc3BhdGNoZXI6OmRpc3Bh
dGNoU2ltdWxhdGVkQ2xpY2spOiBDbGFyaWZ5IHRoZSBzZW5kTW91c2VFdmVudHMKKyAgICAgICAg
cGFyYW1ldGVyIHRvIGFwcGx5IHRvIGp1c3QgbW91c2UgdXAgYW5kIGRvd24gZXZlbnRzLCBhbmQg
YWRkIGEgbmV3IGZsYWcgZm9yIG1vdXNlIG92ZXIKKyAgICAgICAgZXZlbnRzLiBTZW5kIHRoZSBt
b3VzZW92ZXIgZXZlbnQgaWYgdGhlIGZsYWcgaXMgc2V0LgorICAgICAgICAqIGRvbS9FdmVudERp
c3BhdGNoZXIuaDoKKyAgICAgICAgKEV2ZW50RGlzcGF0Y2hlcik6IFVwZGF0ZSBmdW5jdGlvbiBz
aWduYXR1cmUuCisKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKTogUmVmYWN0b3IgdG8gdGFrZSB0aGUgYWRkaXRp
b25hbCBmbGFnLgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisKKyAgICAgICAgUmVmYWN0b3IgY2Fs
bCBzaXRlcyB0byBOb2RlOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrLiBUaGUgZm9sbG93aW5nIHR3
byBwbGFjZXMgd2VyZSB0aGUKKyAgICAgICAgb25seSBvbmVzIHRoYXQgb3ZlcnJpZGVkIHRoZSBk
ZWZhdWx0IHBhcmFtZXRlcnMuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6Y2xpY2spOiBSZWZhY3Rvci4KKyAgICAgICAgKiBo
dG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvSW5wdXRUeXBl
OjpoYW5kbGVLZXlkb3duRXZlbnQpOiBSZWZhY3Rvci4KKwogMjAxMi0xMS0xNyAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltdWxhdGVkIG1vdXNlIGV2ZW50cyBzaG91
bGQgcmV0dXJuIGFuIGFjY3VyYXRlIG9mZnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRj
aGVyLmNwcAppbmRleCA2NTQwOTU4NmFkNDcxYmRiMmZhZWNmYjgyNTJkMzIwNDA2NTk5YTRkLi4x
N2IzY2VlZjQzOWI2N2E4NjQ2NjRmN2JkZjNiNGQxNWYzM2Y4ZTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRXZlbnREaXNwYXRjaGVyLmNwcApAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaFNjb3BlZEV2ZW50KE5vZGUqIG5vZGUsIFBhc3NSZWZQdHI8RXZlbnRE
aXNwYXRjaE1lCiAgICAgU2NvcGVkRXZlbnRRdWV1ZTo6aW5zdGFuY2UoKS0+ZW5xdWV1ZUV2ZW50
RGlzcGF0Y2hNZWRpYXRvcihtZWRpYXRvcik7CiB9CiAKLXZvaWQgRXZlbnREaXNwYXRjaGVyOjpk
aXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5vZGUsIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQs
IGJvb2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVzc2VkTG9vaykKK3ZvaWQgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5vZGUsIEV2ZW50KiB1bmRl
cmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlVXBEb3duRXZlbnRzLCBib29sIHNlbmRNb3VzZU92
ZXJFdmVudCwgYm9vbCBzaG93UHJlc3NlZExvb2spCiB7CiAgICAgaWYgKG5vZGUtPmRpc2FibGVk
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIyMCwxMSArMjIwLDEzIEBAIHZvaWQgRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUqIG5vZGUsIEV2ZW50KiB1bmRlcmx5
aW5nRXZlbnQsCiAKICAgICBnTm9kZXNEaXNwYXRjaGluZ1NpbXVsYXRlZENsaWNrcy0+YWRkKG5v
ZGUpOwogCi0gICAgLy8gc2VuZCBtb3VzZWRvd24gYW5kIG1vdXNldXAgYmVmb3JlIHRoZSBjbGlj
aywgaWYgcmVxdWVzdGVkCi0gICAgaWYgKHNlbmRNb3VzZUV2ZW50cykKKyAgICBpZiAoc2VuZE1v
dXNlT3ZlckV2ZW50KQorICAgICAgICBFdmVudERpc3BhdGNoZXIobm9kZSkuZGlzcGF0Y2hFdmVu
dChTaW11bGF0ZWRNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm1vdXNlb3ZlckV2ZW50
LCBub2RlLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCB1bmRlcmx5aW5nRXZlbnQpKTsKKwor
ICAgIGlmIChzZW5kTW91c2VVcERvd25FdmVudHMpCiAgICAgICAgIEV2ZW50RGlzcGF0Y2hlcihu
b2RlKS5kaXNwYXRjaEV2ZW50KFNpbXVsYXRlZE1vdXNlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQsIG5vZGUtPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksIHVuZGVy
bHlpbmdFdmVudCkpOwogICAgIG5vZGUtPnNldEFjdGl2ZSh0cnVlLCBzaG93UHJlc3NlZExvb2sp
OwotICAgIGlmIChzZW5kTW91c2VFdmVudHMpCisgICAgaWYgKHNlbmRNb3VzZVVwRG93bkV2ZW50
cykKICAgICAgICAgRXZlbnREaXNwYXRjaGVyKG5vZGUpLmRpc3BhdGNoRXZlbnQoU2ltdWxhdGVk
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQsIG5vZGUtPmRvY3Vt
ZW50KCktPmRlZmF1bHRWaWV3KCksIHVuZGVybHlpbmdFdmVudCkpOwogICAgIG5vZGUtPnNldEFj
dGl2ZShmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3Bh
dGNoZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAppbmRleCBlNzNk
MzE2ODAxNmViMzEwZDllM2NlODM2OWEzZTcwMDY1NThmMjRkLi42MjYwODE3OTE1MmZmMTlhNjlj
ODViNThkYWMxNmE2NGM0Nzg5ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnREaXNwYXRjaGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5o
CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBkaXNwYXRjaEV2ZW50
KE5vZGUqLCBQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZWRpYXRvcj4pOwogICAgIHN0YXRpYyB2
b2lkIGRpc3BhdGNoU2NvcGVkRXZlbnQoTm9kZSosIFBhc3NSZWZQdHI8RXZlbnREaXNwYXRjaE1l
ZGlhdG9yPik7CiAKLSAgICBzdGF0aWMgdm9pZCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKE5vZGUq
LCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cywgYm9vbCBzaG93
UHJlc3NlZExvb2spOworICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soTm9k
ZSosIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlVXBEb3duRXZlbnRzLCBi
b29sIHNlbmRNb3VzZU92ZXJFdmVudCwgYm9vbCBzaG93UHJlc3NlZExvb2spOwogCiAgICAgYm9v
bCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lkIGFkanVzdFJlbGF0
ZWRUYXJnZXQoRXZlbnQqLCBQYXNzUmVmUHRyPEV2ZW50VGFyZ2V0PiBwcnBSZWxhdGVkVGFyZ2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCA4NmYzNTI5N2YwMzQ3ZTk1ZWU0ZjU0YTMwODNjZmRlNGMz
YzE2ZTA4Li5lMzBlODU3MjNjNDEzNWI1MjRhYzRkYjhjYThjZjRjZTliY2JkNzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC0yNjE0LDkgKzI2MTQsOSBAQCBib29sIE5vZGU6OmRpc3BhdGNoR2VzdHVy
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtR2VzdHVyZUV2ZW50JiBldmVudCkKIH0KICNlbmRpZgogCi12
b2lkIE5vZGU6OmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwg
Ym9vbCBzZW5kTW91c2VFdmVudHMsIGJvb2wgc2hvd1ByZXNzZWRMb29rKQordm9pZCBOb2RlOjpk
aXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1v
dXNlVXBEb3duRXZlbnRzLCBib29sIHNlbmRNb3VzZU92ZXJFdmVudCwgYm9vbCBzaG93UHJlc3Nl
ZExvb2spCiB7Ci0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKHRo
aXMsIHVuZGVybHlpbmdFdmVudCwgc2VuZE1vdXNlRXZlbnRzLCBzaG93UHJlc3NlZExvb2spOwor
ICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0aGlzLCB1bmRlcmx5
aW5nRXZlbnQsIHNlbmRNb3VzZVVwRG93bkV2ZW50cywgc2VuZE1vdXNlT3ZlckV2ZW50LCBzaG93
UHJlc3NlZExvb2spOwogfQogCiBib29sIE5vZGU6OmRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYTk4YmNjOGRhMTE2MmNhZTA0
ZmY0ZmQ2NjhjMWM4NzA2YjhjYzc2ZC4uZjhhNDlmYmViN2FkYTBmYWUwNWIyNWYwMTQ5NTA4YzA0
YTVkMjhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC02NDAsNyArNjQwLDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShHRVNUVVJFX0VWRU5UUykKICAgICBib29sIGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0
IFBsYXRmb3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5kaWYKLSAgICB2b2lkIGRpc3BhdGNoU2ltdWxh
dGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMgPSBm
YWxzZSwgYm9vbCBzaG93UHJlc3NlZExvb2sgPSB0cnVlKTsKKyAgICB2b2lkIGRpc3BhdGNoU2lt
dWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VVcERvd25F
dmVudHMgPSBmYWxzZSwgYm9vbCBzZW5kTW91c2VPdmVyRXZlbnQgPSBmYWxzZSwgYm9vbCBzaG93
UHJlc3NlZExvb2sgPSB0cnVlKTsKICAgICBib29sIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3Vz
RXZlbnQoUGFzc1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEVsZW1lbnQuY3BwCmluZGV4IDljNjY0YWI5N2NjYTlhNGJjZTRlZTNhNDNkNGJjMzFkNWZiYzMy
YmMuLmQ1YzQ4NjI0N2FmOWM3MDgzNzFhZDFlM2UzMTYyODVkNzEzNjQ4NjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC02OTAsNyArNjkwLDcgQEAgdm9pZCBIVE1MRWxlbWVu
dDo6c2V0U3BlbGxjaGVjayhib29sIGVuYWJsZSkKIAogdm9pZCBIVE1MRWxlbWVudDo6Y2xpY2so
KQogewotICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgZmFsc2UsIGZhbHNlKTsKKyAgICBk
aXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwogfQogCiB2b2lk
IEhUTUxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4IDA3NmUyMmE1YWUyMTA3YzVmNmNm
YjkzZjVjMWU3ZDY2MGNhNmU5NzYuLjQyYTUzMmJkMTY2OTQzZWJhYzNiODQ0N2UwMzNjN2JlNGZm
NmZkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCkBAIC05Niw3ICs5
Niw3IEBAIHZvaWQgUmFkaW9JbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2
ZW50KiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoaW5wdXRFbGVtZW50
LT5pc1JhZGlvQnV0dG9uKCkgJiYgaW5wdXRFbGVtZW50LT5uYW1lKCkgPT0gZWxlbWVudCgpLT5u
YW1lKCkgJiYgaW5wdXRFbGVtZW50LT5pc0ZvY3VzYWJsZSgpKSB7CiAgICAgICAgICAgICBkb2N1
bWVudC0+c2V0Rm9jdXNlZE5vZGUoaW5wdXRFbGVtZW50KTsKLSAgICAgICAgICAgIGlucHV0RWxl
bWVudC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhldmVudCwgZmFsc2UsIGZhbHNlKTsKKyAgICAg
ICAgICAgIGlucHV0RWxlbWVudC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhldmVudCwgZmFsc2Us
IGZhbHNlLCBmYWxzZSk7CiAgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174865</attachid>
            <date>2012-11-18 17:23:07 -0800</date>
            <delta_ts>2012-11-25 21:34:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102610-20121118172059.patch</filename>
            <type>text/plain</type>
            <size>13671</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWFiNjQ0YTVkMDAxMTQ1
OGNkZjlkMTRhMTgxZTgxZDg4YWZlYjQ2Ni4uZDI2YTkyMmIxMTgxN2VlNDRiMjdkZTg3Zjg5ZWEw
YWFhNzU0MjQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTExLTE4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHRlbmQgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrIHRvIGFsbG93IHNlbmRpbmcgYSBtb3VzZW92ZXIgZXZl
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjYx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI3MjU2NjM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSBkaXNwYXRjaFNpbXVsYXRl
ZENsaWNrKCkgdG8gdGFrZSBhIGJpdG1hc2sgb2Ygb3B0aW9ucyBmb3IgZGlzcGF0Y2hpbmcgZXZl
bnRzLgorICAgICAgICBBZGQgYSBmbGFnIGZvciB3aGV0aGVyIGEgbW91c2VvdmVyIGV2ZW50IHNo
b3VsZCBhbHNvIGJlIHNlbmQgaW4gYWRkaXRpb24gdG8gdGhlCisgICAgICAgIG1vdXNldXAvbW91
c2Vkb3duIGV2ZW50cy4KKworICAgICAgICAqIGRvbS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKTog
Q2xhcmlmeSB0aGUgc2VuZE1vdXNlRXZlbnRzCisgICAgICAgIHBhcmFtZXRlciB0byBhcHBseSB0
byBqdXN0IG1vdXNlIHVwIGFuZCBkb3duIGV2ZW50cywgYW5kIGFkZCBhIG5ldyBmbGFnIGZvciBt
b3VzZSBvdmVyCisgICAgICAgIGV2ZW50cy4gU2VuZCB0aGUgbW91c2VvdmVyIGV2ZW50IGlmIHRo
ZSBmbGFnIGlzIHNldC4KKyAgICAgICAgKiBkb20vRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAg
IChFdmVudERpc3BhdGNoZXIpOiBVcGRhdGUgZnVuY3Rpb24gc2lnbmF0dXJlLgorCisgICAgICAg
ICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6ZGlzcGF0Y2hTaW11bGF0
ZWRDbGljayk6CisgICAgICAgICogZG9tL05vZGUuaDogRGVmaW5lIHR3byBvcHRpb25zIGVudW1z
LiBPbmUgdHJhY2tzIHdoaWNoIG1vdXNlIGV2ZW50cyB0byBzZW5kLiBUaGUgb3RoZXIKKyAgICAg
ICAgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGZvcmNlIHRoZSBlbGVtZW50IHRvIHJlcGFpbnQuCisK
KyAgICAgICAgUmVmYWN0b3IuIFJlbW92ZSByZWR1bmRhbnQgY29tbWVudHMuCisgICAgICAgICog
aHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VD
aGVja2FibGVJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlvbik6CisgICAgICAgICogaHRtbC9CYXNl
Q2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZTo6YWNjZXNzS2V5QWN0aW9uKToKKyAgICAgICAgKiBodG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVt
ZW50OjphY2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlv
bik6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRWxlbWVudDo6Y2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbik6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5QWN0aW9uKToKKyAgICAg
ICAgKiBodG1sL1JhZGlvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJhZGlvSW5w
dXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFjdGlv
bik6CisKIDIwMTItMTEtMTcgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAg
IFNpbXVsYXRlZCBtb3VzZSBldmVudHMgc2hvdWxkIHJldHVybiBhbiBhY2N1cmF0ZSBvZmZzZXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNjU0MDk1ODZhZDQ3MWJk
YjJmYWVjZmI4MjUyZDMyMDQwNjU5OWE0ZC4uOTY1OTZmYmM5ODM2Y2Y1Zjc1NDZkMzY0NzcxZGUx
NDEyMjhkMzdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTIw
OCw3ICsyMDgsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTY29wZWRFdmVudChO
b2RlKiBub2RlLCBQYXNzUmVmUHRyPEV2ZW50RGlzcGF0Y2hNZQogICAgIFNjb3BlZEV2ZW50UXVl
dWU6Omluc3RhbmNlKCktPmVucXVldWVFdmVudERpc3BhdGNoTWVkaWF0b3IobWVkaWF0b3IpOwog
fQogCi12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhOb2RlKiBu
b2RlLCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cywgYm9vbCBz
aG93UHJlc3NlZExvb2spCit2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRD
bGljayhOb2RlKiBub2RlLCBFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlja01v
dXNlRXZlbnRPcHRpb25zIG1vdXNlRXZlbnRPcHRpb25zLCBTaW11bGF0ZWRDbGlja1Zpc3VhbE9w
dGlvbnMgdmlzdWFsT3B0aW9ucykKIHsKICAgICBpZiAobm9kZS0+ZGlzYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjIwLDExICsyMjAsMTMgQEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRp
c3BhdGNoU2ltdWxhdGVkQ2xpY2soTm9kZSogbm9kZSwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCwK
IAogICAgIGdOb2Rlc0Rpc3BhdGNoaW5nU2ltdWxhdGVkQ2xpY2tzLT5hZGQobm9kZSk7CiAKLSAg
ICAvLyBzZW5kIG1vdXNlZG93biBhbmQgbW91c2V1cCBiZWZvcmUgdGhlIGNsaWNrLCBpZiByZXF1
ZXN0ZWQKLSAgICBpZiAoc2VuZE1vdXNlRXZlbnRzKQorICAgIGlmIChtb3VzZUV2ZW50T3B0aW9u
cyA9PSBTZW5kTW91c2VPdmVyVXBEb3duRXZlbnRzKQorICAgICAgICBFdmVudERpc3BhdGNoZXIo
bm9kZSkuZGlzcGF0Y2hFdmVudChTaW11bGF0ZWRNb3VzZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLm1vdXNlb3ZlckV2ZW50LCBub2RlLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLCB1bmRl
cmx5aW5nRXZlbnQpKTsKKworICAgIGlmIChtb3VzZUV2ZW50T3B0aW9ucyA+IFNlbmROb0V2ZW50
cykKICAgICAgICAgRXZlbnREaXNwYXRjaGVyKG5vZGUpLmRpc3BhdGNoRXZlbnQoU2ltdWxhdGVk
TW91c2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCwgbm9kZS0+ZG9j
dW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwgdW5kZXJseWluZ0V2ZW50KSk7Ci0gICAgbm9kZS0+c2V0
QWN0aXZlKHRydWUsIHNob3dQcmVzc2VkTG9vayk7Ci0gICAgaWYgKHNlbmRNb3VzZUV2ZW50cykK
KyAgICBub2RlLT5zZXRBY3RpdmUodHJ1ZSwgdmlzdWFsT3B0aW9ucyA9PSBTaG93UHJlc3NlZExv
b2spOworICAgIGlmIChtb3VzZUV2ZW50T3B0aW9ucyA+IFNlbmROb0V2ZW50cykKICAgICAgICAg
RXZlbnREaXNwYXRjaGVyKG5vZGUpLmRpc3BhdGNoRXZlbnQoU2ltdWxhdGVkTW91c2VFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5tb3VzZXVwRXZlbnQsIG5vZGUtPmRvY3VtZW50KCktPmRlZmF1
bHRWaWV3KCksIHVuZGVybHlpbmdFdmVudCkpOwogICAgIG5vZGUtPnNldEFjdGl2ZShmYWxzZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudERpc3BhdGNoZXIuaAppbmRleCBlNzNkMzE2ODAxNmViMzEw
ZDllM2NlODM2OWEzZTcwMDY1NThmMjRkLi42NDU4NjFlOGM4OThiOTI3ZGJjZTEwZDIwMzlhNTgw
ZjEzM2U3ODc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnREaXNwYXRjaGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50RGlzcGF0Y2hlci5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEV2ZW50RGlzcGF0Y2hlcl9oCiAjZGVmaW5lIEV2ZW50RGlzcGF0Y2hl
cl9oCiAKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTM3LDcgKzM4
LDYgQEAgY2xhc3MgRXZlbnRDb250ZXh0OwogY2xhc3MgRXZlbnREaXNwYXRjaE1lZGlhdG9yOwog
Y2xhc3MgRXZlbnRUYXJnZXQ7CiBjbGFzcyBGcmFtZVZpZXc7Ci1jbGFzcyBOb2RlOwogY2xhc3Mg
UGxhdGZvcm1LZXlib2FyZEV2ZW50OwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50OwogY2xhc3Mg
U2hhZG93Um9vdDsKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGRp
c3BhdGNoRXZlbnQoTm9kZSosIFBhc3NSZWZQdHI8RXZlbnREaXNwYXRjaE1lZGlhdG9yPik7CiAg
ICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hTY29wZWRFdmVudChOb2RlKiwgUGFzc1JlZlB0cjxFdmVu
dERpc3BhdGNoTWVkaWF0b3I+KTsKIAotICAgIHN0YXRpYyB2b2lkIGRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2soTm9kZSosIEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRz
LCBib29sIHNob3dQcmVzc2VkTG9vayk7CisgICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hTaW11bGF0
ZWRDbGljayhOb2RlKiwgRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3Vz
ZUV2ZW50T3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zKTsKIAogICAgIGJvb2wg
ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBhZGp1c3RSZWxhdGVk
VGFyZ2V0KEV2ZW50KiwgUGFzc1JlZlB0cjxFdmVudFRhcmdldD4gcHJwUmVsYXRlZFRhcmdldCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggODZmMzUyOTdmMDM0N2U5NWVlNGY1NGEzMDgzY2ZkZTRjM2Mx
NmUwOC4uZDQ1OWYyMmQzYmVhODljNmQzZmNiMmJhZDAxN2UyNjEyOWQyZTA0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtMjYxNCw5ICsyNjE0LDkgQEAgYm9vbCBOb2RlOjpkaXNwYXRjaEdlc3R1cmVF
dmVudChjb25zdCBQbGF0Zm9ybUdlc3R1cmVFdmVudCYgZXZlbnQpCiB9CiAjZW5kaWYKIAotdm9p
ZCBOb2RlOjpkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQsIGJv
b2wgc2VuZE1vdXNlRXZlbnRzLCBib29sIHNob3dQcmVzc2VkTG9vaykKK3ZvaWQgTm9kZTo6ZGlz
cGF0Y2hTaW11bGF0ZWRDbGljayhFdmVudCogdW5kZXJseWluZ0V2ZW50LCBTaW11bGF0ZWRDbGlj
a01vdXNlRXZlbnRPcHRpb25zIGV2ZW50T3B0aW9ucywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRp
b25zIHZpc3VhbE9wdGlvbnMpCiB7Ci0gICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNpbXVs
YXRlZENsaWNrKHRoaXMsIHVuZGVybHlpbmdFdmVudCwgc2VuZE1vdXNlRXZlbnRzLCBzaG93UHJl
c3NlZExvb2spOworICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayh0
aGlzLCB1bmRlcmx5aW5nRXZlbnQsIGV2ZW50T3B0aW9ucywgdmlzdWFsT3B0aW9ucyk7CiB9CiAK
IGJvb2wgTm9kZTo6ZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQoY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAppbmRleCBhOThiY2M4ZGExMTYyY2FlMDRmZjRmZDY2OGMxYzg3MDZiOGNj
NzZkLi4zMTI2OWNlNGFlMzk3NmI2NTNkYjM4MmY4ZGEzYzE3ZjJhYmJkOTU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTExMCw2ICsxMTAsMTcgQEAgZW51bSBTdHlsZUNoYW5nZVR5cGUgewogICAgIFN5bnRo
ZXRpY1N0eWxlQ2hhbmdlID0gMyA8PCBub2RlU3R5bGVDaGFuZ2VTaGlmdAogfTsKIAorZW51bSBT
aW11bGF0ZWRDbGlja01vdXNlRXZlbnRPcHRpb25zIHsKKyAgICBTZW5kTm9FdmVudHMsCisgICAg
U2VuZE1vdXNlVXBEb3duRXZlbnRzLAorICAgIFNlbmRNb3VzZU92ZXJVcERvd25FdmVudHMKK307
CisKK2VudW0gU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zIHsKKyAgICBEb05vdFNob3dQcmVz
c2VkTG9vaywKKyAgICBTaG93UHJlc3NlZExvb2sKK307CisKIGNsYXNzIE5vZGVSYXJlRGF0YUJh
c2UgewogcHVibGljOgogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7IHJldHVy
biBtX3JlbmRlcmVyOyB9CkBAIC02NDAsNyArNjUxLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShH
RVNUVVJFX0VWRU5UUykKICAgICBib29sIGRpc3BhdGNoR2VzdHVyZUV2ZW50KGNvbnN0IFBsYXRm
b3JtR2VzdHVyZUV2ZW50Jik7CiAjZW5kaWYKLSAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xp
Y2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgYm9vbCBzZW5kTW91c2VFdmVudHMgPSBmYWxzZSwg
Ym9vbCBzaG93UHJlc3NlZExvb2sgPSB0cnVlKTsKKyAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVudCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0
aW9ucyA9IFNlbmROb0V2ZW50cywgU2ltdWxhdGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1By
ZXNzZWRMb29rKTsKICAgICBib29sIGRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUGFz
c1JlZlB0cjxOb2RlPiBvbGRGb2N1c2VkTm9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCAyODEyMTczYjc3NjI4MzY0Njc0NGU1YTAy
Mzc0YmMyZGZlZDMzM2Q4Li5jYjYxYzdlNTgxOGUzNzMwMGExZGU3YzI5NmQyNTBhMTEyNjRlZDdi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAK
QEAgLTg5LDkgKzg5LDcgQEAgdm9pZCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjphY2Nlc3NLZXlB
Y3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiB7CiAgICAgSW5wdXRUeXBlOjphY2Nlc3NLZXlB
Y3Rpb24oc2VuZE1vdXNlRXZlbnRzKTsKIAotICAgIC8vIFNlbmQgbW91c2UgYnV0dG9uIGV2ZW50
cyBpZiB0aGUgY2FsbGVyIHNwZWNpZmllZCBzZW5kTW91c2VFdmVudHMuCi0gICAgLy8gRklYTUU6
IFRoZSBjb21tZW50IGFib3ZlIGlzIG5vIGdvb2QuIEl0IHNheXMgd2hhdCB3ZSBkbywgYnV0IG5v
dCB3aHkuCi0gICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3Vz
ZUV2ZW50cyk7CisgICAgZWxlbWVudCgpLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRN
b3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7CiB9CiAK
IFN0cmluZyBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVlKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5jcHAKaW5kZXggMzI5YzUxMmVkMjJjY2Y2NGYyNjQxZGIxNmQ1YWIyZWQwNzllZGI1MC4uMmEw
OWIyZmQ4MDU5ZjYwOWQxODE5NGI1OGZjNzgzYjYwMTRhOGNiNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5jcHAKQEAgLTc1
LDkgKzc1LDcgQEAgdm9pZCBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZTo6aGFuZGxlS2V5
dXBFdmVudChJbnB1dFR5cGUmIGlucHV0VHlwZSwgS2V5Ym8KIC8vIEZJWE1FOiBDb3VsZCBzaGFy
ZSB0aGlzIHdpdGggQmFzZUNoZWNrYWJsZUlucHV0VHlwZSBhbmQgUmFuZ2VJbnB1dFR5cGUgaWYg
d2UgaGFkIGEgY29tbW9uIGJhc2UgY2xhc3MuCiB2b2lkIEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlOjphY2Nlc3NLZXlBY3Rpb24oSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgYm9vbCBz
ZW5kTW91c2VFdmVudHMpCiB7Ci0gICAgLy8gU2VuZCBtb3VzZSBidXR0b24gZXZlbnRzIGlmIHRo
ZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRNb3VzZUV2ZW50cy4KLSAgICAvLyBGSVhNRTogVGhlIGNv
bW1lbnQgYWJvdmUgaXMgbm8gZ29vZC4gSXQgc2F5cyB3aGF0IHdlIGRvLCBidXQgbm90IHdoeS4K
LSAgICBlbGVtZW50LT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7
CisgICAgZWxlbWVudC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMg
PyBTZW5kTW91c2VVcERvd25FdmVudHMgOiBTZW5kTm9FdmVudHMpOwogfQogCiB2b2lkIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4
IGZiZWQ2MzJlNWM3YTc3ODIxYWU4YjU4Y2RjYWY0OWIzNzc5MTZiMGIuLjNmMTZhMjg4ZjFkMmM3
Mzg3MjU3MGYyMjVjOTQ2MmE3NDIyYmY3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuY3BwCkBAIC0yNDEsOCArMjQxLDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAKIHZvaWQgSFRN
TEFuY2hvckVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsK
LSAgICAvLyBzZW5kIHRoZSBtb3VzZSBidXR0b24gZXZlbnRzIGlmIHRoZSBjYWxsZXIgc3BlY2lm
aWVkIHNlbmRNb3VzZUV2ZW50cwotICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1v
dXNlRXZlbnRzKTsKKyAgICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50
cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6IFNlbmROb0V2ZW50cyk7CiB9CiAKIGJvb2wgSFRN
TEFuY2hvckVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRl
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCAy
MDVlOTYyNjkwYzJjMGY3NDY4MGIzZGI3MWFjNjVkNDM4YjE4NTk0Li42ZmQwNjc4NTdlMzFjMDYy
ODEwZGVjMGNlMzhlY2NhZGNlZWI1MjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0
b25FbGVtZW50LmNwcApAQCAtMTkyLDggKzE5Miw4IEBAIGJvb2wgSFRNTEJ1dHRvbkVsZW1lbnQ6
OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZm9ybURhdGEsIGJvb2wpCiB2b2lkIEhUTUxC
dXR0b25FbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpCiB7CiAg
ICAgZm9jdXMoKTsKLSAgICAvLyBTZW5kIHRoZSBtb3VzZSBidXR0b24gZXZlbnRzIGlmIHRoZSBj
YWxsZXIgc3BlY2lmaWVkIHNlbmRNb3VzZUV2ZW50cwotICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xp
Y2soMCwgc2VuZE1vdXNlRXZlbnRzKTsKKworICAgIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwg
c2VuZE1vdXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsK
IH0KIAogYm9vbCBIVE1MQnV0dG9uRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmli
dXRlJiBhdHRyaWJ1dGUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4
IDljNjY0YWI5N2NjYTlhNGJjZTRlZTNhNDNkNGJjMzFkNWZiYzMyYmMuLmVjOWUwZGI2MTA1NTgx
NGVmNjIyOGIwZjliMjE3YjM5NTZiYTBkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCkBAIC02OTAsMTIgKzY5MCwxMiBAQCB2b2lkIEhUTUxFbGVtZW50OjpzZXRTcGVsbGNoZWNr
KGJvb2wgZW5hYmxlKQogCiB2b2lkIEhUTUxFbGVtZW50OjpjbGljaygpCiB7Ci0gICAgZGlzcGF0
Y2hTaW11bGF0ZWRDbGljaygwLCBmYWxzZSwgZmFsc2UpOworICAgIGRpc3BhdGNoU2ltdWxhdGVk
Q2xpY2soMCwgU2VuZE5vRXZlbnRzLCBEb05vdFNob3dQcmVzc2VkTG9vayk7CiB9CiAKIHZvaWQg
SFRNTEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKLSAg
ICBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7CisgICAgZGlzcGF0
Y2hTaW11bGF0ZWRDbGljaygwLCBzZW5kTW91c2VFdmVudHMgPyBTZW5kTW91c2VVcERvd25FdmVu
dHMgOiBTZW5kTm9FdmVudHMpOwogfQogCiBTdHJpbmcgSFRNTEVsZW1lbnQ6OnRpdGxlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMWNlYWU4
YzE4MDVkMDAzN2IxZjNkZDI3MTFlZDYxYjAzNGRmMmIxOC4uNDhmYWQ0OGM2M2NiMzA1YmRiOGZk
Zjk4NDU3N2E3MGZjZmMzMjcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5jcHAKQEAgLTM5Myw3ICszOTMsNyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpvcHRp
b25FbGVtZW50Q2hpbGRyZW5DaGFuZ2VkKCkKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmFjY2Vz
c0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKICAgICBmb2N1cygpOwotICAgIGRp
c3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNlRXZlbnRzKTsKKyAgICBkaXNwYXRjaFNp
bXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyA/IFNlbmRNb3VzZVVwRG93bkV2ZW50cyA6
IFNlbmROb0V2ZW50cyk7CiB9CiAKIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnNldE11bHRpcGxl
KGJvb2wgbXVsdGlwbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhZGlvSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1dFR5cGUuY3BwCmluZGV4
IDA3NmUyMmE1YWUyMTA3YzVmNmNmYjkzZjVjMWU3ZDY2MGNhNmU5NzYuLmE5ZDg2ZjNlNWZjN2I0
N2Q4YzdhNWMzMjhmZGQ1MDcwYmZjMTcwYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFkaW9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFkaW9JbnB1
dFR5cGUuY3BwCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgUmFkaW9JbnB1dFR5cGU6OmhhbmRsZUtl
eWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBpZiAoaW5wdXRFbGVtZW50LT5pc1JhZGlvQnV0dG9uKCkgJiYgaW5wdXRFbGVtZW50LT5u
YW1lKCkgPT0gZWxlbWVudCgpLT5uYW1lKCkgJiYgaW5wdXRFbGVtZW50LT5pc0ZvY3VzYWJsZSgp
KSB7CiAgICAgICAgICAgICBkb2N1bWVudC0+c2V0Rm9jdXNlZE5vZGUoaW5wdXRFbGVtZW50KTsK
LSAgICAgICAgICAgIGlucHV0RWxlbWVudC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhldmVudCwg
ZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgIGlucHV0RWxlbWVudC0+ZGlzcGF0Y2hTaW11bGF0
ZWRDbGljayhldmVudCwgU2VuZE5vRXZlbnRzLCBEb05vdFNob3dQcmVzc2VkTG9vayk7CiAgICAg
ICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCAzYzIz
M2UzYzJiZTJkOGU4NDcyOTNiYTIzMzcwZmNkOWJkYTI0YmU1Li5kYzhmMTc5NmZiMjUxMjYwM2U4
MDVlY2QxYTM1MjQ2ZjNlODdkNzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtMjg2LDkgKzI4Niw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmFjY2Vzc0tleUFj
dGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKIHsKICAgICBJbnB1dFR5cGU6OmFjY2Vzc0tleUFj
dGlvbihzZW5kTW91c2VFdmVudHMpOwogCi0gICAgLy8gU2VuZCBtb3VzZSBidXR0b24gZXZlbnRz
IGlmIHRoZSBjYWxsZXIgc3BlY2lmaWVkIHNlbmRNb3VzZUV2ZW50cy4KLSAgICAvLyBGSVhNRTog
VGhlIGNvbW1lbnQgYWJvdmUgaXMgbm8gZ29vZC4gSXQgc2F5cyB3aGF0IHdlIGRvLCBidXQgbm90
IHdoeS4KLSAgICBlbGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1vdXNl
RXZlbnRzKTsKKyAgICBlbGVtZW50KCktPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soMCwgc2VuZE1v
dXNlRXZlbnRzID8gU2VuZE1vdXNlVXBEb3duRXZlbnRzIDogU2VuZE5vRXZlbnRzKTsKIH0KIAog
dm9pZCBSYW5nZUlucHV0VHlwZTo6bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkK
</data>
<flag name="review"
          id="190110"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>