<?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>137128</bug_id>
          
          <creation_ts>2014-09-25 14:14:09 -0700</creation_ts>
          <short_desc>Add support for is&lt;SVGDocument&gt;() / downcast&lt;SVGDocument&gt;()</short_desc>
          <delta_ts>2014-09-25 17:35:15 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>137056</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kling</cc>
    
    <cc>mario</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1037293</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-25 14:14:09 -0700</bug_when>
    <thetext>Add support for is&lt;SVGDocument&gt;() / downcast&lt;SVGDocument&gt;() by using the SPECIALIZE_TYPE_TRAITS_*() macro, instead of the DOCUMENT_TYPE_CASTS() one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037294</commentid>
    <comment_count>1</comment_count>
      <attachid>238671</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-25 14:17:21 -0700</bug_when>
    <thetext>Created attachment 238671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037295</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-25 14:19:22 -0700</bug_when>
    <thetext>Attachment 238671 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGDocument.h:57:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037333</commentid>
    <comment_count>3</comment_count>
      <attachid>238671</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-09-25 16:26:20 -0700</bug_when>
    <thetext>Comment on attachment 238671
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:763
&gt; +    if (is&lt;SVGDocument&gt;(m_frame.document())
&gt; +        &amp;&amp; downcast&lt;SVGDocument&gt;(*m_frame.document()).zoomAndPanEnabled()) {

We can probably fit this in one line instead.

&gt; Source/WebCore/page/Frame.cpp:971
&gt; +    if (is&lt;SVGDocument&gt;(document)) {
&gt; +        if (!downcast&lt;SVGDocument&gt;(*document).zoomAndPanEnabled())

Why don&apos;t we check both of these conditions in one if statement instead?

&gt; Source/WebCore/page/FrameView.cpp:1964
&gt; +    if (is&lt;SVGDocument&gt;(frame().document())) {
&gt; +        if (SVGSVGElement* svg = downcast&lt;SVGDocument&gt;(*frame().document()).rootElement()) {

Ditto.

&gt; Source/WebCore/svg/graphics/SVGImage.cpp:71
&gt; -    SVGSVGElement* rootElement = toSVGDocument(m_page-&gt;mainFrame().document())-&gt;rootElement();
&gt; +    SVGSVGElement* rootElement = downcast&lt;SVGDocument&gt;(*m_page-&gt;mainFrame().document()).rootElement();

Should we add a helper function to get the root element or nullptr?
Repeating the code over and over isn&apos;t so great...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037339</commentid>
    <comment_count>4</comment_count>
      <attachid>238682</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-25 16:39:06 -0700</bug_when>
    <thetext>Created attachment 238682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037341</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-25 16:42:05 -0700</bug_when>
    <thetext>Attachment 238682 did not pass style-queue:


ERROR: Source/WebCore/svg/SVGDocument.h:57:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037358</commentid>
    <comment_count>6</comment_count>
      <attachid>238682</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-25 17:35:08 -0700</bug_when>
    <thetext>Comment on attachment 238682
Patch

Clearing flags on attachment: 238682

Committed r173987: &lt;http://trac.webkit.org/changeset/173987&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037359</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-25 17:35:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238671</attachid>
            <date>2014-09-25 14:17:21 -0700</date>
            <delta_ts>2014-09-25 16:38:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137128-20140925141721.patch</filename>
            <type>text/plain</type>
            <size>11917</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczOTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzI2NzE0MmY0MDNjM2M1
MzFhYTdlMDg1OTM0N2RiNmU5MDliNWZmYi4uYmQzYzY0ZDQ4YWYxMzM4ZmEzYmFlOTI0MGVhMDE1
ZjBmNmYwMGQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTA5LTI1ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgaXM8U1ZHRG9jdW1lbnQ+KCkgLyBkb3duY2FzdDxTVkdEb2N1bWVudD4oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGlz
PFNWR0RvY3VtZW50PigpIC8gZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCkgYnkgdXNpbmcKKyAgICAg
ICAgdGhlIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfKigpIG1hY3JvLCBpbnN0ZWFkIG9mIHRoZQor
ICAgICAgICBET0NVTUVOVF9UWVBFX0NBU1RTKCkgb25lLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnJlbW90ZVNWR1Jvb3RFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxG
cmFtZU93bmVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVs
ZW1lbnQ6OmdldFNWR0RvY3VtZW50KToKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQp
OgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNl
dFBhZ2VBbmRUZXh0Wm9vbUZhY3RvcnMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IpOgorICAgICAgICAq
IHN2Zy9TVkdEb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNTVkdEb2N1bWVudCk6Cisg
ICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ltYWdlOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdJ
bWFnZTo6c2V0Q29udGFpbmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6Y29u
dGFpbmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6ZW1iZWRkZWRDb250ZW50
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpoYXNSZWxhdGl2ZVdpZHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlOjpoYXNSZWxhdGl2ZUhlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0ltYWdlOjpzdG9wQW5pbWF0aW9uKToKKwogMjAxNC0wOS0yNSAgSmVyZW15IEpvbmVzICA8amVy
ZW15akBhcHBsZS5jb20+CiAKICAgICAgICAgUmFjZSBpbiByZWYgcG9pbnRlciBmb3IgV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCAzZTJh
OGY3YWU2NWNiMDk0ZjliMDY2ZTgzOWY1MjQxNTdhYzY2ZGYxLi5hYWFhOWY0YWE4MzY2ODdkNDc0
NzZjNGMzNTg3NjJkZGY5NzdjZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTI4ODEsMTAg
KzI4ODEsMTAgQEAgQWNjZXNzaWJpbGl0eVNWR1Jvb3QqIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnJlbW90ZVNWR1Jvb3RFbGVtZW50KCkgY29uc3QKICAgICBGcmFtZSYgZnJhbWUgPSBmcmFt
ZVZpZXctPmZyYW1lKCk7CiAgICAgCiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUuZG9j
dW1lbnQoKTsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+aXNTVkdEb2N1bWVudCgp
KQorICAgIGlmICghZG9jdW1lbnQgfHwgIWlzPFNWR0RvY3VtZW50Pihkb2N1bWVudCkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogICAgIAotICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50
ID0gdG9TVkdEb2N1bWVudCgqZG9jdW1lbnQpLnJvb3RFbGVtZW50KCk7CisgICAgU1ZHU1ZHRWxl
bWVudCogcm9vdEVsZW1lbnQgPSBkb3duY2FzdDxTVkdEb2N1bWVudD4oKmRvY3VtZW50KS5yb290
RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXJSb290ID0gcm9vdEVsZW1lbnQtPnJlbmRlcmVy
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKaW5k
ZXggNTgwN2QxOWVlZGUyMDhjZmY2ODAwMzRjYjQ3ZmQyNjIwZTNiMTlkNC4uYTVlMzE5NTg0NGUz
ZGY2OGY5MjU5NDIwYjE3ZjMxZjE5OTgxZTNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcApAQCAtMTE0LDggKzExNCw4IEBAIGJvb2wgSFRNTEZy
YW1lT3duZXJFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqIGV2ZW50
KSBjb25zdAogU1ZHRG9jdW1lbnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6Z2V0U1ZHRG9jdW1l
bnQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
Y29udGVudERvY3VtZW50KCk7Ci0gICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5pc1NWR0Rv
Y3VtZW50KCkpCi0gICAgICAgIHJldHVybiB0b1NWR0RvY3VtZW50KGRvY3VtZW50KTsKKyAgICBp
ZiAoZG9jdW1lbnQgJiYgaXM8U1ZHRG9jdW1lbnQ+KGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJu
IGRvd25jYXN0PFNWR0RvY3VtZW50Pihkb2N1bWVudCk7CiAgICAgLy8gU3BlYzogaHR0cDovL3d3
dy53My5vcmcvVFIvU1ZHL3N0cnVjdC5odG1sI0ludGVyZmFjZUdldFNWR0RvY3VtZW50CiAgICAg
ZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAzYzE1MjE3ODk0NGRhMjVlODBjNWNlMDQxZGE1MzNk
MGI5YWY2ZTk1Li44MDExODlmYzZlMTA0MTdhZTY0MTk4ZWIyNzJmZjAyN2RmNGE2NzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC03NTksMTEgKzc1OSwxMSBAQCBib29s
IEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMmIGV2ZQogICAgIGlmIChldmVudC5pc092ZXJXaWRnZXQoKSAmJiBwYXNz
V2lkZ2V0TW91c2VEb3duRXZlbnRUb1dpZGdldChldmVudCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0gICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgpCi0gICAgICAg
ICYmIHRvU1ZHRG9jdW1lbnQoKm1fZnJhbWUuZG9jdW1lbnQoKSkuem9vbUFuZFBhbkVuYWJsZWQo
KSkgeworICAgIGlmIChpczxTVkdEb2N1bWVudD4obV9mcmFtZS5kb2N1bWVudCgpKQorICAgICAg
ICAmJiBkb3duY2FzdDxTVkdEb2N1bWVudD4oKm1fZnJhbWUuZG9jdW1lbnQoKSkuem9vbUFuZFBh
bkVuYWJsZWQoKSkgewogICAgICAgICBpZiAoZXZlbnQuZXZlbnQoKS5zaGlmdEtleSgpICYmIHNp
bmdsZUNsaWNrKSB7CiAgICAgICAgICAgICBtX3N2Z1BhbiA9IHRydWU7Ci0gICAgICAgICAgICB0
b1NWR0RvY3VtZW50KCptX2ZyYW1lLmRvY3VtZW50KCkpLnN0YXJ0UGFuKG1fZnJhbWUudmlldygp
LT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKSkpOworICAgICAgICAg
ICAgZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCptX2ZyYW1lLmRvY3VtZW50KCkpLnN0YXJ0UGFuKG1f
ZnJhbWUudmlldygpLT53aW5kb3dUb0NvbnRlbnRzKGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKSkp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODkzLDcg
KzE4OTMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogI2VuZGlmCiAKICAgICBpZiAobV9z
dmdQYW4pIHsKLSAgICAgICAgdG9TVkdEb2N1bWVudChtX2ZyYW1lLmRvY3VtZW50KCkpLT51cGRh
dGVQYW4obV9mcmFtZS52aWV3KCktPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBv
c2l0aW9uKSk7CisgICAgICAgIGRvd25jYXN0PFNWR0RvY3VtZW50PigqbV9mcmFtZS5kb2N1bWVu
dCgpKS51cGRhdGVQYW4obV9mcmFtZS52aWV3KCktPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjAz
Nyw3ICsyMDM3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1Nb3UKIAogICAgIGlmIChtX3N2Z1Bh
bikgewogICAgICAgICBtX3N2Z1BhbiA9IGZhbHNlOwotICAgICAgICB0b1NWR0RvY3VtZW50KG1f
ZnJhbWUuZG9jdW1lbnQoKSktPnVwZGF0ZVBhbihtX2ZyYW1lLnZpZXcoKS0+d2luZG93VG9Db250
ZW50cyhtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24pKTsKKyAgICAgICAgZG93bmNhc3Q8U1ZHRG9j
dW1lbnQ+KCptX2ZyYW1lLmRvY3VtZW50KCkpLnVwZGF0ZVBhbihtX2ZyYW1lLnZpZXcoKS0+d2lu
ZG93VG9Db250ZW50cyhtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24pKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDg5MmU0ZjVjMWNiNGNmOTBi
MjRmNDQxMDVkNDhlZDEzNDM5YWU4ZmIuLmZlNDkzZjlkNWYwMDI4NTYzNDE4ZWE4MDEyNzc5MTY2
Y2IzN2IwOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC05NjcsOCArOTY3LDggQEAgdm9pZCBG
cmFtZTo6c2V0UGFnZUFuZFRleHRab29tRmFjdG9ycyhmbG9hdCBwYWdlWm9vbUZhY3RvciwgZmxv
YXQgdGV4dFpvb21GYWN0b3IKIAogICAgIC8vIFJlc3BlY3QgU1ZHcyB6b29tQW5kUGFuPSJkaXNh
YmxlZCIgcHJvcGVydHkgaW4gc3RhbmRhbG9uZSBTVkcgZG9jdW1lbnRzLgogICAgIC8vIEZJWE1F
OiBIb3cgdG8gaGFuZGxlIGNvbXBvdW5kIGRvY3VtZW50cyArIHpvb21BbmRQYW49ImRpc2FibGVk
Ij8gTmVlZHMgU1ZHIFdHIGNsYXJpZmljYXRpb24uCi0gICAgaWYgKGRvY3VtZW50LT5pc1NWR0Rv
Y3VtZW50KCkpIHsKLSAgICAgICAgaWYgKCF0b1NWR0RvY3VtZW50KCpkb2N1bWVudCkuem9vbUFu
ZFBhbkVuYWJsZWQoKSkKKyAgICBpZiAoaXM8U1ZHRG9jdW1lbnQ+KGRvY3VtZW50KSkgeworICAg
ICAgICBpZiAoIWRvd25jYXN0PFNWR0RvY3VtZW50PigqZG9jdW1lbnQpLnpvb21BbmRQYW5FbmFi
bGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggZGY2ZmVlNDUwNTU5NjE5NTUzOGRkMzY5NzMwMGMxMmYxYmNhOWE3My4uNGZj
NTNkZWYxMDAwY2Y1MjhiZGM4ZTE0Y2UzOTUwMTdjYTEyODA0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtMTk2MCw4ICsxOTYwLDggQEAgYm9vbCBGcmFtZVZpZXc6OnNjcm9sbFRv
QW5jaG9yKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAvLyBTZXR0aW5nIHRvIG51bGwgd2lsbCBj
bGVhciB0aGUgY3VycmVudCB0YXJnZXQuCiAgICAgZnJhbWUoKS5kb2N1bWVudCgpLT5zZXRDU1NU
YXJnZXQoYW5jaG9yRWxlbWVudCk7CiAKLSAgICBpZiAoZnJhbWUoKS5kb2N1bWVudCgpLT5pc1NW
R0RvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKFNWR1NWR0VsZW1lbnQqIHN2ZyA9IHRvU1ZHRG9j
dW1lbnQoKmZyYW1lKCkuZG9jdW1lbnQoKSkucm9vdEVsZW1lbnQoKSkgeworICAgIGlmIChpczxT
VkdEb2N1bWVudD4oZnJhbWUoKS5kb2N1bWVudCgpKSkgeworICAgICAgICBpZiAoU1ZHU1ZHRWxl
bWVudCogc3ZnID0gZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCpmcmFtZSgpLmRvY3VtZW50KCkpLnJv
b3RFbGVtZW50KCkpIHsKICAgICAgICAgICAgIHN2Zy0+c2V0dXBJbml0aWFsVmlldyhuYW1lLCBh
bmNob3JFbGVtZW50KTsKICAgICAgICAgICAgIGlmICghYW5jaG9yRWxlbWVudCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdE
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKaW5kZXggMjc4Mjlj
NTMyMGMzMDZmOWM2YWYyZTBkZjg4YmRiYTRiYjE5ZjU5NS4uOTk2MDE1ZWVkMTlhMzg5M2ZkMWEw
MGJjZDczYjA5OGM0ZjVkNGNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0RvY3VtZW50LmgKQEAgLTUyLDEw
ICs1MiwxMCBAQCBwcml2YXRlOgogICAgIEZsb2F0UG9pbnQgbV90cmFuc2xhdGU7CiB9OwogCi1p
bmxpbmUgYm9vbCBpc1NWR0RvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1
cm4gZG9jdW1lbnQuaXNTVkdEb2N1bWVudCgpOyB9Ci12b2lkIGlzU1ZHRG9jdW1lbnQoY29uc3Qg
U1ZHRG9jdW1lbnQmKTsgLy8gQ2F0Y2ggdW5uZWNlc3NhcnkgcnVudGltZSBjaGVjayBvZiB0eXBl
IGtub3duIGF0IGNvbXBpbGUgdGltZS4KLQotRE9DVU1FTlRfVFlQRV9DQVNUUyhTVkdEb2N1bWVu
dCkKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oU1ZHRG9jdW1lbnQpCisgICAgc3RhdGlj
IGJvb2wgaXNTVkdEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRv
Y3VtZW50LmlzU1ZHRG9jdW1lbnQoKTsgfQorICAgIHN0YXRpYyBib29sIGlzU1ZHRG9jdW1lbnQo
Y29uc3QgTm9kZSYgbm9kZSkgeyByZXR1cm4gbm9kZS5pc0RvY3VtZW50Tm9kZSgpICYmIGlzU1ZH
RG9jdW1lbnQodG9Eb2N1bWVudChub2RlKSk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5E
KCkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcAppbmRleCBhNDg5MTkxZDc5MzZkMmJiMzExOGFmOTk1MmJjMjAzZjE4ZGYy
NDBhLi5mMmI0MzA2OGY0YTU0MGMxNjc4NzRjYjljNzQyMDNiOGJlNmM5ZjJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBT
VkdJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdAogICAgIGlmICghbV9wYWdl
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50
ID0gdG9TVkdEb2N1bWVudChtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpLT5yb290RWxl
bWVudCgpOworICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gZG93bmNhc3Q8U1ZHRG9j
dW1lbnQ+KCptX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpLnJvb3RFbGVtZW50KCk7CiAg
ICAgaWYgKCFyb290RWxlbWVudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAgLTg2LDcgKzg2
LDcgQEAgdm9pZCBTVkdJbWFnZTo6c2V0Q29udGFpbmVyU2l6ZShjb25zdCBGbG9hdFNpemUmIHNp
emUpCiAgICAgaWYgKCFtX3BhZ2UgfHwgIXVzZXNDb250YWluZXJTaXplKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gdG9TVkdEb2N1bWVudCht
X3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpLT5yb290RWxlbWVudCgpOworICAgIFNWR1NW
R0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCptX3BhZ2UtPm1h
aW5GcmFtZSgpLmRvY3VtZW50KCkpLnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVu
dCkKICAgICAgICAgcmV0dXJuOwogICAgIFJlbmRlclNWR1Jvb3QqIHJlbmRlcmVyID0gdG9SZW5k
ZXJTVkdSb290KHJvb3RFbGVtZW50LT5yZW5kZXJlcigpKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBJ
bnRTaXplIFNWR0ltYWdlOjpjb250YWluZXJTaXplKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFn
ZSkKICAgICAgICAgcmV0dXJuIEludFNpemUoKTsKLSAgICBTVkdTVkdFbGVtZW50KiByb290RWxl
bWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS0+cm9v
dEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IGRvd25jYXN0PFNW
R0RvY3VtZW50PigqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS5yb290RWxlbWVudCgp
OwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKQEAg
LTI2NCw3ICsyNjQsNyBAQCBSZW5kZXJCb3gqIFNWR0ltYWdlOjplbWJlZGRlZENvbnRlbnRCb3go
KSBjb25zdAogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gMDsKLSAgICBTVkdT
VkdFbGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWluRnJhbWUo
KS5kb2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxl
bWVudCA9IGRvd25jYXN0PFNWR0RvY3VtZW50PigqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVu
dCgpKS5yb290RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVy
biAwOwogICAgIHJldHVybiB0b1JlbmRlckJveChyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7CkBA
IC0yODEsNyArMjgxLDcgQEAgYm9vbCBTVkdJbWFnZTo6aGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTVkdTVkdF
bGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWluRnJhbWUoKS5k
b2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVu
dCA9IGRvd25jYXN0PFNWR0RvY3VtZW50PigqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
KS5yb290RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICByZXR1cm4gcm9vdEVsZW1lbnQtPmludHJpbnNpY1dpZHRoKCkuaXNQZXJjZW50
KCk7CkBAIC0yOTEsNyArMjkxLDcgQEAgYm9vbCBTVkdJbWFnZTo6aGFzUmVsYXRpdmVIZWlnaHQo
KSBjb25zdAogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
U1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0b1NWR0RvY3VtZW50KG1fcGFnZS0+bWFpbkZy
YW1lKCkuZG9jdW1lbnQoKSktPnJvb3RFbGVtZW50KCk7CisgICAgU1ZHU1ZHRWxlbWVudCogcm9v
dEVsZW1lbnQgPSBkb3duY2FzdDxTVkdEb2N1bWVudD4oKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9j
dW1lbnQoKSkucm9vdEVsZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHJvb3RFbGVtZW50LT5pbnRyaW5zaWNIZWlnaHQoKS5p
c1BlcmNlbnQoKTsKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFNWR0ltYWdlOjpjb21wdXRlSW50
cmluc2ljRGltZW5zaW9ucyhMZW5ndGgmIGludHJpbnNpY1dpZHRoLCBMZW5ndGgmIGludHJpbgog
ewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgU1ZHU1ZHRWxlbWVudCog
cm9vdEVsZW1lbnQgPSB0b1NWR0RvY3VtZW50KG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQo
KSktPnJvb3RFbGVtZW50KCk7CisgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSBkb3du
Y2FzdDxTVkdEb2N1bWVudD4oKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkucm9vdEVs
ZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTMy
MCw3ICszMjAsNyBAQCB2b2lkIFNWR0ltYWdlOjpzdGFydEFuaW1hdGlvbihDYXRjaFVwQW5pbWF0
aW9uKQogewogICAgIGlmICghbV9wYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgU1ZHU1ZHRWxl
bWVudCogcm9vdEVsZW1lbnQgPSB0b1NWR0RvY3VtZW50KG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9j
dW1lbnQoKSktPnJvb3RFbGVtZW50KCk7CisgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQg
PSBkb3duY2FzdDxTVkdEb2N1bWVudD4oKm1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSku
cm9vdEVsZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm47CiAg
ICAgcm9vdEVsZW1lbnQtPnVucGF1c2VBbmltYXRpb25zKCk7CkBAIC0zMzEsNyArMzMxLDcgQEAg
dm9pZCBTVkdJbWFnZTo6c3RvcEFuaW1hdGlvbigpCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAg
ICAgIHJldHVybjsKLSAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9jdW1l
bnQobV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAgICBT
VkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IGRvd25jYXN0PFNWR0RvY3VtZW50PigqbV9wYWdl
LT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS5yb290RWxlbWVudCgpOwogICAgIGlmICghcm9vdEVs
ZW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICByb290RWxlbWVudC0+cGF1c2VBbmltYXRpb25z
KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238682</attachid>
            <date>2014-09-25 16:39:06 -0700</date>
            <delta_ts>2014-09-25 17:35:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137128-20140925163905.patch</filename>
            <type>text/plain</type>
            <size>13417</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczOTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNhZDdiMmRlMDgyMGI1
NTZiZmIyMTY1NGQxNzg5Y2Y1ZGFkNWRmYS4uMDAzOTcyNGRlYTBhMjZmYzNkNmIzZjlmOWI0ZDUw
Y2U0NzQwZTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTA5LTI1ICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgaXM8U1ZHRG9jdW1lbnQ+KCkgLyBkb3duY2FzdDxTVkdEb2N1bWVudD4oKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MTI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBpczxT
VkdEb2N1bWVudD4oKSAvIGRvd25jYXN0PFNWR0RvY3VtZW50PigpIGJ5IHVzaW5nCisgICAgICAg
IHRoZSBTUEVDSUFMSVpFX1RZUEVfVFJBSVRTXyooKSBtYWNybywgaW5zdGVhZCBvZiB0aGUKKyAg
ICAgICAgRE9DVU1FTlRfVFlQRV9DQVNUUygpIG9uZS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpyZW1vdGVTVkdSb290RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRnJh
bWVPd25lckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVt
ZW50OjpnZXRTVkdEb2N1bWVudCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KToK
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXRQ
YWdlQW5kVGV4dFpvb21GYWN0b3JzKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbFRvQW5jaG9yKToKKyAgICAgICAgKiBz
dmcvU1ZHRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU1ZHRG9jdW1lbnQpOgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJ
bWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1h
Z2U6OnNldENvbnRhaW5lclNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmNvbnRh
aW5lclNpemUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVudEJv
eCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6aGFzUmVsYXRpdmVXaWR0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdJbWFnZTo6aGFzUmVsYXRpdmVIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNEaW1lbnNpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ltYWdlOjpzdGFydEFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdJ
bWFnZTo6c3RvcEFuaW1hdGlvbik6CisKIDIwMTQtMDktMjUgIEJyaWFuIEouIEJ1cmcgIDxidXJn
QGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAgICAgIFdlYiBSZXBsYXk6IENoZWNrIGV2ZW50IGxv
b3AgaW5wdXQgZXh0ZW50cyBkdXJpbmcgcmVwbGF5IHRvbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5k
ZXggM2UyYThmN2FlNjVjYjA5NGY5YjA2NmU4MzlmNTI0MTU3YWM2NmRmMS4uYWFhYTlmNGFhODM2
Njg3ZDQ3NDc2YzRjMzU4NzYyZGRmOTc3Y2RmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0y
ODgxLDEwICsyODgxLDEwIEBAIEFjY2Vzc2liaWxpdHlTVkdSb290KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpyZW1vdGVTVkdSb290RWxlbWVudCgpIGNvbnN0CiAgICAgRnJhbWUmIGZyYW1l
ID0gZnJhbWVWaWV3LT5mcmFtZSgpOwogICAgIAogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGZy
YW1lLmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmlzU1ZHRG9j
dW1lbnQoKSkKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFpczxTVkdEb2N1bWVudD4oZG9jdW1lbnQp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKLSAgICBTVkdTVkdFbGVtZW50KiByb290
RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQoKmRvY3VtZW50KS5yb290RWxlbWVudCgpOworICAgIFNW
R1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCpkb2N1bWVu
dCkucm9vdEVsZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyUm9vdCA9IHJvb3RFbGVtZW50LT5y
ZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQu
Y3BwCmluZGV4IDU4MDdkMTllZWRlMjA4Y2ZmNjgwMDM0Y2I0N2ZkMjYyMGUzYjE5ZDQuLmE1ZTMx
OTU4NDRlM2RmNjhmOTI1OTQyMGIxN2YzMWYxOTk4MWUzYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKQEAgLTExNCw4ICsxMTQsOCBAQCBib29s
IEhUTUxGcmFtZU93bmVyRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
KiBldmVudCkgY29uc3QKIFNWR0RvY3VtZW50KiBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmdldFNW
R0RvY3VtZW50KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewogICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IGNvbnRlbnREb2N1bWVudCgpOwotICAgIGlmIChkb2N1bWVudCAmJiBkb2N1bWVudC0+
aXNTVkdEb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gdG9TVkdEb2N1bWVudChkb2N1bWVudCk7
CisgICAgaWYgKGRvY3VtZW50ICYmIGlzPFNWR0RvY3VtZW50Pihkb2N1bWVudCkpCisgICAgICAg
IHJldHVybiBkb3duY2FzdDxTVkdEb2N1bWVudD4oZG9jdW1lbnQpOwogICAgIC8vIFNwZWM6IGh0
dHA6Ly93d3cudzMub3JnL1RSL1NWRy9zdHJ1Y3QuaHRtbCNJbnRlcmZhY2VHZXRTVkdEb2N1bWVu
dAogICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggM2MxNTIxNzg5NDRkYTI1ZTgwYzVjZTA0
MWRhNTMzZDBiOWFmNmU5NS4uYjU4Y2QwYjFjZmM5NDRkNDg2NTg2NGFhODU3OTRlYmE2NTQ5OWNk
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtNzU5LDExICs3NTksMTAg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKICAgICBpZiAoZXZlbnQuaXNPdmVyV2lkZ2V0KCkg
JiYgcGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoZXZlbnQpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAotICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPmlzU1ZHRG9jdW1lbnQoKQot
ICAgICAgICAmJiB0b1NWR0RvY3VtZW50KCptX2ZyYW1lLmRvY3VtZW50KCkpLnpvb21BbmRQYW5F
bmFibGVkKCkpIHsKKyAgICBpZiAoaXM8U1ZHRG9jdW1lbnQ+KG1fZnJhbWUuZG9jdW1lbnQoKSkg
JiYgZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCptX2ZyYW1lLmRvY3VtZW50KCkpLnpvb21BbmRQYW5F
bmFibGVkKCkpIHsKICAgICAgICAgaWYgKGV2ZW50LmV2ZW50KCkuc2hpZnRLZXkoKSAmJiBzaW5n
bGVDbGljaykgewogICAgICAgICAgICAgbV9zdmdQYW4gPSB0cnVlOwotICAgICAgICAgICAgdG9T
VkdEb2N1bWVudCgqbV9mcmFtZS5kb2N1bWVudCgpKS5zdGFydFBhbihtX2ZyYW1lLnZpZXcoKS0+
d2luZG93VG9Db250ZW50cyhldmVudC5ldmVudCgpLnBvc2l0aW9uKCkpKTsKKyAgICAgICAgICAg
IGRvd25jYXN0PFNWR0RvY3VtZW50PigqbV9mcmFtZS5kb2N1bWVudCgpKS5zdGFydFBhbihtX2Zy
YW1lLnZpZXcoKS0+d2luZG93VG9Db250ZW50cyhldmVudC5ldmVudCgpLnBvc2l0aW9uKCkpKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTg5Myw3ICsx
ODkyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1Nb3VzZUUKICNlbmRpZgogCiAgICAgaWYgKG1fc3Zn
UGFuKSB7Ci0gICAgICAgIHRvU1ZHRG9jdW1lbnQobV9mcmFtZS5kb2N1bWVudCgpKS0+dXBkYXRl
UGFuKG1fZnJhbWUudmlldygpLT53aW5kb3dUb0NvbnRlbnRzKG1fbGFzdEtub3duTW91c2VQb3Np
dGlvbikpOworICAgICAgICBkb3duY2FzdDxTVkdEb2N1bWVudD4oKm1fZnJhbWUuZG9jdW1lbnQo
KSkudXBkYXRlUGFuKG1fZnJhbWUudmlldygpLT53aW5kb3dUb0NvbnRlbnRzKG1fbGFzdEtub3du
TW91c2VQb3NpdGlvbikpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIwMzcs
NyArMjAzNiw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91CiAKICAgICBpZiAobV9zdmdQYW4p
IHsKICAgICAgICAgbV9zdmdQYW4gPSBmYWxzZTsKLSAgICAgICAgdG9TVkdEb2N1bWVudChtX2Zy
YW1lLmRvY3VtZW50KCkpLT51cGRhdGVQYW4obV9mcmFtZS52aWV3KCktPndpbmRvd1RvQ29udGVu
dHMobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uKSk7CisgICAgICAgIGRvd25jYXN0PFNWR0RvY3Vt
ZW50PigqbV9mcmFtZS5kb2N1bWVudCgpKS51cGRhdGVQYW4obV9mcmFtZS52aWV3KCktPndpbmRv
d1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA4OTJlNGY1YzFjYjRjZjkwYjI0
ZjQ0MTA1ZDQ4ZWQxMzQzOWFlOGZiLi5mYWQ5YTkyMzJlMmY0ZmY5MDA2NDRhMmE3NDQxMGY3NDJl
OTJmNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtOTY3LDEwICs5NjcsOCBAQCB2b2lkIEZy
YW1lOjpzZXRQYWdlQW5kVGV4dFpvb21GYWN0b3JzKGZsb2F0IHBhZ2Vab29tRmFjdG9yLCBmbG9h
dCB0ZXh0Wm9vbUZhY3RvcgogCiAgICAgLy8gUmVzcGVjdCBTVkdzIHpvb21BbmRQYW49ImRpc2Fi
bGVkIiBwcm9wZXJ0eSBpbiBzdGFuZGFsb25lIFNWRyBkb2N1bWVudHMuCiAgICAgLy8gRklYTUU6
IEhvdyB0byBoYW5kbGUgY29tcG91bmQgZG9jdW1lbnRzICsgem9vbUFuZFBhbj0iZGlzYWJsZWQi
PyBOZWVkcyBTVkcgV0cgY2xhcmlmaWNhdGlvbi4KLSAgICBpZiAoZG9jdW1lbnQtPmlzU1ZHRG9j
dW1lbnQoKSkgewotICAgICAgICBpZiAoIXRvU1ZHRG9jdW1lbnQoKmRvY3VtZW50KS56b29tQW5k
UGFuRW5hYmxlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoaXM8U1ZH
RG9jdW1lbnQ+KGRvY3VtZW50KSAmJiAhZG93bmNhc3Q8U1ZHRG9jdW1lbnQ+KCpkb2N1bWVudCku
em9vbUFuZFBhbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fcGFnZVpv
b21GYWN0b3IgIT0gcGFnZVpvb21GYWN0b3IpIHsKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmll
dyA9IHRoaXMtPnZpZXcoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGRmNmZl
ZTQ1MDU1OTYxOTU1MzhkZDM2OTczMDBjMTJmMWJjYTlhNzMuLjRmYzUzZGVmMTAwMGNmNTI4YmRj
OGUxNGNlMzk1MDE3Y2ExMjgwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE5
NjAsOCArMTk2MCw4IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxUb0FuY2hvcihjb25zdCBTdHJp
bmcmIG5hbWUpCiAgICAgLy8gU2V0dGluZyB0byBudWxsIHdpbGwgY2xlYXIgdGhlIGN1cnJlbnQg
dGFyZ2V0LgogICAgIGZyYW1lKCkuZG9jdW1lbnQoKS0+c2V0Q1NTVGFyZ2V0KGFuY2hvckVsZW1l
bnQpOwogCi0gICAgaWYgKGZyYW1lKCkuZG9jdW1lbnQoKS0+aXNTVkdEb2N1bWVudCgpKSB7Ci0g
ICAgICAgIGlmIChTVkdTVkdFbGVtZW50KiBzdmcgPSB0b1NWR0RvY3VtZW50KCpmcmFtZSgpLmRv
Y3VtZW50KCkpLnJvb3RFbGVtZW50KCkpIHsKKyAgICBpZiAoaXM8U1ZHRG9jdW1lbnQ+KGZyYW1l
KCkuZG9jdW1lbnQoKSkpIHsKKyAgICAgICAgaWYgKFNWR1NWR0VsZW1lbnQqIHN2ZyA9IGRvd25j
YXN0PFNWR0RvY3VtZW50PigqZnJhbWUoKS5kb2N1bWVudCgpKS5yb290RWxlbWVudCgpKSB7CiAg
ICAgICAgICAgICBzdmctPnNldHVwSW5pdGlhbFZpZXcobmFtZSwgYW5jaG9yRWxlbWVudCk7CiAg
ICAgICAgICAgICBpZiAoIWFuY2hvckVsZW1lbnQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oCmluZGV4IDI3ODI5YzUzMjBjMzA2ZjljNmFmMmUw
ZGY4OGJkYmE0YmIxOWY1OTUuLjk5NjAxNWVlZDE5YTM4OTNmZDFhMDBiY2Q3M2IwOThjNGY1ZDRj
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdEb2N1bWVudC5oCkBAIC01MiwxMCArNTIsMTAgQEAgcHJpdmF0
ZToKICAgICBGbG9hdFBvaW50IG1fdHJhbnNsYXRlOwogfTsKIAotaW5saW5lIGJvb2wgaXNTVkdE
b2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGRvY3VtZW50LmlzU1ZH
RG9jdW1lbnQoKTsgfQotdm9pZCBpc1NWR0RvY3VtZW50KGNvbnN0IFNWR0RvY3VtZW50Jik7IC8v
IENhdGNoIHVubmVjZXNzYXJ5IHJ1bnRpbWUgY2hlY2sgb2YgdHlwZSBrbm93biBhdCBjb21waWxl
IHRpbWUuCi0KLURPQ1VNRU5UX1RZUEVfQ0FTVFMoU1ZHRG9jdW1lbnQpCitTUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0JFR0lOKFNWR0RvY3VtZW50KQorICAgIHN0YXRpYyBib29sIGlzU1ZHRG9jdW1l
bnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBkb2N1bWVudC5pc1NWR0RvY3Vt
ZW50KCk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1NWR0RvY3VtZW50KGNvbnN0IE5vZGUmIG5vZGUp
IHsgcmV0dXJuIG5vZGUuaXNEb2N1bWVudE5vZGUoKSAmJiBpc1NWR0RvY3VtZW50KHRvRG9jdW1l
bnQobm9kZSkpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0VORCgpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKaW5k
ZXggYTQ4OTE5MWQ3OTM2ZDJiYjMxMThhZjk5NTJiYzIwM2YxOGRmMjQwYS4uMWUxZmI1NGUyNDBl
NDk0MDE2ZjdkNTdlYTNjYzQ5YjhiNWFhMDY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2UuY3BwCkBAIC02MywxMiArNjMsMTYgQEAgU1ZHSW1hZ2U6On5TVkdJbWFnZSgp
CiAgICAgQVNTRVJUKCFtX2Nocm9tZUNsaWVudCB8fCAhbV9jaHJvbWVDbGllbnQtPmltYWdlKCkp
OwogfQogCi1ib29sIFNWR0ltYWdlOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0Citp
bmxpbmUgU1ZHU1ZHRWxlbWVudCogU1ZHSW1hZ2U6OnJvb3RFbGVtZW50KCkgY29uc3QKIHsKICAg
ICBpZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBkb3duY2FzdDxTVkdEb2N1bWVudD4oKm1fcGFnZS0+bWFpbkZyYW1l
KCkuZG9jdW1lbnQoKSkucm9vdEVsZW1lbnQoKTsKK30KIAotICAgIFNWR1NWR0VsZW1lbnQqIHJv
b3RFbGVtZW50ID0gdG9TVkdEb2N1bWVudChtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkp
LT5yb290RWxlbWVudCgpOworYm9vbCBTVkdJbWFnZTo6aGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4o
KSBjb25zdAoreworICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVs
ZW1lbnQoKTsKICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApA
QCAtODMsMTAgKzg3LDEwIEBAIGJvb2wgU1ZHSW1hZ2U6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QKIAogdm9pZCBTVkdJbWFnZTo6c2V0Q29udGFpbmVyU2l6ZShjb25zdCBGbG9hdFNp
emUmIHNpemUpCiB7Ci0gICAgaWYgKCFtX3BhZ2UgfHwgIXVzZXNDb250YWluZXJTaXplKCkpCisg
ICAgaWYgKCF1c2VzQ29udGFpbmVyU2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTVkdT
VkdFbGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWluRnJhbWUo
KS5kb2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxl
bWVudCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkKICAgICAg
ICAgcmV0dXJuOwogICAgIFJlbmRlclNWR1Jvb3QqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdSb290
KHJvb3RFbGVtZW50LT5yZW5kZXJlcigpKTsKQEAgLTEwMSw5ICsxMDUsNyBAQCB2b2lkIFNWR0lt
YWdlOjpzZXRDb250YWluZXJTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKIAogSW50U2l6ZSBT
VkdJbWFnZTo6Y29udGFpbmVyU2l6ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAg
ICAgIHJldHVybiBJbnRTaXplKCk7Ci0gICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0
b1NWR0RvY3VtZW50KG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSktPnJvb3RFbGVtZW50
KCk7CisgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290RWxlbWVudCgp
OwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKQEAg
LTI2MiwyNiArMjY0LDIyIEBAIHZvaWQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsCiAKIFJlbmRlckJveCog
U1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhZ2Up
Ci0gICAgICAgIHJldHVybiAwOwotICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gdG9T
VkdEb2N1bWVudChtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkpLT5yb290RWxlbWVudCgp
OworICAgIFNWR1NWR0VsZW1lbnQqIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsK
ICAgICBpZiAoIXJvb3RFbGVtZW50KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgcmV0dXJuIHRvUmVuZGVyQm94KHJvb3RFbGVtZW50LT5yZW5kZXJlcigp
KTsKIH0KIAogRnJhbWVWaWV3KiBTVkdJbWFnZTo6ZnJhbWVWaWV3KCkgY29uc3QKIHsKICAgICBp
ZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKIH0KIAogYm9vbCBTVkdJbWFn
ZTo6aGFzUmVsYXRpdmVXaWR0aCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9j
dW1lbnQobV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAg
ICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CiAgICAg
aWYgKCFyb290RWxlbWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiByb290
RWxlbWVudC0+aW50cmluc2ljV2lkdGgoKS5pc1BlcmNlbnQoKTsKQEAgLTI4OSw5ICsyODcsNyBA
QCBib29sIFNWR0ltYWdlOjpoYXNSZWxhdGl2ZVdpZHRoKCkgY29uc3QKIAogYm9vbCBTVkdJbWFn
ZTo6aGFzUmVsYXRpdmVIZWlnaHQoKSBjb25zdAogewotICAgIGlmICghbV9wYWdlKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0b1NWR0Rv
Y3VtZW50KG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSktPnJvb3RFbGVtZW50KCk7Cisg
ICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290RWxlbWVudCgpOwogICAg
IGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gcm9v
dEVsZW1lbnQtPmludHJpbnNpY0hlaWdodCgpLmlzUGVyY2VudCgpOwpAQCAtMjk5LDkgKzI5NSw3
IEBAIGJvb2wgU1ZHSW1hZ2U6Omhhc1JlbGF0aXZlSGVpZ2h0KCkgY29uc3QKIAogdm9pZCBTVkdJ
bWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lvbnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwg
TGVuZ3RoJiBpbnRyaW5zaWNIZWlnaHQsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pCiB7Ci0g
ICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsKLSAgICBTVkdTVkdFbGVtZW50KiByb290
RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKS0+
cm9vdEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IHRoaXMtPnJv
b3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0zMTgsOSArMzEyLDcgQEAgdm9pZCBTVkdJbWFnZTo6Y29tcHV0ZUludHJpbnNpY0RpbWVuc2lv
bnMoTGVuZ3RoJiBpbnRyaW5zaWNXaWR0aCwgTGVuZ3RoJiBpbnRyaW4KIC8vIEZJWE1FOiBzdXBw
b3J0IGNhdGNoVXBJZk5lY2Vzc2FyeS4KIHZvaWQgU1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKENh
dGNoVXBBbmltYXRpb24pCiB7Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsKLSAg
ICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCA9IHRvU1ZHRG9jdW1lbnQobV9wYWdlLT5tYWlu
RnJhbWUoKS5kb2N1bWVudCgpKS0+cm9vdEVsZW1lbnQoKTsKKyAgICBTVkdTVkdFbGVtZW50KiBy
b290RWxlbWVudCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkK
ICAgICAgICAgcmV0dXJuOwogICAgIHJvb3RFbGVtZW50LT51bnBhdXNlQW5pbWF0aW9ucygpOwpA
QCAtMzI5LDkgKzMyMSw3IEBAIHZvaWQgU1ZHSW1hZ2U6OnN0YXJ0QW5pbWF0aW9uKENhdGNoVXBB
bmltYXRpb24pCiAKIHZvaWQgU1ZHSW1hZ2U6OnN0b3BBbmltYXRpb24oKQogewotICAgIGlmICgh
bV9wYWdlKQotICAgICAgICByZXR1cm47Ci0gICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQg
PSB0b1NWR0RvY3VtZW50KG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSktPnJvb3RFbGVt
ZW50KCk7CisgICAgU1ZHU1ZHRWxlbWVudCogcm9vdEVsZW1lbnQgPSB0aGlzLT5yb290RWxlbWVu
dCgpOwogICAgIGlmICghcm9vdEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKICAgICByb290RWxl
bWVudC0+cGF1c2VBbmltYXRpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZS5oCmluZGV4IDcyN2MwYzk5NThjMTFhZWI3OWJlNTE2YmM2MTcyNzUwNDI2MmRlYmMuLjYzZDc2
YmNmNDE5YmNjZjI5M2RjZThmNmFhMjM1OGZiYjViYWI4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5oCkBAIC0zNyw2ICszNyw3IEBAIGNsYXNzIEZyYW1lVmlldzsKIGNs
YXNzIEltYWdlQnVmZmVyOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFNW
R1NWR0VsZW1lbnQ7CiBjbGFzcyBTVkdJbWFnZUNocm9tZUNsaWVudDsKIGNsYXNzIFNWR0ltYWdl
Rm9yQ29udGFpbmVyOwogCkBAIC05NSw2ICs5Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkcmF3
UGF0dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBGbG9hdFNpemUsIGZs
b2F0LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9h
dFBvaW50JiwgQ29sb3JTcGFjZSwKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0b3IsIGNvbnN0IEZs
b2F0UmVjdCYsIEJsZW5kTW9kZSk7CiAKKyAgICBTVkdTVkdFbGVtZW50KiByb290RWxlbWVudCgp
IGNvbnN0OworCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0ltYWdlQ2hyb21lQ2xpZW50PiBtX2No
cm9tZUNsaWVudDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZT4gbV9wYWdlOwogICAgIEZsb2F0
U2l6ZSBtX2ludHJpbnNpY1NpemU7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>