<?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>180552</bug_id>
          
          <creation_ts>2017-12-07 16:02:17 -0800</creation_ts>
          <short_desc>[WK2] Expose image via WKBundleHitTestResult API</short_desc>
          <delta_ts>2017-12-12 13:32:02 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Zach Li">a.tion.surf</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>a.tion.surf</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jberlin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1379338</commentid>
    <comment_count>0</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-07 16:02:17 -0800</bug_when>
    <thetext>Expose image via WKBundleHitTestResult API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379354</commentid>
    <comment_count>1</comment_count>
      <attachid>328753</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-07 16:36:19 -0800</bug_when>
    <thetext>Created attachment 328753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379372</commentid>
    <comment_count>2</comment_count>
      <attachid>328753</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-12-07 17:03:21 -0800</bug_when>
    <thetext>Comment on attachment 328753
Patch

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

I think you should be able to write an API test for this. I would look for other tests in Tools/TestWebKitAPI for an example.

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:180
&gt; +    if (!is&lt;BitmapImage&gt;(*image))

You can remove the nullptr check above if you make this conditional !is&lt;BitmapImage&gt;(image) instead, since is() will return false for nullptr.

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:184
&gt; +    IntSize intSize = bitmapImage.sizeRespectingOrientation();

I think sizeRespectingOrientation would be a clearer name for this variable.

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:189
&gt; +    graphicsContext-&gt;drawImage(bitmapImage, floatRect);

I don&apos;t think the temp variable floatRect adds much. Can we inline this rect here as {{ }, intSize}?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379731</commentid>
    <comment_count>3</comment_count>
      <attachid>328753</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2017-12-08 12:40:23 -0800</bug_when>
    <thetext>Comment on attachment 328753
Patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:114
&gt; +WKImageRef WKBundleHitTestResultGetImage(WKBundleHitTestResultRef hitTestResultRef)
&gt; +{
&gt; +    RefPtr&lt;WebImage&gt; webImage = toImpl(hitTestResultRef)-&gt;image();
&gt; +    return toAPI(webImage.leakRef());
&gt; +}

This should be called WKBundleHitTestResultCopyImage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379760</commentid>
    <comment_count>4</comment_count>
      <attachid>328753</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-08 13:51:30 -0800</bug_when>
    <thetext>Comment on attachment 328753
Patch

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

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:114
&gt;&gt; +}
&gt; 
&gt; This should be called WKBundleHitTestResultCopyImage.

Good point, will change.

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:180
&gt;&gt; +    if (!is&lt;BitmapImage&gt;(*image))
&gt; 
&gt; You can remove the nullptr check above if you make this conditional !is&lt;BitmapImage&gt;(image) instead, since is() will return false for nullptr.

I will change the conditional to !is&lt;BitmapImage&gt;(image).

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:184
&gt;&gt; +    IntSize intSize = bitmapImage.sizeRespectingOrientation();
&gt; 
&gt; I think sizeRespectingOrientation would be a clearer name for this variable.

Sure, will change.

&gt;&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:189
&gt;&gt; +    graphicsContext-&gt;drawImage(bitmapImage, floatRect);
&gt; 
&gt; I don&apos;t think the temp variable floatRect adds much. Can we inline this rect here as {{ }, intSize}?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379777</commentid>
    <comment_count>5</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-08 14:05:16 -0800</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #2)
&gt; Comment on attachment 328753 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328753&amp;action=review
&gt; 
&gt; I think you should be able to write an API test for this. I would look for
&gt; other tests in Tools/TestWebKitAPI for an example.

Per discussion with Wenson, I will add tests as a follow-up patch, which is tracked by
https://bugs.webkit.org/show_bug.cgi?id=180605.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:180
&gt; &gt; +    if (!is&lt;BitmapImage&gt;(*image))
&gt; 
&gt; You can remove the nullptr check above if you make this conditional
&gt; !is&lt;BitmapImage&gt;(image) instead, since is() will return false for nullptr.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:184
&gt; &gt; +    IntSize intSize = bitmapImage.sizeRespectingOrientation();
&gt; 
&gt; I think sizeRespectingOrientation would be a clearer name for this variable.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:189
&gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, floatRect);
&gt; 
&gt; I don&apos;t think the temp variable floatRect adds much. Can we inline this rect
&gt; here as {{ }, intSize}?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379800</commentid>
    <comment_count>6</comment_count>
      <attachid>328872</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-08 14:37:35 -0800</bug_when>
    <thetext>Created attachment 328872
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379855</commentid>
    <comment_count>7</comment_count>
      <attachid>328872</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-08 15:53:23 -0800</bug_when>
    <thetext>Comment on attachment 328872
Patch v2

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

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, sizeRespectingOrientation});

Does this do the correct thing for images with EXIF rotations?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379867</commentid>
    <comment_count>8</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-08 16:29:18 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #7)
&gt; Comment on attachment 328872 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328872&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, sizeRespectingOrientation});
&gt; 
&gt; Does this do the correct thing for images with EXIF rotations?

I took a look at -drawImage() function and by default, DoNotRespectImageOrientation is passed to ImagePaintingOptions, so this means it would not auto-rotate images with EXIF orientation tags? (Sorry, I am not so familiar with this area of code)

But at least for my use case, image orientation does not matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379868</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-08 16:41:22 -0800</bug_when>
    <thetext>(In reply to Zach Li from comment #8)
&gt; (In reply to Simon Fraser (smfr) from comment #7)
&gt; &gt; Comment on attachment 328872 [details]
&gt; &gt; Patch v2
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328872&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; &gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, sizeRespectingOrientation});
&gt; &gt; 
&gt; &gt; Does this do the correct thing for images with EXIF rotations?
&gt; 
&gt; I took a look at -drawImage() function and by default,
&gt; DoNotRespectImageOrientation is passed to ImagePaintingOptions, so this
&gt; means it would not auto-rotate images with EXIF orientation tags? (Sorry, I
&gt; am not so familiar with this area of code)
&gt; 
&gt; But at least for my use case, image orientation does not matter.

But if the image is rotated, you&apos;ll get an image with the wrong dimensions, and squished. So I think you have to care. Did you test it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379876</commentid>
    <comment_count>10</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-08 16:55:25 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #9)
&gt; (In reply to Zach Li from comment #8)
&gt; &gt; (In reply to Simon Fraser (smfr) from comment #7)
&gt; &gt; &gt; Comment on attachment 328872 [details]
&gt; &gt; &gt; Patch v2
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328872&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; &gt; &gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, sizeRespectingOrientation});
&gt; &gt; &gt; 
&gt; &gt; &gt; Does this do the correct thing for images with EXIF rotations?
&gt; &gt; 
&gt; &gt; I took a look at -drawImage() function and by default,
&gt; &gt; DoNotRespectImageOrientation is passed to ImagePaintingOptions, so this
&gt; &gt; means it would not auto-rotate images with EXIF orientation tags? (Sorry, I
&gt; &gt; am not so familiar with this area of code)
&gt; &gt; 
&gt; &gt; But at least for my use case, image orientation does not matter.
&gt; 
&gt; But if the image is rotated, you&apos;ll get an image with the wrong dimensions,
&gt; and squished. So I think you have to care. Did you test it?

If the image is rotated, doesn&apos;t sizeRespectingOrientation give me the correct dimension, hence not causing the image to be squished?

I just learned images with EXIF rotations from you, so haven&apos;t tested this case yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380750</commentid>
    <comment_count>11</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-12 11:45:02 -0800</bug_when>
    <thetext>(In reply to Zach Li from comment #10)
&gt; (In reply to Simon Fraser (smfr) from comment #9)
&gt; &gt; (In reply to Zach Li from comment #8)
&gt; &gt; &gt; (In reply to Simon Fraser (smfr) from comment #7)
&gt; &gt; &gt; &gt; Comment on attachment 328872 [details]
&gt; &gt; &gt; &gt; Patch v2
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328872&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; &gt; &gt; &gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, sizeRespectingOrientation});
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Does this do the correct thing for images with EXIF rotations?
&gt; &gt; &gt; 
&gt; &gt; &gt; I took a look at -drawImage() function and by default,
&gt; &gt; &gt; DoNotRespectImageOrientation is passed to ImagePaintingOptions, so this
&gt; &gt; &gt; means it would not auto-rotate images with EXIF orientation tags? (Sorry, I
&gt; &gt; &gt; am not so familiar with this area of code)
&gt; &gt; &gt; 
&gt; &gt; &gt; But at least for my use case, image orientation does not matter.
&gt; &gt; 
&gt; &gt; But if the image is rotated, you&apos;ll get an image with the wrong dimensions,
&gt; &gt; and squished. So I think you have to care. Did you test it?
&gt; 
&gt; If the image is rotated, doesn&apos;t sizeRespectingOrientation give me the
&gt; correct dimension, hence not causing the image to be squished?
&gt; 
&gt; I just learned images with EXIF rotations from you, so haven&apos;t tested this
&gt; case yet.

Simon, you are right. We should not use -sizeRespectingOrientation since it will cause the image to be squished. We should just use -size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380753</commentid>
    <comment_count>12</comment_count>
      <attachid>329133</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-12 11:52:52 -0800</bug_when>
    <thetext>Created attachment 329133
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380755</commentid>
    <comment_count>13</comment_count>
      <attachid>329133</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-12-12 11:55:24 -0800</bug_when>
    <thetext>Comment on attachment 329133
Patch v3

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

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; +    BitmapImage&amp; bitmapImage = downcast&lt;BitmapImage&gt;(*image);
&gt; +    IntSize size(bitmapImage.size());
&gt; +    auto webImage = WebImage::create(size, static_cast&lt;ImageOptions&gt;(0));
&gt; +
&gt; +    auto graphicsContext = webImage-&gt;bitmap().createGraphicsContext();
&gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, size});

This needs a FIXME comment saying something like &quot;FIXME: need to handle EXIF rotation&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380760</commentid>
    <comment_count>14</comment_count>
      <attachid>329135</attachid>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-12 12:02:51 -0800</bug_when>
    <thetext>Created attachment 329135
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380761</commentid>
    <comment_count>15</comment_count>
    <who name="Zach Li">a.tion.surf</who>
    <bug_when>2017-12-12 12:03:37 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #13)
&gt; Comment on attachment 329133 [details]
&gt; Patch v3
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329133&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:185
&gt; &gt; +    BitmapImage&amp; bitmapImage = downcast&lt;BitmapImage&gt;(*image);
&gt; &gt; +    IntSize size(bitmapImage.size());
&gt; &gt; +    auto webImage = WebImage::create(size, static_cast&lt;ImageOptions&gt;(0));
&gt; &gt; +
&gt; &gt; +    auto graphicsContext = webImage-&gt;bitmap().createGraphicsContext();
&gt; &gt; +    graphicsContext-&gt;drawImage(bitmapImage, {{ }, size});
&gt; 
&gt; This needs a FIXME comment saying something like &quot;FIXME: need to handle EXIF
&gt; rotation&quot;.

Done in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380785</commentid>
    <comment_count>16</comment_count>
      <attachid>329135</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-12 13:01:30 -0800</bug_when>
    <thetext>Comment on attachment 329135
Patch v3

Clearing flags on attachment: 329135

Committed r225798: &lt;https://trac.webkit.org/changeset/225798&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328753</attachid>
            <date>2017-12-07 16:36:19 -0800</date>
            <delta_ts>2017-12-08 14:37:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Expose-image-via-WKBundleHitTestResult-API.patch</filename>
            <type>text/plain</type>
            <size>8216</size>
            <attacher name="Zach Li">a.tion.surf</attacher>
            
              <data encoding="base64">RnJvbSAxNTc4YTI2ZjRhMWE4YWJjZWQ5MjM2Y2MwODc2NjA4NjM1M2Q5OTQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoIExpIDx6YWNobGlAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDcgRGVjIDIwMTcgMTY6MTk6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbV0syXSBFeHBvc2Ug
aW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUyLiByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQoKUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCiogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuaDoKVGhpcyBtZXRob2Qgd2lsbCBiZSB1c2VkIGJ5IGNsaWVudHMg
b3V0c2lkZSBXZWJDb3JlLCBzbwphZGQgV0VCQ09SRV9FWFBPUlQuCgpTb3VyY2UvV2ViS2l0OgoK
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5j
cHA6CihXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZSk6CiogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKCiogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgooV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlIGNvbnN0KToKQ29udmVydCBmcm9tIFdlYkNv
cmU6OkltYWdlIHRvIFdlYkltYWdlIGJ5IGNyZWF0aW5nIGEgV2ViSW1hZ2UKYW5kIHBhaW50IHRo
ZSBXZWJDb3JlOjpJbWFnZSBpbnRvIGl0cyBncmFwaGljcyBjb250ZXh0LiBGb3Igbm93LApvbmx5
IGhhbmRsZSBiaXRtYXAgaW1hZ2VzLgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oICAgICB8ICAyICstCiBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysr
KysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCB8
ICA3ICsrKysrKysKIC4uLi9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1
bHQuaCAgIHwgIDEgKwogLi4uL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdC5jcHAgfCAyNCArKysrKysrKysrKysrKysrKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmggICB8ICAyICsrCiA3IGZpbGVzIGNoYW5nZWQs
IDY1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg0MWJlOTFi
YjMuLjdhMzdkY2EyMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTItMDcg
IFphY2ggTGkgIDx6YWNobGlAYXBwbGUuY29tPgorICAgICAgICBbV0syXSBFeHBvc2UgaW1hZ2Ug
dmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NTIuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIz
OTUxNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICBUaGlzIG1ldGhvZCB3
aWxsIGJlIHVzZWQgYnkgY2xpZW50cyBvdXRzaWRlIFdlYkNvcmUsIHNvCisgICAgICAgIGFkZCBX
RUJDT1JFX0VYUE9SVC4KKwogMjAxNy0xMi0wNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBzdHlsZSBpbiByZW1vdGUg
aW5zcGVjdG9yIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCmluZGV4IGYxMGU0YzFlYTY1Li4zYjNiY2IxNGZmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCkBAIC05Niw3ICs5Niw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIEltYWdlIG1ldGFkYXRhIHdoaWNoIGlzIGNhbGN1bGF0ZWQg
ZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFtZS4KICAgICBJbnRTaXplIHNpemUoKTsKLSAgICBJbnRT
aXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRT
aXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKICAgICBDb2xvciBzaW5nbGVQaXhlbFNv
bGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVs
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMmVjN2I1NWYwYTQuLmZjZWIyN2I4NmFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIyIEBACisyMDE3LTEyLTA3ICBaYWNoIExpICA8emFjaGxpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV0syXSBFeHBvc2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEku
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NTIu
CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIzOTUxNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXS0J1bmRsZUhpdFRlc3RS
ZXN1bHRHZXRJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjppbWFnZSBjb25zdCk6CisgICAgICAgIENv
bnZlcnQgZnJvbSBXZWJDb3JlOjpJbWFnZSB0byBXZWJJbWFnZSBieSBjcmVhdGluZyBhIFdlYklt
YWdlCisgICAgICAgIGFuZCBwYWludCB0aGUgV2ViQ29yZTo6SW1hZ2UgaW50byBpdHMgZ3JhcGhp
Y3MgY29udGV4dC4gRm9yIG5vdywKKyAgICAgICAgb25seSBoYW5kbGUgYml0bWFwIGltYWdlcy4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVz
dFJlc3VsdC5oOgorCiAyMDE3LTEyLTA3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dnaW5nIGZvciBFZGl0b3JTdGF0ZSBpbiBSZW1vdGVM
YXllclRyZWUgdHJhbnNhY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RS
ZXN1bHQuY3BwCmluZGV4IDJmNmQyZDA0Y2YxLi5lNzFjNDZkZGZhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVz
dFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKICNpbmNsdWRl
ICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKQEAgLTEwNiw2ICsxMDcsMTIgQEAgV0tSZWN0IFdLQnVuZGxlSGl0VGVzdFJlc3Vs
dEdldEltYWdlUmVjdChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdFIKICAg
ICByZXR1cm4gdG9BUEkodG9JbXBsKGhpdFRlc3RSZXN1bHRSZWYpLT5pbWFnZVJlY3QoKSk7CiB9
CiAKK1dLSW1hZ2VSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SW1hZ2UoV0tCdW5kbGVIaXRU
ZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHRSZWYpCit7CisgICAgUmVmUHRyPFdlYkltYWdlPiB3
ZWJJbWFnZSA9IHRvSW1wbChoaXRUZXN0UmVzdWx0UmVmKS0+aW1hZ2UoKTsKKyAgICByZXR1cm4g
dG9BUEkod2ViSW1hZ2UubGVha1JlZigpKTsKK30KKwogYm9vbCBXS0J1bmRsZUhpdFRlc3RSZXN1
bHRHZXRJc1NlbGVjdGVkKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVm
KQogewogICAgIHJldHVybiB0b0ltcGwoaGl0VGVzdFJlc3VsdFJlZiktPmlzU2VsZWN0ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaAppbmRleCA2NjM4OGJmOGRk
ZC4uNWEyNjExNmJkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKQEAgLTU4LDYgKzU4LDcgQEAgV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVIaXRUZXN0UmVzdWx0
SXNEb3dubG9hZGFibGVNZWRpYShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYKIFdLX0VYUE9SVCBX
S0J1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0TWVk
aWFUeXBlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKIAogV0tfRVhQ
T1JUIFdLUmVjdCBXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZVJlY3QoV0tCdW5kbGVIaXRU
ZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOworV0tfRVhQT1JUIFdLSW1hZ2VSZWYgV0tCdW5k
bGVIaXRUZXN0UmVzdWx0R2V0SW1hZ2UoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RS
ZXN1bHQpOwogV0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SXNTZWxlY3Rl
ZChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCk7CiAKIFdLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRDb3B5TGlua0xhYmVsKFdLQnVuZGxlSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggNzJhZTc3MjdkNDUuLjU2MzhhZDNmY2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcApAQCAtMjksMTEgKzI5LDE0
IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIldl
YkltYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CaXRtYXBJbWFnZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC0xNjcsNiArMTcwLDI3IEBAIEludFJlY3QgSW5qZWN0ZWRCdW5kbGVI
aXRUZXN0UmVzdWx0OjppbWFnZVJlY3QoKSBjb25zdAogICAgIHJldHVybiB2aWV3LT5jb250ZW50
c1RvUm9vdFZpZXcoaW1hZ2VSZWN0KTsKIH0KIAorUmVmUHRyPFdlYkltYWdlPiBJbmplY3RlZEJ1
bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlKCkgY29uc3QKK3sKKyAgICBJbWFnZSogaW1hZ2UgPSBt
X2hpdFRlc3RSZXN1bHQuaW1hZ2UoKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIC8vIEZvciBub3csIHdlIG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMu
CisgICAgaWYgKCFpczxCaXRtYXBJbWFnZT4oKmltYWdlKSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBCaXRtYXBJbWFnZSYgYml0bWFwSW1hZ2UgPSBkb3duY2FzdDxCaXRtYXBJbWFn
ZT4oKmltYWdlKTsKKyAgICBJbnRTaXplIGludFNpemUgPSBiaXRtYXBJbWFnZS5zaXplUmVzcGVj
dGluZ09yaWVudGF0aW9uKCk7CisgICAgYXV0byB3ZWJJbWFnZSA9IFdlYkltYWdlOjpjcmVhdGUo
aW50U2l6ZSwgc3RhdGljX2Nhc3Q8SW1hZ2VPcHRpb25zPigwKSk7CisKKyAgICBhdXRvIGdyYXBo
aWNzQ29udGV4dCA9IHdlYkltYWdlLT5iaXRtYXAoKS5jcmVhdGVHcmFwaGljc0NvbnRleHQoKTsK
KyAgICBGbG9hdFJlY3QgZmxvYXRSZWN0KDAsIDAsIGludFNpemUud2lkdGgoKSwgaW50U2l6ZS5o
ZWlnaHQoKSk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoYml0bWFwSW1hZ2UsIGZs
b2F0UmVjdCk7CisKKyAgICByZXR1cm4gd2ViSW1hZ2U7Cit9CisKIGJvb2wgSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0Ojppc1NlbGVjdGVkKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9oaXRU
ZXN0UmVzdWx0LmlzU2VsZWN0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuaAppbmRleCAxNGUzZTY3Mzg2Zi4uYTE2ZjBjNmI1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTsKIGNsYXNzIFdlYkZyYW1l
OworY2xhc3MgV2ViSW1hZ2U7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdCA6
IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUhpdFRlc3RS
ZXN1bHQ+IHsKIHB1YmxpYzoKQEAgLTYzLDYgKzY0LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBs
aW5rU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKICAgICAKICAgICBXZWJDb3JlOjpJbnRSZWN0
IGltYWdlUmVjdCgpIGNvbnN0OworICAgIFJlZlB0cjxXZWJJbWFnZT4gaW1hZ2UoKSBjb25zdDsK
ICAgICAKICAgICBib29sIGlzU2VsZWN0ZWQoKSBjb25zdDsKIAotLSAKMi4xMy41IChBcHBsZSBH
aXQtOTUpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328872</attachid>
            <date>2017-12-08 14:37:35 -0800</date>
            <delta_ts>2017-12-08 16:29:29 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>v2-0001-WK2-Expose-image-via-WKBundleHitTestResult-API.patch</filename>
            <type>text/plain</type>
            <size>8183</size>
            <attacher name="Zach Li">a.tion.surf</attacher>
            
              <data encoding="base64">RnJvbSA1NzkwOTkwYjUzOWMwZjFmMTA5OTVjYjJjMjEzOThkN2Y0OWI3NWFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoIExpIDx6YWNobGlAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDcgRGVjIDIwMTcgMTY6MTk6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIIHYyXSBbV0syXSBFeHBv
c2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUyLiByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCiogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKVGhpcyBtZXRob2Qgd2lsbCBiZSB1c2VkIGJ5IGNsaWVu
dHMgb3V0c2lkZSBXZWJDb3JlLCBzbwphZGQgV0VCQ09SRV9FWFBPUlQuCgpTb3VyY2UvV2ViS2l0
OgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHA6CihXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZSk6CiogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKCiogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgooV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlIGNvbnN0KToKQ29udmVydCBmcm9tIFdl
YkNvcmU6OkltYWdlIHRvIFdlYkltYWdlIGJ5IGNyZWF0aW5nIGEgV2ViSW1hZ2UKYW5kIHBhaW50
IHRoZSBXZWJDb3JlOjpJbWFnZSBpbnRvIGl0cyBncmFwaGljcyBjb250ZXh0LiBGb3Igbm93LApv
bmx5IGhhbmRsZSBiaXRtYXAgaW1hZ2VzLgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysr
KysrKysrKysrKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCAgIHwgIDcgKysrKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oICAgICB8ICAxICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwogLi4u
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oICAgICB8ICAyICsr
CiA3IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYjg0MWJlOTFiYjMuLjdhMzdkY2EyMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTctMTItMDcgIFphY2ggTGkgIDx6YWNobGlAYXBwbGUuY29tPgorICAgICAgICBb
V0syXSBFeHBvc2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NTIuCisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzIzOTUxNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAg
ICAgICBUaGlzIG1ldGhvZCB3aWxsIGJlIHVzZWQgYnkgY2xpZW50cyBvdXRzaWRlIFdlYkNvcmUs
IHNvCisgICAgICAgIGFkZCBXRUJDT1JFX0VYUE9SVC4KKwogMjAxNy0xMi0wNyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZp
eCBzdHlsZSBpbiByZW1vdGUgaW5zcGVjdG9yIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IGYxMGU0YzFlYTY1Li4zYjNiY2Ix
NGZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5oCkBAIC05Niw3ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEltYWdlIG1ldGFkYXRhIHdo
aWNoIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFtZS4KICAgICBJbnRTaXpl
IHNpemUoKTsKLSAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKICAgICBD
b2xvciBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGlt
dW1TdWJzYW1wbGluZ0xldmVsKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMmVjN2I1NWYwYTQuLmZjZWIyN2I4
NmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTEyLTA3ICBaYWNoIExpICA8emFj
aGxpQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBFeHBvc2UgaW1hZ2UgdmlhIFdLQnVuZGxl
SGl0VGVzdFJlc3VsdCBBUEkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODA1NTIuCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzIzOTUxNTIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAg
IChXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0OjppbWFnZSBj
b25zdCk6CisgICAgICAgIENvbnZlcnQgZnJvbSBXZWJDb3JlOjpJbWFnZSB0byBXZWJJbWFnZSBi
eSBjcmVhdGluZyBhIFdlYkltYWdlCisgICAgICAgIGFuZCBwYWludCB0aGUgV2ViQ29yZTo6SW1h
Z2UgaW50byBpdHMgZ3JhcGhpY3MgY29udGV4dC4gRm9yIG5vdywKKyAgICAgICAgb25seSBoYW5k
bGUgYml0bWFwIGltYWdlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oOgorCiAyMDE3LTEyLTA3ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dnaW5nIGZvciBFZGl0
b3JTdGF0ZSBpbiBSZW1vdGVMYXllclRyZWUgdHJhbnNhY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDJmNmQyZDA0Y2YxLi42OTMzNDNjNzRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQ
SUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTEwNiw2ICsxMDcsMTIgQEAgV0tSZWN0IFdL
QnVuZGxlSGl0VGVzdFJlc3VsdEdldEltYWdlUmVjdChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYg
aGl0VGVzdFJlc3VsdFIKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGhpdFRlc3RSZXN1bHRSZWYp
LT5pbWFnZVJlY3QoKSk7CiB9CiAKK1dLSW1hZ2VSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29w
eUltYWdlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQoreworICAg
IFJlZlB0cjxXZWJJbWFnZT4gd2ViSW1hZ2UgPSB0b0ltcGwoaGl0VGVzdFJlc3VsdFJlZiktPmlt
YWdlKCk7CisgICAgcmV0dXJuIHRvQVBJKHdlYkltYWdlLmxlYWtSZWYoKSk7Cit9CisKIGJvb2wg
V0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SXNTZWxlY3RlZChXS0J1bmRsZUhpdFRlc3RSZXN1bHRS
ZWYgaGl0VGVzdFJlc3VsdFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGhpdFRlc3RSZXN1bHRS
ZWYpLT5pc1NlbGVjdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKaW5kZXggNjYzODhiZjhkZGQuLjUxNDE4ZGExZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC01OCw2ICs1OCw3IEBAIFdLX0VYUE9SVCBib29sIFdL
QnVuZGxlSGl0VGVzdFJlc3VsdElzRG93bmxvYWRhYmxlTWVkaWEoV0tCdW5kbGVIaXRUZXN0UmVz
dWx0UmVmCiBXS19FWFBPUlQgV0tCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlIFdLQnVuZGxl
SGl0VGVzdFJlc3VsdEdldE1lZGlhVHlwZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdCk7CiAKIFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SW1h
Z2VSZWN0KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKK1dLX0VYUE9S
VCBXS0ltYWdlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlJbWFnZShXS0J1bmRsZUhpdFRl
c3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCk7CiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUhpdFRl
c3RSZXN1bHRHZXRJc1NlbGVjdGVkKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVz
dWx0KTsKIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlM
aW5rTGFiZWwoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA3MmFlNzcyN2Q0NS4u
YzZkODE1ZjkwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQu
Y3BwCkBAIC0yOSwxMSArMjksMTQgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcElt
YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE2Nyw2ICsxNzAsMjMgQEAgSW50
UmVjdCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuIHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhpbWFnZVJlY3QpOwogfQogCitSZWZQdHI8
V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2UoKSBjb25zdAorewor
ICAgIEltYWdlKiBpbWFnZSA9IG1faGl0VGVzdFJlc3VsdC5pbWFnZSgpOworICAgIC8vIEZvciBu
b3csIHdlIG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMuCisgICAgaWYgKCFpczxCaXRtYXBJbWFn
ZT4oaW1hZ2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEJpdG1hcEltYWdlJiBi
aXRtYXBJbWFnZSA9IGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpOworICAgIEludFNpemUg
c2l6ZVJlc3BlY3RpbmdPcmllbnRhdGlvbiA9IGJpdG1hcEltYWdlLnNpemVSZXNwZWN0aW5nT3Jp
ZW50YXRpb24oKTsKKyAgICBhdXRvIHdlYkltYWdlID0gV2ViSW1hZ2U6OmNyZWF0ZShzaXplUmVz
cGVjdGluZ09yaWVudGF0aW9uLCBzdGF0aWNfY2FzdDxJbWFnZU9wdGlvbnM+KDApKTsKKworICAg
IGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gd2ViSW1hZ2UtPmJpdG1hcCgpLmNyZWF0ZUdyYXBoaWNz
Q29udGV4dCgpOworICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGJpdG1hcEltYWdlLCB7
eyB9LCBzaXplUmVzcGVjdGluZ09yaWVudGF0aW9ufSk7CisKKyAgICByZXR1cm4gd2ViSW1hZ2U7
Cit9CisKIGJvb2wgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Ojppc1NlbGVjdGVkKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9oaXRUZXN0UmVzdWx0LmlzU2VsZWN0ZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZUhpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaAppbmRleCAxNGUzZTY3Mzg2Zi4uYTE2ZjBj
NmI1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmgKQEAgLTM3
LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZTsKIGNsYXNzIFdlYkZyYW1lOworY2xhc3MgV2ViSW1hZ2U7CiAKIGNsYXNzIEluamVj
dGVkQnVuZGxlSGl0VGVzdFJlc3VsdCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OkJ1bmRsZUhpdFRlc3RSZXN1bHQ+IHsKIHB1YmxpYzoKQEAgLTYzLDYgKzY0LDcg
QEAgcHVibGljOgogICAgIFN0cmluZyBsaW5rU3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKICAg
ICAKICAgICBXZWJDb3JlOjpJbnRSZWN0IGltYWdlUmVjdCgpIGNvbnN0OworICAgIFJlZlB0cjxX
ZWJJbWFnZT4gaW1hZ2UoKSBjb25zdDsKICAgICAKICAgICBib29sIGlzU2VsZWN0ZWQoKSBjb25z
dDsKIAotLSAKMi4xMy41IChBcHBsZSBHaXQtOTUpCgo=
</data>
<flag name="review"
          id="348019"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="348035"
          type_id="3"
          status="?"
          setter="a.tion.surf"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329133</attachid>
            <date>2017-12-12 11:52:52 -0800</date>
            <delta_ts>2017-12-12 12:02:51 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>v3-0001-WK2-Expose-image-via-WKBundleHitTestResult-API.patch</filename>
            <type>text/plain</type>
            <size>8155</size>
            <attacher name="Zach Li">a.tion.surf</attacher>
            
              <data encoding="base64">RnJvbSBlZmUwOTA5Nzg1MTZjMjgzYzFkYjdkZTk0MDllYTdjYmMyYmQ2NGRhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoIExpIDx6YWNobGlAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDcgRGVjIDIwMTcgMTY6MTk6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIIHYzXSBbV0syXSBFeHBv
c2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUyLiByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCiogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKVGhpcyBtZXRob2Qgd2lsbCBiZSB1c2VkIGJ5IGNsaWVu
dHMgb3V0c2lkZSBXZWJDb3JlLCBzbwphZGQgV0VCQ09SRV9FWFBPUlQuCgpTb3VyY2UvV2ViS2l0
OgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHA6CihXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZSk6CiogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKCiogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgooV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlIGNvbnN0KToKQ29udmVydCBmcm9tIFdl
YkNvcmU6OkltYWdlIHRvIFdlYkltYWdlIGJ5IGNyZWF0aW5nIGEgV2ViSW1hZ2UKYW5kIHBhaW50
IHRoZSBXZWJDb3JlOjpJbWFnZSBpbnRvIGl0cyBncmFwaGljcyBjb250ZXh0LiBGb3Igbm93LApv
bmx5IGhhbmRsZSBiaXRtYXAgaW1hZ2VzLgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oICAgICAgIHwgIDIgKy0KIFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysr
KysrKysrKysrKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCAgIHwgIDcgKysrKysrKwogLi4uL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oICAgICB8ICAxICsKIC4uLi9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwICAgfCAyMCArKysrKysrKysrKysrKysrKysrKwogLi4u
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oICAgICB8ICAyICsr
CiA3IGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNjE0ZTRjMTYyMjcuLjk0MDlmOGNkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTctMTItMDcgIFphY2ggTGkgIDx6YWNobGlAYXBwbGUuY29tPgorICAgICAgICBb
V0syXSBFeHBvc2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NTIuCisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzIzOTUxNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAg
ICAgICBUaGlzIG1ldGhvZCB3aWxsIGJlIHVzZWQgYnkgY2xpZW50cyBvdXRzaWRlIFdlYkNvcmUs
IHNvCisgICAgICAgIGFkZCBXRUJDT1JFX0VYUE9SVC4KKwogMjAxNy0xMi0xMiAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MLXBhZ2Ugd2l0aCA8
b2JqZWN0IHR5cGU9ImltYWdlL3N2Zyt4bWwiIGRhdGE9ImZvby5zdmciPiBvZnRlbiBpcyBibGFu
awpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5k
ZXggZjEwZTRjMWVhNjUuLjBlNTEzOWRjY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAg
IHN0ZDo6b3B0aW9uYWw8SW50UG9pbnQ+IGhvdFNwb3QoKTsKIAogICAgIC8vIEltYWdlIG1ldGFk
YXRhIHdoaWNoIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFtZS4KLSAgICBJ
bnRTaXplIHNpemUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoKTsKICAgICBJ
bnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKICAgICBDb2xvciBzaW5nbGVQaXhl
bFNvbGlkQ29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xl
dmVsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGYzMDhkNjA4NjQ3Li5jMDI4OTgwYTRiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxNy0xMi0wNyAgWmFjaCBMaSAgPHphY2hsaUBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dLMl0gRXhwb3NlIGltYWdlIHZpYSBXS0J1bmRsZUhpdFRlc3RSZXN1bHQgQVBJ
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUy
LgorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0
UmVzdWx0R2V0SW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2UgY29uc3QpOgorICAgICAgICBD
b252ZXJ0IGZyb20gV2ViQ29yZTo6SW1hZ2UgdG8gV2ViSW1hZ2UgYnkgY3JlYXRpbmcgYSBXZWJJ
bWFnZQorICAgICAgICBhbmQgcGFpbnQgdGhlIFdlYkNvcmU6OkltYWdlIGludG8gaXRzIGdyYXBo
aWNzIGNvbnRleHQuIEZvciBub3csCisgICAgICAgIG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRl
c3RSZXN1bHQuaDoKKwogMjAxNy0xMi0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2VycyBmb2xsb3cgdGhlIERFRkFVTFRfRVhQ
RVJJTUVOVEFMX0ZFQVRVUkVTX0VOQUJMRUQgZmxhZyBvbiBNYWMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDJmNmQyZDA0Y2YxLi42OTMzNDNjNzRm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTMx
LDYgKzMxLDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQ
SUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTEwNiw2ICsxMDcsMTIgQEAgV0tSZWN0IFdL
QnVuZGxlSGl0VGVzdFJlc3VsdEdldEltYWdlUmVjdChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYg
aGl0VGVzdFJlc3VsdFIKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGhpdFRlc3RSZXN1bHRSZWYp
LT5pbWFnZVJlY3QoKSk7CiB9CiAKK1dLSW1hZ2VSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29w
eUltYWdlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQoreworICAg
IFJlZlB0cjxXZWJJbWFnZT4gd2ViSW1hZ2UgPSB0b0ltcGwoaGl0VGVzdFJlc3VsdFJlZiktPmlt
YWdlKCk7CisgICAgcmV0dXJuIHRvQVBJKHdlYkltYWdlLmxlYWtSZWYoKSk7Cit9CisKIGJvb2wg
V0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SXNTZWxlY3RlZChXS0J1bmRsZUhpdFRlc3RSZXN1bHRS
ZWYgaGl0VGVzdFJlc3VsdFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGhpdFRlc3RSZXN1bHRS
ZWYpLT5pc1NlbGVjdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKaW5kZXggNjYzODhiZjhkZGQuLjUxNDE4ZGExZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSGl0VGVzdFJlc3VsdC5oCkBAIC01OCw2ICs1OCw3IEBAIFdLX0VYUE9SVCBib29sIFdL
QnVuZGxlSGl0VGVzdFJlc3VsdElzRG93bmxvYWRhYmxlTWVkaWEoV0tCdW5kbGVIaXRUZXN0UmVz
dWx0UmVmCiBXS19FWFBPUlQgV0tCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlIFdLQnVuZGxl
SGl0VGVzdFJlc3VsdEdldE1lZGlhVHlwZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdCk7CiAKIFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SW1h
Z2VSZWN0KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKK1dLX0VYUE9S
VCBXS0ltYWdlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlJbWFnZShXS0J1bmRsZUhpdFRl
c3RSZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCk7CiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUhpdFRl
c3RSZXN1bHRHZXRJc1NlbGVjdGVkKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVz
dWx0KTsKIAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlM
aW5rTGFiZWwoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA3MmFlNzcyN2Q0NS4u
M2FmYmJmZDViNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQu
Y3BwCkBAIC0yOSwxMSArMjksMTQgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5k
bGUuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcElt
YWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE2Nyw2ICsxNzAsMjMgQEAgSW50
UmVjdCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNvbnN0CiAgICAg
cmV0dXJuIHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhpbWFnZVJlY3QpOwogfQogCitSZWZQdHI8
V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2UoKSBjb25zdAorewor
ICAgIEltYWdlKiBpbWFnZSA9IG1faGl0VGVzdFJlc3VsdC5pbWFnZSgpOworICAgIC8vIEZvciBu
b3csIHdlIG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMuCisgICAgaWYgKCFpczxCaXRtYXBJbWFn
ZT4oaW1hZ2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEJpdG1hcEltYWdlJiBi
aXRtYXBJbWFnZSA9IGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpOworICAgIEludFNpemUg
c2l6ZShiaXRtYXBJbWFnZS5zaXplKCkpOworICAgIGF1dG8gd2ViSW1hZ2UgPSBXZWJJbWFnZTo6
Y3JlYXRlKHNpemUsIHN0YXRpY19jYXN0PEltYWdlT3B0aW9ucz4oMCkpOworCisgICAgYXV0byBn
cmFwaGljc0NvbnRleHQgPSB3ZWJJbWFnZS0+Yml0bWFwKCkuY3JlYXRlR3JhcGhpY3NDb250ZXh0
KCk7CisgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoYml0bWFwSW1hZ2UsIHt7IH0sIHNp
emV9KTsKKworICAgIHJldHVybiB3ZWJJbWFnZTsKK30KKwogYm9vbCBJbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQ6OmlzU2VsZWN0ZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX2hpdFRlc3RS
ZXN1bHQuaXNTZWxlY3RlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oCmluZGV4IDE0ZTNlNjczODZmLi5hMTZmMGM2YjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlOwogY2xhc3MgV2ViRnJhbWU7Citj
bGFzcyBXZWJJbWFnZTsKIAogY2xhc3MgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlSGl0VGVzdFJlc3Vs
dD4gewogcHVibGljOgpAQCAtNjMsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGxpbmtT
dWdnZXN0ZWRGaWxlbmFtZSgpIGNvbnN0OwogICAgIAogICAgIFdlYkNvcmU6OkludFJlY3QgaW1h
Z2VSZWN0KCkgY29uc3Q7CisgICAgUmVmUHRyPFdlYkltYWdlPiBpbWFnZSgpIGNvbnN0OwogICAg
IAogICAgIGJvb2wgaXNTZWxlY3RlZCgpIGNvbnN0OwogCi0tIAoyLjEzLjUgKEFwcGxlIEdpdC05
NSkKCg==
</data>
<flag name="review"
          id="348236"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="348237"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329135</attachid>
            <date>2017-12-12 12:02:51 -0800</date>
            <delta_ts>2017-12-12 13:01:30 -0800</delta_ts>
            <desc>Patch v3</desc>
            <filename>v3-0001-WK2-Expose-image-via-WKBundleHitTestResult-API.patch</filename>
            <type>text/plain</type>
            <size>8194</size>
            <attacher name="Zach Li">a.tion.surf</attacher>
            
              <data encoding="base64">RnJvbSA1ZmQ3ZDM4OGY3MzA0MWIxNTI5MGU5YjYxYzlhODA0NzUyOWYyMTQwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBaYWNoIExpIDx6YWNobGlAYXBwbGUuY29tPgpEYXRlOiBUaHUs
IDcgRGVjIDIwMTcgMTY6MTk6NTQgLTA4MDAKU3ViamVjdDogW1BBVENIIHYzXSBbV0syXSBFeHBv
c2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUyLiByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQoK
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpTb3VyY2UvV2ViQ29yZToKCiogcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKVGhpcyBtZXRob2Qgd2lsbCBiZSB1c2VkIGJ5IGNsaWVu
dHMgb3V0c2lkZSBXZWJDb3JlLCBzbwphZGQgV0VCQ09SRV9FWFBPUlQuCgpTb3VyY2UvV2ViS2l0
OgoKKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHA6CihXS0J1bmRsZUhpdFRlc3RSZXN1bHRHZXRJbWFnZSk6CiogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaDoKCiogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgooV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlIGNvbnN0KToKQ29udmVydCBmcm9tIFdl
YkNvcmU6OkltYWdlIHRvIFdlYkltYWdlIGJ5IGNyZWF0aW5nIGEgV2ViSW1hZ2UKYW5kIHBhaW50
IHRoZSBXZWJDb3JlOjpJbWFnZSBpbnRvIGl0cyBncmFwaGljcyBjb250ZXh0LiBGb3Igbm93LApv
bmx5IGhhbmRsZSBiaXRtYXAgaW1hZ2VzLgoqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0Lmg6Ci0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKysrKysrKysKIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOSArKysrKysr
KysrKysrKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmNwcCAgfCAgNyArKysrKysrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVI
aXRUZXN0UmVzdWx0LmggICAgfCAgMSArCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0LmNwcCAgfCAyMSArKysrKysrKysrKysrKysrKysrKysKIC4uLi9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCAgICB8ICAyICsrCiA3IGZp
bGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNjE0ZTRjMTYyMjcuLjk0MDlmOGNkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTctMTItMDcgIFphY2ggTGkgIDx6YWNobGlAYXBwbGUuY29tPgorICAgICAgICBbV0syXSBF
eHBvc2UgaW1hZ2UgdmlhIFdLQnVuZGxlSGl0VGVzdFJlc3VsdCBBUEkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NTIuCisgICAgICAgIHJkYXI6
Ly9wcm9ibGVtLzIzOTUxNTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICBU
aGlzIG1ldGhvZCB3aWxsIGJlIHVzZWQgYnkgY2xpZW50cyBvdXRzaWRlIFdlYkNvcmUsIHNvCisg
ICAgICAgIGFkZCBXRUJDT1JFX0VYUE9SVC4KKwogMjAxNy0xMi0xMiAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBIVE1MLXBhZ2Ugd2l0aCA8b2JqZWN0
IHR5cGU9ImltYWdlL3N2Zyt4bWwiIGRhdGE9ImZvby5zdmciPiBvZnRlbiBpcyBibGFuawpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgKaW5kZXggZjEw
ZTRjMWVhNjUuLjBlNTEzOWRjY2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogICAgIHN0ZDo6
b3B0aW9uYWw8SW50UG9pbnQ+IGhvdFNwb3QoKTsKIAogICAgIC8vIEltYWdlIG1ldGFkYXRhIHdo
aWNoIGlzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgZmlyc3QgSW1hZ2VGcmFtZS4KLSAgICBJbnRTaXpl
IHNpemUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoKTsKICAgICBJbnRTaXpl
IHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKTsKICAgICBDb2xvciBzaW5nbGVQaXhlbFNvbGlk
Q29sb3IoKTsKICAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVsKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IGYzMDhkNjA4NjQ3Li5jMDI4OTgwYTRiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxNy0xMi0wNyAgWmFjaCBMaSAgPHphY2hsaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW1dLMl0gRXhwb3NlIGltYWdlIHZpYSBXS0J1bmRsZUhpdFRlc3RSZXN1bHQgQVBJLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNTUyLgorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8yMzk1MTUyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV0tCdW5kbGVIaXRUZXN0UmVzdWx0
R2V0SW1hZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVIaXRUZXN0UmVzdWx0Lmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2UgY29uc3QpOgorICAgICAgICBDb252ZXJ0
IGZyb20gV2ViQ29yZTo6SW1hZ2UgdG8gV2ViSW1hZ2UgYnkgY3JlYXRpbmcgYSBXZWJJbWFnZQor
ICAgICAgICBhbmQgcGFpbnQgdGhlIFdlYkNvcmU6OkltYWdlIGludG8gaXRzIGdyYXBoaWNzIGNv
bnRleHQuIEZvciBub3csCisgICAgICAgIG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQuaDoKKwogMjAxNy0xMi0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2VycyBmb2xsb3cgdGhlIERFRkFVTFRfRVhQRVJJTUVO
VEFMX0ZFQVRVUkVTX0VOQUJMRUQgZmxhZyBvbiBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUhpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDJmNmQyZDA0Y2YxLi42OTMzNDNjNzRmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3Qu
aCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkltYWdlLmgiCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAKQEAgLTEwNiw2ICsxMDcsMTIgQEAgV0tSZWN0IFdLQnVuZGxl
SGl0VGVzdFJlc3VsdEdldEltYWdlUmVjdChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdFIKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGhpdFRlc3RSZXN1bHRSZWYpLT5pbWFn
ZVJlY3QoKSk7CiB9CiAKK1dLSW1hZ2VSZWYgV0tCdW5kbGVIaXRUZXN0UmVzdWx0Q29weUltYWdl
KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0UmVmKQoreworICAgIFJlZlB0
cjxXZWJJbWFnZT4gd2ViSW1hZ2UgPSB0b0ltcGwoaGl0VGVzdFJlc3VsdFJlZiktPmltYWdlKCk7
CisgICAgcmV0dXJuIHRvQVBJKHdlYkltYWdlLmxlYWtSZWYoKSk7Cit9CisKIGJvb2wgV0tCdW5k
bGVIaXRUZXN0UmVzdWx0R2V0SXNTZWxlY3RlZChXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0
VGVzdFJlc3VsdFJlZikKIHsKICAgICByZXR1cm4gdG9JbXBsKGhpdFRlc3RSZXN1bHRSZWYpLT5p
c1NlbGVjdGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKaW5k
ZXggNjYzODhiZjhkZGQuLjUxNDE4ZGExZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
SGl0VGVzdFJlc3VsdC5oCkBAIC01OCw2ICs1OCw3IEBAIFdLX0VYUE9SVCBib29sIFdLQnVuZGxl
SGl0VGVzdFJlc3VsdElzRG93bmxvYWRhYmxlTWVkaWEoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVm
CiBXS19FWFBPUlQgV0tCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlIFdLQnVuZGxlSGl0VGVz
dFJlc3VsdEdldE1lZGlhVHlwZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3Vs
dCk7CiAKIFdLX0VYUE9SVCBXS1JlY3QgV0tCdW5kbGVIaXRUZXN0UmVzdWx0R2V0SW1hZ2VSZWN0
KFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsKK1dLX0VYUE9SVCBXS0lt
YWdlUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlJbWFnZShXS0J1bmRsZUhpdFRlc3RSZXN1
bHRSZWYgaGl0VGVzdFJlc3VsdCk7CiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUhpdFRlc3RSZXN1
bHRHZXRJc1NlbGVjdGVkKFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0KTsK
IAogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdENvcHlMaW5rTGFi
ZWwoV0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcAppbmRleCA3MmFlNzcyN2Q0NS4uMzgxMDYz
ZTZjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuY3BwCkBA
IC0yOSwxMSArMjksMTQgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lTG9hZGVyQ2xpZW50Lmgi
CisjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEltYWdlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTE2Nyw2ICsxNzAsMjQgQEAgSW50UmVjdCBJ
bmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IHZpZXctPmNvbnRlbnRzVG9Sb290VmlldyhpbWFnZVJlY3QpOwogfQogCitSZWZQdHI8V2ViSW1h
Z2U+IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdDo6aW1hZ2UoKSBjb25zdAoreworICAgIElt
YWdlKiBpbWFnZSA9IG1faGl0VGVzdFJlc3VsdC5pbWFnZSgpOworICAgIC8vIEZvciBub3csIHdl
IG9ubHkgaGFuZGxlIGJpdG1hcCBpbWFnZXMuCisgICAgaWYgKCFpczxCaXRtYXBJbWFnZT4oaW1h
Z2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEJpdG1hcEltYWdlJiBiaXRtYXBJ
bWFnZSA9IGRvd25jYXN0PEJpdG1hcEltYWdlPigqaW1hZ2UpOworICAgIEludFNpemUgc2l6ZShi
aXRtYXBJbWFnZS5zaXplKCkpOworICAgIGF1dG8gd2ViSW1hZ2UgPSBXZWJJbWFnZTo6Y3JlYXRl
KHNpemUsIHN0YXRpY19jYXN0PEltYWdlT3B0aW9ucz4oMCkpOworCisgICAgLy8gRklYTUU6IG5l
ZWQgdG8gaGFuZGxlIEVYSUYgcm90YXRpb24uCisgICAgYXV0byBncmFwaGljc0NvbnRleHQgPSB3
ZWJJbWFnZS0+Yml0bWFwKCkuY3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7CisgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3SW1hZ2UoYml0bWFwSW1hZ2UsIHt7IH0sIHNpemV9KTsKKworICAgIHJldHVy
biB3ZWJJbWFnZTsKK30KKwogYm9vbCBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmlzU2Vs
ZWN0ZWQoKSBjb25zdAogewogICAgIHJldHVybiBtX2hpdFRlc3RSZXN1bHQuaXNTZWxlY3RlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCmluZGV4IDE0ZTNlNjcz
ODZmLi5hMTZmMGM2YjU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1
bHQuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlOwogY2xhc3MgV2ViRnJhbWU7CitjbGFzcyBXZWJJbWFnZTsKIAog
Y2xhc3MgSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0IDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlSGl0VGVzdFJlc3VsdD4gewogcHVibGljOgpAQCAt
NjMsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGxpbmtTdWdnZXN0ZWRGaWxlbmFtZSgp
IGNvbnN0OwogICAgIAogICAgIFdlYkNvcmU6OkludFJlY3QgaW1hZ2VSZWN0KCkgY29uc3Q7Cisg
ICAgUmVmUHRyPFdlYkltYWdlPiBpbWFnZSgpIGNvbnN0OwogICAgIAogICAgIGJvb2wgaXNTZWxl
Y3RlZCgpIGNvbnN0OwogCi0tIAoyLjEzLjUgKEFwcGxlIEdpdC05NSkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>