<?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>123422</bug_id>
          
          <creation_ts>2013-10-28 14:32:55 -0700</creation_ts>
          <short_desc>Remote Layer Tree: Support tiled drawing and use it for the main frame</short_desc>
          <delta_ts>2013-10-29 14:24:48 -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>WebKit2</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>123418</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>944222</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-28 14:32:55 -0700</bug_when>
    <thetext>And then we&apos;ll finally have page contents painting!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944559</commentid>
    <comment_count>1</comment_count>
      <attachid>215413</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-29 13:17:34 -0700</bug_when>
    <thetext>Created attachment 215413
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944560</commentid>
    <comment_count>2</comment_count>
      <attachid>215413</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-29 13:18:20 -0700</bug_when>
    <thetext>Comment on attachment 215413
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:153
&gt; +    // This is unfortunate. I really want a nice way at the PlatformCALayer level to override things but fall back on the -Remote or -Mac or -Win specific behavior (so we can get rid of our CALayer subclasses and make painting more straightforward).

I will get rid of this comment, didn&apos;t mean to include it (and basically moved it into the ChangeLog anyway).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944561</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-29 13:20:01 -0700</bug_when>
    <thetext>Attachment 215413 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h&apos;, u&apos;Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm&apos;, u&apos;Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemote.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerBackingStore.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:41:  The parameter name &quot;context&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 16 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>944573</commentid>
    <comment_count>4</comment_count>
      <attachid>215416</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-29 13:44:23 -0700</bug_when>
    <thetext>Created attachment 215416
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944586</commentid>
    <comment_count>5</comment_count>
      <attachid>215416</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-29 13:52:52 -0700</bug_when>
    <thetext>Comment on attachment 215416
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:52
&gt; +
&gt; +

Extra line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944599</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-29 14:03:41 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/158223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944610</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-29 14:24:48 -0700</bug_when>
    <thetext>and follow up in http://trac.webkit.org/changeset/158224</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215413</attachid>
            <date>2013-10-29 13:17:34 -0700</date>
            <delta_ts>2013-10-29 13:44:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>tiles.diff</filename>
            <type>text/plain</type>
            <size>34545</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZDQ1OTZhLi4zYTVmZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTMtMTAtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IFN1cHBvcnQgdGlsZWQgZHJhd2luZyBhbmQgdXNl
IGl0IGZvciB0aGUgbWFpbiBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzNDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTMtMTAtMjkgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgb2xkIElu
c3BlY3Rvci5qc29uIHZlcnNpb24gZmlsZXMgYW5kIGdlbmVyYXRvcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMmFlYTI1OC4uYWM1MWFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwOCw2
ICsxMDgsNyBAQCBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0ViCiBfX1pON1dlYkNvcmUxMFRl
eHRTdHJlYW1sc0VkCiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VmCiBfX1pON1dlYkNvcmUx
MFRleHRTdHJlYW1sc0VpCitfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VqCiBfX1pON1dlYkNv
cmUxMFRleHRTdHJlYW1sc0V5CiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VQS3YKIF9fWk43
V2ViQ29yZTEwVGV4dFN0cmVhbWxzRVJLTjNXVEY2U3RyaW5nRQpAQCAtNDE0LDYgKzQxNSwxNSBA
QCBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMzJzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJE
YXRhYmFzZUV2CiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyN29yaWdpbnNFUk4zV1RGNlZl
Y3RvcklOUzFfNlJlZlB0cklOU18xNFNlY3VyaXR5T3JpZ2luRUVFTG0wRU5TMV8xNUNyYXNoT25P
dmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjd0cmFja2VyRXYKIF9fWk43
V2ViQ29yZTE0U3ViZnJhbWVMb2FkZXIxMmFsbG93UGx1Z2luc0VOU18yOFJlYXNvbkZvckNhbGxp
bmdBbGxvd1BsdWdpbnNFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyNmNyZWF0ZUVQTlNf
MTVQbGF0Zm9ybUNBTGF5ZXJFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyOHNldFNjYWxl
RWQKK19fWk43V2ViQ29yZTE0VGlsZUNvbnRyb2xsZXIxNHNldFRpbGVzT3BhcXVlRWIKK19fWk43
V2ViQ29yZTE0VGlsZUNvbnRyb2xsZXIxNXNldE5lZWRzRGlzcGxheUV2CitfX1pON1dlYkNvcmUx
NFRpbGVDb250cm9sbGVyMjFzZXRBY2NlbGVyYXRlc0RyYXdpbmdFYgorX19aTjdXZWJDb3JlMTRU
aWxlQ29udHJvbGxlcjIxc2V0TmVlZHNEaXNwbGF5SW5SZWN0RVJLTlNfN0ludFJlY3RFCitfX1pO
N1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjNzZXRUaWxlRGVidWdCb3JkZXJDb2xvckVOU181Q29s
b3JFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjNzZXRUaWxlRGVidWdCb3JkZXJXaWR0
aEVmCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjd0aWxlQ2FjaGVMYXllckJvdW5kc0No
YW5nZWRFdgogX19aTjdXZWJDb3JlMTRjb29raWVzRW5hYmxlZEVSS05TXzIxTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uRVJLTlNfM1VSTEVTNV8KIF9fWk43V2ViQ29yZTE0ZGVjb2RlSG9zdE5hbWVFUDhO
U1N0cmluZwogX19aTjdXZWJDb3JlMTRlbmNvZGVIb3N0TmFtZUVQOE5TU3RyaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmZj
ODlhZS4uZTZiYzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNjgzLDcgKzY4Myw3IEBACiAJCTFBOTg5NTZCMEFBNzhGODAw
MDVFRjVFRiAvKiBVUkxDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTk4OTU2QTBBQTc4RjgwMDA1RUY1RUYgLyogVVJMQ0YuY3BwICovOyB9Owog
CQkxQUEyMTI1MDE2M0YwREE4MDAwMEU2M0YgLyogQXRvbWljU3RyaW5nQ0YuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBMjEyNEYxNjNGMERBODAw
MDBFNjNGIC8qIEF0b21pY1N0cmluZ0NGLmNwcCAqLzsgfTsKIAkJMUFBNzE2MEExNDlCQzREQjAw
MTZFQzE5IC8qIFRpbGVDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFBNzE2MDgxNDlCQzREQTAwMTZFQzE5IC8qIFRpbGVDb250cm9s
bGVyLm1tICovOyB9OwotCQkxQUE3MTYwQjE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTcx
NjA5MTQ5QkM0REIwMDE2RUMxOSAvKiBUaWxlQ29udHJvbGxlci5oICovOyB9OworCQkxQUE3MTYw
QjE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTcxNjA5MTQ5QkM0REIwMDE2RUMxOSAvKiBU
aWxlQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBQTg0RjA0MTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29u
dHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5t
bSAqLzsgfTsKIAkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbEVsYXN0aWNpdHlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIu
aCAqLzsgfTsKIAkJMUFBODc5OTAxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE4Nzk4RjEx
Q0JFODQ2MDAzQzY2NEYgLyogUGx1Z2luU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDljMWI0ZDguLjEwMjA3NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAxMy0xMC0yOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGUgTGF5ZXIgVHJlZTogU3Vw
cG9ydCB0aWxlZCBkcmF3aW5nIGFuZCB1c2UgaXQgZm9yIHRoZSBtYWluIGZyYW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0MjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUgc3ViY2xhc3MgdGhhdCBiZWhhdmVzIHNpbWlsYXJseSB0bworICAgICAgICBX
ZWJUaWxlZEJhY2tpbmdMYXllciwgZm9yd2FyZGluZyByZWxldmFudCB0aGluZ3MgKHNldE5lZWRz
RGlzcGxheSwgZXRjLikKKyAgICAgICAgdG8gdGhlIFRpbGVDb250cm9sbGVyIHdoaWNoIGl0IG93
bnMuCisKKyAgICAgICAgVGVhY2ggdGhlIHJlbW90ZSBsYXllciB0cmVlIGNvZGUgZW5vdWdoIHRv
IHByb3h5IHRoZXNlIGxheWVycyBhY3Jvc3MsCisgICAgICAgIGFuZCBwYWludCB0aGVtIGluIGEg
bWFubmVyIHNpbWlsYXIgdG8gV2ViU2ltcGxlTGF5ZXIgKGp1c3QgY2FsbGluZworICAgICAgICBz
dHJhaWdodCBiYWNrIHRvIHRoZSBUaWxlQ29udHJvbGxlciB0byBwYWludCkuCisKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGll
czo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y29tbWl0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OnNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKToKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIGFkanVzdGluZy9lbmNvZGluZy9kZWNvZGluZy9kdW1waW5nL2FwcGx5aW5nIGVkZ2VB
bnRpYWxpYXNpbmdNYXNrLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpkdW1wKToKKyAgICAgICAgRHJpdmUtYnkgZml4IGR1bXBpbmcgb2YgY3JlYXRlZCBs
YXllcnMgdG8gaGF2ZSBvbmUgbGF5ZXIgcGVyIGxpbmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgQ3JlYXRlIENBTGF5ZXJzIGZvciBTaW1w
bGUsIFRpbGVkQmFja2luZywgUGFnZVRpbGVkQmFja2luZywgYW5kIFRpbGVkQmFja2luZ1RpbGUg
bGF5ZXJzLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICBBZGQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLntoLCBjcHB9Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
Y3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICBD
cmVhdGUgYSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcgZm9yIFRpbGVkQmFja2lu
ZyBhbmQgUGFnZVRpbGVkQmFja2luZyBsYXllcnMuCisKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVtb3ZlQWxsU3VibGF5ZXJzKToKKyAgICAgICAgRml4IHJlbW92ZUFsbFN1Ymxh
eWVycyB0byBtYWtlIGEgY29weSBvZiB0aGUgUGxhdGZvcm1DQUxheWVyTGlzdCBiZWZvcmUKKyAg
ICAgICAgbXV0YXRpbmcgaXQsIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBpdGVyYXRpbmcgYSBtdXRh
dGVkIGxpc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oOgorICAgICAgICBEZWZpbmFsaXplIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBz
byB3ZSBjYW4gaGF2ZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuCisgICAgICAg
IE5vdGUgdGhhdCB3ZSB3aWxsIHVzZSBhIHRpbGVkIGJhY2tpbmcgbGF5ZXIgaW4gc29tZSBjYXNl
cy4KKyAgICAgICAgTWFrZSB0aGUgY29uc3RydWN0b3IgcHJvdGVjdGVkLCBub3QgcHJpdmF0ZSwg
c28gb3VyIHN1YmNsYXNzIGNhbiB1c2UgaXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHA6IEFkZGVkLgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nOjp+UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm91bmRzKToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6aXNPcGFxdWUpOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRPcGFxdWUpOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjphY2NlbGVyYXRlc0Ry
YXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRB
Y2NlbGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nOjpzZXRDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyV2lkdGgpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nOjpzZXRCb3JkZXJDb2xvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaDogQWRkZWQu
CisgICAgICAgIEFkZCBhIHN1YmNsYXNzIG9mIFBsYXRmb3JtQ0FMYXllclJlbW90ZSB3aGljaCBm
b3J3YXJkcyBvcGVyYXRpb25zCisgICAgICAgIHRvIFRpbGVDb250cm9sbGVyLCB2ZXJ5IHNpbWls
YXIgdG8gd2hhdCBXZWJUaWxlZEJhY2tpbmdMYXllciBkb2VzLgorICAgICAgICBJdCBhbHNvIG93
bnMgdGhlIFRpbGVDb250cm9sbGVyLCBhbmQgb3ZlcnJpZGVzIGN1c3RvbVN1YmxheWVycygpIGFu
ZAorICAgICAgICB0aWxlZEJhY2tpbmcoKSB0byByZXR1cm4gdGhlIHJpZ2h0IHRoaW5nLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bToKKyAgICAgICAgKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KToKKyAgICAgICAg
VGVhY2ggUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgYWJvdXQgaG93IHRvIHBhaW50IGRpZmZlcmVu
dCBraW5kcyBvZiBsYXllcnMuCisgICAgICAgIFNpbXBsZSBsYXllcnMgYW5kIFRpbGUgbGF5ZXJz
IHdpbGwgY2FsbCBwYWludENvbnRlbnRzIGRpcmVjdGx5LAorICAgICAgICBXZWJMYXllcnMgd2ls
bCBkbyB3aGF0IFdlYkxheWVyIGRvZXMgYW5kIHVzZSBkcmF3TGF5ZXJDb250ZW50cy4KKyAgICAg
ICAgT3RoZXIga2luZHMgb2YgbGF5ZXJzIHdvbid0IHBhaW50IGF0IGFsbCByaWdodCBub3cuCisg
ICAgICAgIEkgd291bGQgbGlrZSB0byBjZW50cmFsaXplIHRoaXMgYmVoYXZpb3IgKGFuZCBnZXQg
cmlkIG9mIG91ciBDQUxheWVyCisgICAgICAgIHN1YmNsYXNzZXMgZW50aXJlbHksIG1vdmluZyBh
bGwgdGhhdCBiZWhhdmlvciB0byBiZSBzaGFyZWQgYmV0d2VlbiBNYWMsCisgICAgICAgIFdpbmRv
d3MsIGFuZCB0aGUgcmVtb3RlIGxheWVyIHRyZWUpLCBidXQgdGhhdCBpcyBhIHBhdGNoIGZvciBh
bm90aGVyIGRheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KToKKyAgICAgICAgRm9yY2UgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb24g
YWx3YXlzIHdoZW4gdXNpbmcgdGhlIHJlbW90ZSBsYXllciB0cmVlLgorICAgICAgICBVc2UgYSBU
aWxlZEJhY2tpbmcgZm9yIHRoZSBtYWluIGZyYW1lLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICBEcml2
ZS1ieSBPVkVSUklERS4KKwogMjAxMy0xMC0yOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBNYWMgZGVidWcgYnVpbGQgZml4IGFmdGVy
IHIxNTgxODMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggZTU3ZTBhNy4uNzUwZjhhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aApAQCAtNzUsNyArNzUsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNwZWVkQ2hhbmdlZCA9IDEgPDwg
MjIsCiAgICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkID0gMSA8PCAyMywKICAgICAgICAgQmFja2lu
Z1N0b3JlQ2hhbmdlZCA9IDEgPDwgMjQsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMSA8PCAy
NQorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjUsCisgICAgICAgIEVkZ2VBbnRpYWxp
YXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjYKICAgICB9OwogCiAgICAgc3RydWN0IExheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzIHsKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSB0aW1lT2Zmc2V0OwogICAgICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSBiYWNraW5n
U3RvcmU7CiAgICAgICAgIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKKyAgICAg
ICAgdW5zaWduZWQgZWRnZUFudGlhbGlhc2luZ01hc2s7CiAgICAgfTsKIAogICAgIGV4cGxpY2l0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCA5ZDQ0MjQy
Li41YjBjYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTE0Myw2ICsxNDMsOSBAQCB2b2lkIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZQogCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgRmlsdGVyc0NoYW5n
ZWQpCiAgICAgICAgIGVuY29kZXIgPDwgZmlsdGVyczsKKworICAgIGlmIChjaGFuZ2VkUHJvcGVy
dGllcyAmIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCkKKyAgICAgICAgZW5jb2RlciA8PCBl
ZGdlQW50aWFsaWFzaW5nTWFzazsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBMYXllclByb3BlcnRpZXMmIHJlc3VsdCkKQEAgLTI4MCw2ICsyODMsMTEgQEAgYm9vbCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAg
ICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFu
Z2VkKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVkZ2VBbnRpYWxpYXNp
bmdNYXNrKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtNjE5LDYgKzYyNyw5IEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2VkTGF5
ZXJzKFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBIYXNoTWFwPFJlbW90CiAg
ICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6RmlsdGVyc0NoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVy
dHk8RmlsdGVyT3BlcmF0aW9ucz4odHMsICJmaWx0ZXJzIiwgbGF5ZXJQcm9wZXJ0aWVzLmZpbHRl
cnMpOwogCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKQor
ICAgICAgICAgICAgZHVtcFByb3BlcnR5PHVuc2lnbmVkPih0cywgImVkZ2VBbnRpYWxpYXNpbmdN
YXNrIiwgbGF5ZXJQcm9wZXJ0aWVzLmVkZ2VBbnRpYWxpYXNpbmdNYXNrKTsKKwogICAgICAgICB0
cyA8PCAiKSI7CiAKICAgICAgICAgdHMuZGVjcmVhc2VJbmRlbnQoKTsKQEAgLTYzOSw5ICs2NTAs
MTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZHVtcCgpIGNvbnN0CiAgICAg
aWYgKCFtX2NyZWF0ZWRMYXllcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHRzIDw8ICJcbiI7CiAg
ICAgICAgIHRzLndyaXRlSW5kZW50KCk7Ci0gICAgICAgIHRzIDw8ICIoY3JlYXRlZC1sYXllcnNc
biI7CisgICAgICAgIHRzIDw8ICIoY3JlYXRlZC1sYXllcnMiOwogICAgICAgICB0cy5pbmNyZWFz
ZUluZGVudCgpOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNyZWF0ZWRMYXllciA6IG1fY3Jl
YXRlZExheWVycykgeworICAgICAgICAgICAgdHMgPDwgIlxuIjsKICAgICAgICAgICAgIHRzLndy
aXRlSW5kZW50KCk7CiAgICAgICAgICAgICB0cyA8PCAiKCI7CiAgICAgICAgICAgICBzd2l0Y2gg
KGNyZWF0ZWRMYXllci50eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggY2YwYTY0MC4uMmY0NTlkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5t
bQpAQCAtMjA3LDYgKzIwNyw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y29tbWl0KGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIAogICAgICAgICBp
ZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpGaWx0ZXJzQ2hhbmdlZCkKICAgICAgICAgICAgIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRG
aWx0ZXJzT25MYXllcihsYXllciwgcHJvcGVydGllcy5maWx0ZXJzKTsKKworICAgICAgICBpZiAo
cHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQpCisgICAgICAgICAgICBsYXllci5lZGdlQW50
aWFsaWFzaW5nTWFzayA9IHByb3BlcnRpZXMuZWRnZUFudGlhbGlhc2luZ01hc2s7CiAgICAgfQog
CiAgICAgZm9yIChhdXRvIGRlc3Ryb3llZExheWVyIDogdHJhbnNhY3Rpb24uZGVzdHJveWVkTGF5
ZXJzKCkpCkBAIC0yMTgsNyArMjIxLDYgQEAgQ0FMYXllciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
Z2V0TGF5ZXIoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVySUQgbGF5ZXIKICAgICBy
ZXR1cm4gbV9sYXllcnMuZ2V0KGxheWVySUQpLmdldCgpOwogfQogCi0KIENBTGF5ZXIgKlJlbW90
ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllckNyZWF0aW9uUHJvcGVydGllcyBwcm9wZXJ0aWVzKQogewogICAgIFJldGFpblB0cjxDQUxh
eWVyPiYgbGF5ZXIgPSBtX2xheWVycy5hZGQocHJvcGVydGllcy5sYXllcklELCBudWxscHRyKS5p
dGVyYXRvci0+dmFsdWU7CkBAIC0yMjksNiArMjMxLDEwIEBAIENBTGF5ZXIgKlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNy
ZWF0CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxheWVyOgogICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVXZWJMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FM
YXllcjo6TGF5ZXJUeXBlUm9vdExheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVTaW1wbGVMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGls
ZWRCYWNraW5nTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVBhZ2VU
aWxlZEJhY2tpbmdMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGls
ZWRCYWNraW5nVGlsZUxheWVyOgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFs
bG9jXSBpbml0XSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUcmFuc2Zvcm1MYXllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzZkOTIyLi42ODc0NGIwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE1
LDYgKzMxNSw4IEBACiAJCTJENDdCNTZDMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJENDdCNTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bSAqLzsgfTsKIAkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCAqLzsg
fTsKIAkJMkQ4NzBEMTAxNjIzNEZGRTAwMEEzRjIwIC8qIFBERlBsdWdpbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcwRDBFMTYyMkI3RjkwMDBB
M0YyMCAvKiBQREZQbHVnaW4ubW0gKi87IH07CisJCTJEODk0OUYwMTgyMDQ0RjYwMEU4OThBQSAv
KiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4OTQ5RUUxODIwNDRGNjAwRTg5OEFBIC8q
IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAgKi87IH07CisJCTJEODk0OUYx
MTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODk0OUVGMTgy
MDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLzsg
fTsKIAkJMkRBMDQ5QjMxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREEwNDlC
MTE4MENDQ0QzMDBBQUZBOUUgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCAqLzsgfTsKIAkJ
MkRBMDQ5QjQxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBMDQ5QjIxODBDQ0NE
MzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovOyB9OwogCQkyREEwNDlCNzE4
MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTA0OUI1MTgwQ0NEMEEwMEFBRkE5
RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwICovOyB9OwpAQCAtMTc4MSw2ICsxNzgzLDgg
QEAKIAkJMkQ0N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODcwRDBEMTYyMkI3RjkwMDBB
M0YyMCAvKiBQREZQbHVnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERG
UGx1Z2luLmg7IHBhdGggPSBQREYvUERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEODcwRDBFMTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYv
UERGUGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDg5NDlFRTE4MjA0
NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEODk0OUVGMTgy
MDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTA0OUIxMTgwQ0NDRDMw
MEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FM
YXllclJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjUxODBD
Q0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg4Myw2ICs0ODg3LDggQEAKIAkJCQkyREEwNDlCNjE4
MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggKi8sCiAJCQkJMkRBMDQ5
QjExODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJCQkJ
MkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovLAor
CQkJCTJEODk0OUVFMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmcuY3BwICovLAorCQkJCTJEODk0OUVGMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLywKIAkJCQkyRDQ3QjU2QTE4MTA3MTRFMDAz
QTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gKi8sCiAJCQkJMkQ0N0I1NkIxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8sCiAJCQkJMUFCMTZB
RTgxNjRCM0E4ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCAqLywKQEAgLTU0
MTUsNiArNTQyMSw3IEBACiAJCQkJMUFCN0Q2MUExMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2Fk
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUxNzM4ODExMkRGOEY0RjAwRUUz
RjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg0NTJB
ODExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEuaCBpbiBIZWFkZXJzICovLAorCQkJCTJE
ODk0OUYxMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjY1OTIzMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3
aW5nQXJlYUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjQyMjlBMTJERDAyOTIwMENBQUUy
QyAvKiBEcmF3aW5nQXJlYU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzI2NTIxNzEx
ODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC03
MTUxLDYgKzcxNTgsNyBAQAogCQkJCUI2MkU3MzEwMTQzMDQ3QTYwMDY5RUMzNSAvKiBXS0hpdFRl
c3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExMEFFMEMxMzNDMTZDQjAwNzI3MTdB
IC8qIFdLSWNvbkRhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMjNDRjFCMTMzRDI2
MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJE
ODk0OUYwMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwMzJGMUQxODBGNzkxNzAwOTYxQkI3IC8qIERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0NGNkFDMjEyQzkxRjM0MDA4RjlDMzUgLyogV0tJbWFnZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0NGNkFDOTEyQzkxRjU5MDA4RjlDMzUgLyogV0tJbWFnZUNHLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDVkMGM2ZTIu
Ljk1OGY4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAKKyNpbXBvcnQgIlBsYXRm
b3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQg
PFdlYkNvcmUvQW5pbWF0aW9uVXRpbGl0aWVzLmg+CkBAIC01OCw2ICs1OSw5IEBAIHN0YXRpYyBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKFBsYXRmb3JtQ0FM
YXllciogbGF5ZXIpCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmNyZWF0ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQogeworICAgIGlmIChs
YXllclR5cGUgPT0gTGF5ZXJUeXBlVGlsZWRCYWNraW5nTGF5ZXIgfHwgIGxheWVyVHlwZSA9PSBM
YXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXIpCisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKGxheWVyVHlwZSwgb3duZXIsIGNv
bnRleHQpKTsKKwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
KGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpKTsKIH0KIApAQCAtMTcxLDkgKzE3NSwxMCBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0U3VibGF5ZXJzKGNvbnN0IFBsYXRmb3JtQ0FM
YXllckxpc3QmIGxpc3QpCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbGxT
dWJsYXllcnMoKQogewotICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBtX2NoaWxkcmVuKQor
ICAgIFBsYXRmb3JtQ0FMYXllckxpc3QgbGF5ZXJzVG9SZW1vdmUgPSBtX2NoaWxkcmVuOworICAg
IGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBsYXllcnNUb1JlbW92ZSkKICAgICAgICAgbGF5ZXIt
PnJlbW92ZUZyb21TdXBlcmxheWVyKCk7Ci0gICAgbV9jaGlsZHJlbi5jbGVhcigpOworICAgIEFT
U0VSVChtX2NoaWxkcmVuLmlzRW1wdHkoKSk7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0
aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsK
IH0KIApAQCAtNDYyLDE0ICs0NjcsMTAgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNl
dENvbnRlbnRzU2NhbGUoZmxvYXQgdmFsdWUpCiAgICAgZW5zdXJlQmFja2luZ1N0b3JlKCk7CiB9
CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1
bnNpZ25lZCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRFZGdlQW50aWFsaWFzaW5n
TWFzayh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQot
VGlsZWRCYWNraW5nKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnRpbGVkQmFja2luZygpCi17Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgbV9wcm9wZXJ0aWVzLmVkZ2VBbnRpYWxpYXNpbmdNYXNr
ID0gdmFsdWU7CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKTsKIH0KIAog
QVZQbGF5ZXJMYXllciogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpwbGF5ZXJMYXllcigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCA1OGYyOTgwLi44NmZkZGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTMxLDIyICszMSwyMyBAQAogI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RpbGVDb250cm9sbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1v
dGVMYXllclRyZWVDb250ZXh0OwogCi1jbGFzcyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgRklOQUwg
OiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyIHsKK2NsYXNzIFBsYXRmb3JtQ0FMYXll
clJlbW90ZSA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlKFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBS
ZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CiAKLSAgICB+UGxhdGZvcm1DQUxheWVyUmVtb3RlKCk7
CisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUxheWVyUmVtb3RlKCk7CiAKICAgICBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJJRCBsYXllcklEKCkgeyByZXR1cm4gbV9sYXllcklEOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW1vdGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc1RpbGVkQmFja2luZ0xheWVyKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc1RpbGVkQmFj
a2luZ0xheWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbGF5ZXJUeXBlKCkgPT0gTGF5ZXJU
eXBlUGFnZVRpbGVkQmFja2luZ0xheWVyIHx8IGxheWVyVHlwZSgpID09IExheWVyVHlwZVRpbGVk
QmFja2luZ0xheWVyOyB9CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExNiw3ICsxMTcs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlcldp
ZHRoKGZsb2F0KSBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJDb2xvcihj
b25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFj
aXR5KCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMzksMTUgKzEzOSwxNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RWRnZUFudGlhbGlhc2luZ01hc2sodW5zaWduZWQpIE9WRVJSSURF
OwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmco
KSBPVkVSUklERSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBjbG9uZShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNvbXBhdGlibGVMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3Qg
T1ZFUlJJREU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUxheWVyUmVt
b3RlKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KTsK
IAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFWUGxheWVyTGF5ZXIgKnBsYXllckxheWVyKCkgY29u
c3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ODg5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVk
QmFja2luZy5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuaCIKKworI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5o
IgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1DQUxheWVyTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbGVkQmFja2luZy5oPgor
I2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmcoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25l
ciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKKyAgICA6IFBsYXRmb3JtQ0FMYXll
clJlbW90ZShsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KQoreworICAgIG1fdGlsZUNvbnRyb2xs
ZXIgPSBUaWxlQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMpOworCisgICAgbV9jdXN0b21TdWJsYXll
cnMgPSBhZG9wdFB0cihuZXcgUGxhdGZvcm1DQUxheWVyTGlzdCgxKSk7CisgICAgUGxhdGZvcm1D
QUxheWVyKiB0aWxlQ2FjaGVUaWxlQ29udGFpbmVyTGF5ZXIgPSBtX3RpbGVDb250cm9sbGVyLT50
aWxlQ29udGFpbmVyTGF5ZXIoKTsKKyAgICAoKm1fY3VzdG9tU3VibGF5ZXJzKVswXSA9IHRpbGVD
YWNoZVRpbGVDb250YWluZXJMYXllcjsKK30KKworCitQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmc6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoKQoreworfQorCit2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KGNv
bnN0IEZsb2F0UmVjdCogZGlydHlSZWN0KQoreworICAgIGlmIChkaXJ0eVJlY3QpCisgICAgICAg
IG1fdGlsZUNvbnRyb2xsZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChlbmNsb3NpbmdJbnRSZWN0
KCpkaXJ0eVJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldE5l
ZWRzRGlzcGxheSgpOworfQorCitjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0KiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OmN1c3RvbVN1YmxheWVycygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY3VzdG9tU3VibGF5ZXJzLmdldCgpOworfQorCit2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm91bmRzKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgYm91bmRzKQoreworICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Qm91bmRz
KGJvdW5kcyk7CisgICAgbV90aWxlQ29udHJvbGxlci0+dGlsZUNhY2hlTGF5ZXJCb3VuZHNDaGFu
Z2VkKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjppc09w
YXF1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGlsZUNvbnRyb2xsZXItPnRpbGVzQXJlT3Bh
cXVlKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRP
cGFxdWUoYm9vbCBvcGFxdWUpCit7CisgICAgbV90aWxlQ29udHJvbGxlci0+c2V0VGlsZXNPcGFx
dWUob3BhcXVlKTsKK30KKworYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6
OmFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGlsZUNvbnRyb2xs
ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZzo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3
aW5nKQoreworICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhhY2Nl
bGVyYXRlc0RyYXdpbmcpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZzo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBzY2FsZSkKK3sKKyAgICBtX3RpbGVDb250cm9s
bGVyLT5zZXRTY2FsZShzY2FsZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nOjpzZXRCb3JkZXJXaWR0aChmbG9hdCBib3JkZXJXaWR0aCkKK3sKKyAgICBtX3Rp
bGVDb250cm9sbGVyLT5zZXRUaWxlRGVidWdCb3JkZXJXaWR0aChib3JkZXJXaWR0aCAvIDIpOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fdGlsZUNvbnRyb2xsZXIt
PnNldFRpbGVEZWJ1Z0JvcmRlckNvbG9yKGNvbG9yKTsKK30KKworI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMjlkNmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAorI2RlZmluZSBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorCisjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcgRklO
QUwgOiBwdWJsaWMgUGxhdGZvcm1DQUxheWVyUmVtb3RlIHsKKyAgICBmcmllbmQgY2xhc3MgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXll
clJlbW90ZVRpbGVkQmFja2luZygpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZyhXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dCogY29udGV4dCk7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRpbGVkQmFja2luZyogdGlsZWRC
YWNraW5nKCkgT1ZFUlJJREUgeyByZXR1cm4gbV90aWxlQ29udHJvbGxlci5nZXQoKTsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qq
IGRpcnR5UmVjdCA9IDApIE9WRVJSSURFOworCisgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQ
bGF0Zm9ybUNBTGF5ZXJMaXN0KiBjdXN0b21TdWJsYXllcnMoKSBjb25zdCBPVkVSUklERTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBzZXRCb3VuZHMoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIGlzT3BhcXVlKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
YWNjZWxlcmF0ZXNEcmF3aW5nKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNl
dEFjY2VsZXJhdGVzRHJhd2luZyhib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNTY2FsZShmbG9hdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJvcmRl
cldpZHRoKGZsb2F0KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Qm9yZGVyQ29sb3Io
Y29uc3QgV2ViQ29yZTo6Q29sb3ImKSBPVkVSUklERTsKKworICAgIE93blB0cjxXZWJDb3JlOjpU
aWxlQ29udHJvbGxlcj4gbV90aWxlQ29udHJvbGxlcjsKKyAgICBPd25QdHI8V2ViQ29yZTo6UGxh
dGZvcm1DQUxheWVyTGlzdD4gbV9jdXN0b21TdWJsYXllcnM7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKKworI2Vu
ZGlmIC8vIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZ19oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5tbQppbmRleCA0YTM5ZTNhLi5kYTRiNThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmUubW0KQEAgLTE0OSw3ICsxNDksMzEgQEAgYm9vbCBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZTo6ZGlzcGxheSgpCiAgICAgfQogCiAgICAgY29udGV4dC0+c2NhbGUoRmxvYXRT
aXplKG1fc2NhbGUsIG1fc2NhbGUpKTsKLSAgICBkcmF3TGF5ZXJDb250ZW50cyhjb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKSwgbV9sYXllciwgcmVjdHNUb1BhaW50KTsKKworICAgIC8vIFRoaXMg
aXMgdW5mb3J0dW5hdGUuIEkgcmVhbGx5IHdhbnQgYSBuaWNlIHdheSBhdCB0aGUgUGxhdGZvcm1D
QUxheWVyIGxldmVsIHRvIG92ZXJyaWRlIHRoaW5ncyBidXQgZmFsbCBiYWNrIG9uIHRoZSAtUmVt
b3RlIG9yIC1NYWMgb3IgLVdpbiBzcGVjaWZpYyBiZWhhdmlvciAoc28gd2UgY2FuIGdldCByaWQg
b2Ygb3VyIENBTGF5ZXIgc3ViY2xhc3NlcyBhbmQgbWFrZSBwYWludGluZyBtb3JlIHN0cmFpZ2h0
Zm9yd2FyZCkuCisgICAgc3dpdGNoIChsYXllcigpLT5sYXllclR5cGUoKSkgeworICAgICAgICBj
YXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2ltcGxlTGF5ZXI6CisgICAgICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6CisgICAgICAg
ICAgICBpZiAocmVjdHNUb1BhaW50LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZWN0c1Rv
UGFpbnQuYXBwZW5kKGxheWVyQm91bmRzKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYg
cmVjdCA6IHJlY3RzVG9QYWludCkKKyAgICAgICAgICAgICAgICBtX2xheWVyLT5vd25lcigpLT5w
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKG1fbGF5ZXIsICpjb250ZXh0LCBlbmNsb3NpbmdJ
bnRSZWN0KHJlY3QpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlV2ViTGF5ZXI6CisgICAgICAgICAgICBkcmF3TGF5ZXJDb250ZW50
cyhjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgbV9sYXllciwgcmVjdHNUb1BhaW50KTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
TGF5ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUcmFuc2Zvcm1M
YXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYlRpbGVkTGF5
ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdM
YXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVBhZ2VUaWxlZEJh
Y2tpbmdMYXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVJvb3RM
YXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5
ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVDdXN0b206CisgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH07
CisKICAgICBtX2RpcnR5UmVnaW9uID0gUmVnaW9uKCk7CiAKICAgICBtX2Zyb250QnVmZmVyID0g
bV9iYWNrQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGYy
MjBjMTUuLjFjZjY5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAg
LTQ4LDYgKzQ4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIE9WRVJSSURFOwogCisgICAgdmly
dHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3Jl
OjpGcmFtZVZpZXcqKSBPVkVSUklERTsKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXll
clRyZWVDb250ZXh0PiBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQ7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCBjZTRmMzdjLi5mYzAzYWEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTI5LDYgKzI5LDkgQEAKICNpbXBv
cnQgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTM4LDYgKzQxLDcgQEAgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBh
Z2UqIHdlYlBhZ2UsIGNvbnN0IFcKICAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVJl
bW90ZUxheWVyVHJlZSwgd2ViUGFnZSkKICAgICAsIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dChz
dGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZUNvbnRleHQ+KHdlYlBhZ2UpKQogeworICAg
IHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
dHJ1ZSk7CiB9CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp+UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoKQpAQCAtNzksNCArODMsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSQog
ICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94eTo6RGlkVXBkYXRl
R2VvbWV0cnkoKSk7CiB9CiAKK2Jvb2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldykK
K3sKKyAgICByZXR1cm4gZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+ZnJhbWUoKS5pc01haW5GcmFt
ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEuaAppbmRleCBiYzFkYTJiLi44MDEzZTI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBAIC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+JikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyopOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZp
ZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0
YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklE
RTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215416</attachid>
            <date>2013-10-29 13:44:23 -0700</date>
            <delta_ts>2013-10-29 13:52:51 -0700</delta_ts>
            <desc>patch</desc>
            <filename>tiles.diff</filename>
            <type>text/plain</type>
            <size>34287</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZDQ1OTZhLi4zYTVmZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTMtMTAtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3RlIExheWVyIFRyZWU6IFN1cHBvcnQgdGlsZWQgZHJhd2luZyBhbmQgdXNl
IGl0IGZvciB0aGUgbWFpbiBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTIzNDIyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTMtMTAtMjkgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZW1vdmUgb2xkIElu
c3BlY3Rvci5qc29uIHZlcnNpb24gZmlsZXMgYW5kIGdlbmVyYXRvcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KaW5kZXggMmFlYTI1OC4uYWM1MWFmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwOCw2
ICsxMDgsNyBAQCBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0ViCiBfX1pON1dlYkNvcmUxMFRl
eHRTdHJlYW1sc0VkCiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VmCiBfX1pON1dlYkNvcmUx
MFRleHRTdHJlYW1sc0VpCitfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VqCiBfX1pON1dlYkNv
cmUxMFRleHRTdHJlYW1sc0V5CiBfX1pON1dlYkNvcmUxMFRleHRTdHJlYW1sc0VQS3YKIF9fWk43
V2ViQ29yZTEwVGV4dFN0cmVhbWxzRVJLTjNXVEY2U3RyaW5nRQpAQCAtNDE0LDYgKzQxNSwxNSBA
QCBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMzJzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJE
YXRhYmFzZUV2CiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyN29yaWdpbnNFUk4zV1RGNlZl
Y3RvcklOUzFfNlJlZlB0cklOU18xNFNlY3VyaXR5T3JpZ2luRUVFTG0wRU5TMV8xNUNyYXNoT25P
dmVyZmxvd0VFRQogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjd0cmFja2VyRXYKIF9fWk43
V2ViQ29yZTE0U3ViZnJhbWVMb2FkZXIxMmFsbG93UGx1Z2luc0VOU18yOFJlYXNvbkZvckNhbGxp
bmdBbGxvd1BsdWdpbnNFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyNmNyZWF0ZUVQTlNf
MTVQbGF0Zm9ybUNBTGF5ZXJFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyOHNldFNjYWxl
RWQKK19fWk43V2ViQ29yZTE0VGlsZUNvbnRyb2xsZXIxNHNldFRpbGVzT3BhcXVlRWIKK19fWk43
V2ViQ29yZTE0VGlsZUNvbnRyb2xsZXIxNXNldE5lZWRzRGlzcGxheUV2CitfX1pON1dlYkNvcmUx
NFRpbGVDb250cm9sbGVyMjFzZXRBY2NlbGVyYXRlc0RyYXdpbmdFYgorX19aTjdXZWJDb3JlMTRU
aWxlQ29udHJvbGxlcjIxc2V0TmVlZHNEaXNwbGF5SW5SZWN0RVJLTlNfN0ludFJlY3RFCitfX1pO
N1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjNzZXRUaWxlRGVidWdCb3JkZXJDb2xvckVOU181Q29s
b3JFCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjNzZXRUaWxlRGVidWdCb3JkZXJXaWR0
aEVmCitfX1pON1dlYkNvcmUxNFRpbGVDb250cm9sbGVyMjd0aWxlQ2FjaGVMYXllckJvdW5kc0No
YW5nZWRFdgogX19aTjdXZWJDb3JlMTRjb29raWVzRW5hYmxlZEVSS05TXzIxTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uRVJLTlNfM1VSTEVTNV8KIF9fWk43V2ViQ29yZTE0ZGVjb2RlSG9zdE5hbWVFUDhO
U1N0cmluZwogX19aTjdXZWJDb3JlMTRlbmNvZGVIb3N0TmFtZUVQOE5TU3RyaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmZj
ODlhZS4uZTZiYzcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNjgzLDcgKzY4Myw3IEBACiAJCTFBOTg5NTZCMEFBNzhGODAw
MDVFRjVFRiAvKiBVUkxDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQTk4OTU2QTBBQTc4RjgwMDA1RUY1RUYgLyogVVJMQ0YuY3BwICovOyB9Owog
CQkxQUEyMTI1MDE2M0YwREE4MDAwMEU2M0YgLyogQXRvbWljU3RyaW5nQ0YuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBMjEyNEYxNjNGMERBODAw
MDBFNjNGIC8qIEF0b21pY1N0cmluZ0NGLmNwcCAqLzsgfTsKIAkJMUFBNzE2MEExNDlCQzREQjAw
MTZFQzE5IC8qIFRpbGVDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFBNzE2MDgxNDlCQzREQTAwMTZFQzE5IC8qIFRpbGVDb250cm9s
bGVyLm1tICovOyB9OwotCQkxQUE3MTYwQjE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTcx
NjA5MTQ5QkM0REIwMDE2RUMxOSAvKiBUaWxlQ29udHJvbGxlci5oICovOyB9OworCQkxQUE3MTYw
QjE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTcxNjA5MTQ5QkM0REIwMDE2RUMxOSAvKiBU
aWxlQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTFBQTg0RjA0MTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29u
dHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQTg0RjAyMTQzQkE3QkQwMDUxRDE1MyAvKiBTY3JvbGxFbGFzdGljaXR5Q29udHJvbGxlci5t
bSAqLzsgfTsKIAkJMUFBODRGMDUxNDNCQTdCRDAwNTFEMTUzIC8qIFNjcm9sbEVsYXN0aWNpdHlD
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUE4NEYwMzE0M0JBN0JEMDA1MUQxNTMgLyogU2Nyb2xsRWxhc3RpY2l0eUNvbnRyb2xsZXIu
aCAqLzsgfTsKIAkJMUFBODc5OTAxMUNCRTg0NjAwM0M2NjRGIC8qIFBsdWdpblN0cmF0ZWd5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE4Nzk4RjEx
Q0JFODQ2MDAzQzY2NEYgLyogUGx1Z2luU3RyYXRlZ3kuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDljMWI0ZDguLjEwMjA3NDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5MSBAQAorMjAxMy0xMC0yOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGUgTGF5ZXIgVHJlZTogU3Vw
cG9ydCB0aWxlZCBkcmF3aW5nIGFuZCB1c2UgaXQgZm9yIHRoZSBtYWluIGZyYW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM0MjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUgc3ViY2xhc3MgdGhhdCBiZWhhdmVzIHNpbWlsYXJseSB0bworICAgICAgICBX
ZWJUaWxlZEJhY2tpbmdMYXllciwgZm9yd2FyZGluZyByZWxldmFudCB0aGluZ3MgKHNldE5lZWRz
RGlzcGxheSwgZXRjLikKKyAgICAgICAgdG8gdGhlIFRpbGVDb250cm9sbGVyIHdoaWNoIGl0IG93
bnMuCisKKyAgICAgICAgVGVhY2ggdGhlIHJlbW90ZSBsYXllciB0cmVlIGNvZGUgZW5vdWdoIHRv
IHByb3h5IHRoZXNlIGxheWVycyBhY3Jvc3MsCisgICAgICAgIGFuZCBwYWludCB0aGVtIGluIGEg
bWFubmVyIHNpbWlsYXIgdG8gV2ViU2ltcGxlTGF5ZXIgKGp1c3QgY2FsbGluZworICAgICAgICBz
dHJhaWdodCBiYWNrIHRvIHRoZSBUaWxlQ29udHJvbGxlciB0byBwYWludCkuCisKKyAgICAgICAg
KiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllczo6ZW5jb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGll
czo6ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6ZHVtcENoYW5nZWRMYXllcnMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y29tbWl0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGU6OnNldEVkZ2VBbnRpYWxpYXNpbmdNYXNrKToKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIGFkanVzdGluZy9lbmNvZGluZy9kZWNvZGluZy9kdW1waW5nL2FwcGx5aW5nIGVkZ2VB
bnRpYWxpYXNpbmdNYXNrLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpkdW1wKToKKyAgICAgICAgRHJpdmUtYnkgZml4IGR1bXBpbmcgb2YgY3JlYXRlZCBs
YXllcnMgdG8gaGF2ZSBvbmUgbGF5ZXIgcGVyIGxpbmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgQ3JlYXRlIENBTGF5ZXJzIGZvciBTaW1w
bGUsIFRpbGVkQmFja2luZywgUGFnZVRpbGVkQmFja2luZywgYW5kIFRpbGVkQmFja2luZ1RpbGUg
bGF5ZXJzLgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICBBZGQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLntoLCBjcHB9Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUu
Y3BwOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpjcmVhdGUpOgorICAgICAgICBD
cmVhdGUgYSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcgZm9yIFRpbGVkQmFja2lu
ZyBhbmQgUGFnZVRpbGVkQmFja2luZyBsYXllcnMuCisKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZTo6cmVtb3ZlQWxsU3VibGF5ZXJzKToKKyAgICAgICAgRml4IHJlbW92ZUFsbFN1Ymxh
eWVycyB0byBtYWtlIGEgY29weSBvZiB0aGUgUGxhdGZvcm1DQUxheWVyTGlzdCBiZWZvcmUKKyAg
ICAgICAgbXV0YXRpbmcgaXQsIHRvIGF2b2lkIGNyYXNoZXMgd2hlbiBpdGVyYXRpbmcgYSBtdXRh
dGVkIGxpc3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5oOgorICAgICAgICBEZWZpbmFsaXplIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBz
byB3ZSBjYW4gaGF2ZSBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuCisgICAgICAg
IE5vdGUgdGhhdCB3ZSB3aWxsIHVzZSBhIHRpbGVkIGJhY2tpbmcgbGF5ZXIgaW4gc29tZSBjYXNl
cy4KKyAgICAgICAgTWFrZSB0aGUgY29uc3RydWN0b3IgcHJvdGVjdGVkLCBub3QgcHJpdmF0ZSwg
c28gb3VyIHN1YmNsYXNzIGNhbiB1c2UgaXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHA6IEFkZGVkLgorICAg
ICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nOjp+UGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6Y3VzdG9tU3VibGF5ZXJzKToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm91bmRzKToK
KyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6aXNPcGFxdWUpOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRPcGFxdWUpOgor
ICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjphY2NlbGVyYXRlc0Ry
YXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRB
Y2NlbGVyYXRlc0RyYXdpbmcpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nOjpzZXRDb250ZW50c1NjYWxlKToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyV2lkdGgpOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVy
UmVtb3RlVGlsZWRCYWNraW5nOjpzZXRCb3JkZXJDb2xvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaDogQWRkZWQu
CisgICAgICAgIEFkZCBhIHN1YmNsYXNzIG9mIFBsYXRmb3JtQ0FMYXllclJlbW90ZSB3aGljaCBm
b3J3YXJkcyBvcGVyYXRpb25zCisgICAgICAgIHRvIFRpbGVDb250cm9sbGVyLCB2ZXJ5IHNpbWls
YXIgdG8gd2hhdCBXZWJUaWxlZEJhY2tpbmdMYXllciBkb2VzLgorICAgICAgICBJdCBhbHNvIG93
bnMgdGhlIFRpbGVDb250cm9sbGVyLCBhbmQgb3ZlcnJpZGVzIGN1c3RvbVN1YmxheWVycygpIGFu
ZAorICAgICAgICB0aWxlZEJhY2tpbmcoKSB0byByZXR1cm4gdGhlIHJpZ2h0IHRoaW5nLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bToKKyAgICAgICAgKFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpkaXNwbGF5KToKKyAgICAgICAg
VGVhY2ggUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUgYWJvdXQgaG93IHRvIHBhaW50IGRpZmZlcmVu
dCBraW5kcyBvZiBsYXllcnMuCisgICAgICAgIFNpbXBsZSBsYXllcnMgYW5kIFRpbGUgbGF5ZXJz
IHdpbGwgY2FsbCBwYWludENvbnRlbnRzIGRpcmVjdGx5LAorICAgICAgICBXZWJMYXllcnMgd2ls
bCBkbyB3aGF0IFdlYkxheWVyIGRvZXMgYW5kIHVzZSBkcmF3TGF5ZXJDb250ZW50cy4KKyAgICAg
ICAgT3RoZXIga2luZHMgb2YgbGF5ZXJzIHdvbid0IHBhaW50IGF0IGFsbCByaWdodCBub3cuCisg
ICAgICAgIEkgd291bGQgbGlrZSB0byBjZW50cmFsaXplIHRoaXMgYmVoYXZpb3IgKGFuZCBnZXQg
cmlkIG9mIG91ciBDQUxheWVyCisgICAgICAgIHN1YmNsYXNzZXMgZW50aXJlbHksIG1vdmluZyBh
bGwgdGhhdCBiZWhhdmlvciB0byBiZSBzaGFyZWQgYmV0d2VlbiBNYWMsCisgICAgICAgIFdpbmRv
d3MsIGFuZCB0aGUgcmVtb3RlIGxheWVyIHRyZWUpLCBidXQgdGhhdCBpcyBhIHBhdGNoIGZvciBh
bm90aGVyIGRheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KToKKyAgICAgICAgRm9yY2UgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb24g
YWx3YXlzIHdoZW4gdXNpbmcgdGhlIHJlbW90ZSBsYXllciB0cmVlLgorICAgICAgICBVc2UgYSBU
aWxlZEJhY2tpbmcgZm9yIHRoZSBtYWluIGZyYW1lLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICBEcml2
ZS1ieSBPVkVSUklERS4KKwogMjAxMy0xMC0yOSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBNYWMgZGVidWcgYnVpbGQgZml4IGFmdGVy
IHIxNTgxODMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggZTU3ZTBhNy4uNzUwZjhhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aApAQCAtNzUsNyArNzUsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNwZWVkQ2hhbmdlZCA9IDEgPDwg
MjIsCiAgICAgICAgIFRpbWVPZmZzZXRDaGFuZ2VkID0gMSA8PCAyMywKICAgICAgICAgQmFja2lu
Z1N0b3JlQ2hhbmdlZCA9IDEgPDwgMjQsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMSA8PCAy
NQorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjUsCisgICAgICAgIEVkZ2VBbnRpYWxp
YXNpbmdNYXNrQ2hhbmdlZCA9IDEgPDwgMjYKICAgICB9OwogCiAgICAgc3RydWN0IExheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzIHsKQEAgLTEyMyw2ICsxMjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGRv
dWJsZSB0aW1lT2Zmc2V0OwogICAgICAgICBSZW1vdGVMYXllckJhY2tpbmdTdG9yZSBiYWNraW5n
U3RvcmU7CiAgICAgICAgIFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbnMgZmlsdGVyczsKKyAgICAg
ICAgdW5zaWduZWQgZWRnZUFudGlhbGlhc2luZ01hc2s7CiAgICAgfTsKIAogICAgIGV4cGxpY2l0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQppbmRleCA5ZDQ0MjQy
Li41YjBjYTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTE0Myw2ICsxNDMsOSBAQCB2b2lkIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXM6OmVuY29kZShDb3JlSVBDOjpB
cmd1bWVudEVuY29kZQogCiAgICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzICYgRmlsdGVyc0NoYW5n
ZWQpCiAgICAgICAgIGVuY29kZXIgPDwgZmlsdGVyczsKKworICAgIGlmIChjaGFuZ2VkUHJvcGVy
dGllcyAmIEVkZ2VBbnRpYWxpYXNpbmdNYXNrQ2hhbmdlZCkKKyAgICAgICAgZW5jb2RlciA8PCBl
ZGdlQW50aWFsaWFzaW5nTWFzazsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNv
ZGVyLCBMYXllclByb3BlcnRpZXMmIHJlc3VsdCkKQEAgLTI4MCw2ICsyODMsMTEgQEAgYm9vbCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAg
ICBpZiAocmVzdWx0LmNoYW5nZWRQcm9wZXJ0aWVzICYgRWRnZUFudGlhbGlhc2luZ01hc2tDaGFu
Z2VkKSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmVkZ2VBbnRpYWxpYXNp
bmdNYXNrKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtNjE5LDYgKzYyNyw5IEBAIHN0YXRpYyB2b2lkIGR1bXBDaGFuZ2VkTGF5
ZXJzKFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIHRzLCBjb25zdCBIYXNoTWFwPFJlbW90CiAg
ICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6RmlsdGVyc0NoYW5nZWQpCiAgICAgICAgICAgICBkdW1wUHJvcGVy
dHk8RmlsdGVyT3BlcmF0aW9ucz4odHMsICJmaWx0ZXJzIiwgbGF5ZXJQcm9wZXJ0aWVzLmZpbHRl
cnMpOwogCisgICAgICAgIGlmIChsYXllclByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKQor
ICAgICAgICAgICAgZHVtcFByb3BlcnR5PHVuc2lnbmVkPih0cywgImVkZ2VBbnRpYWxpYXNpbmdN
YXNrIiwgbGF5ZXJQcm9wZXJ0aWVzLmVkZ2VBbnRpYWxpYXNpbmdNYXNrKTsKKwogICAgICAgICB0
cyA8PCAiKSI7CiAKICAgICAgICAgdHMuZGVjcmVhc2VJbmRlbnQoKTsKQEAgLTYzOSw5ICs2NTAs
MTAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZHVtcCgpIGNvbnN0CiAgICAg
aWYgKCFtX2NyZWF0ZWRMYXllcnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHRzIDw8ICJcbiI7CiAg
ICAgICAgIHRzLndyaXRlSW5kZW50KCk7Ci0gICAgICAgIHRzIDw8ICIoY3JlYXRlZC1sYXllcnNc
biI7CisgICAgICAgIHRzIDw8ICIoY3JlYXRlZC1sYXllcnMiOwogICAgICAgICB0cy5pbmNyZWFz
ZUluZGVudCgpOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNyZWF0ZWRMYXllciA6IG1fY3Jl
YXRlZExheWVycykgeworICAgICAgICAgICAgdHMgPDwgIlxuIjsKICAgICAgICAgICAgIHRzLndy
aXRlSW5kZW50KCk7CiAgICAgICAgICAgICB0cyA8PCAiKCI7CiAgICAgICAgICAgICBzd2l0Y2gg
KGNyZWF0ZWRMYXllci50eXBlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KaW5kZXggY2YwYTY0MC4uMmY0NTlkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5t
bQpAQCAtMjA3LDYgKzIwNyw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y29tbWl0KGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIAogICAgICAgICBp
ZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpGaWx0ZXJzQ2hhbmdlZCkKICAgICAgICAgICAgIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRG
aWx0ZXJzT25MYXllcihsYXllciwgcHJvcGVydGllcy5maWx0ZXJzKTsKKworICAgICAgICBpZiAo
cHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpFZGdlQW50aWFsaWFzaW5nTWFza0NoYW5nZWQpCisgICAgICAgICAgICBsYXllci5lZGdlQW50
aWFsaWFzaW5nTWFzayA9IHByb3BlcnRpZXMuZWRnZUFudGlhbGlhc2luZ01hc2s7CiAgICAgfQog
CiAgICAgZm9yIChhdXRvIGRlc3Ryb3llZExheWVyIDogdHJhbnNhY3Rpb24uZGVzdHJveWVkTGF5
ZXJzKCkpCkBAIC0yMTgsNyArMjIxLDYgQEAgQ0FMYXllciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
Z2V0TGF5ZXIoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVySUQgbGF5ZXIKICAgICBy
ZXR1cm4gbV9sYXllcnMuZ2V0KGxheWVySUQpLmdldCgpOwogfQogCi0KIENBTGF5ZXIgKlJlbW90
ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllckNyZWF0aW9uUHJvcGVydGllcyBwcm9wZXJ0aWVzKQogewogICAgIFJldGFpblB0cjxDQUxh
eWVyPiYgbGF5ZXIgPSBtX2xheWVycy5hZGQocHJvcGVydGllcy5sYXllcklELCBudWxscHRyKS5p
dGVyYXRvci0+dmFsdWU7CkBAIC0yMjksNiArMjMxLDEwIEBAIENBTGF5ZXIgKlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNy
ZWF0CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxheWVyOgogICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVXZWJMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FM
YXllcjo6TGF5ZXJUeXBlUm9vdExheWVyOgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVTaW1wbGVMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGls
ZWRCYWNraW5nTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVBhZ2VU
aWxlZEJhY2tpbmdMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGls
ZWRCYWNraW5nVGlsZUxheWVyOgogICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFs
bG9jXSBpbml0XSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVUcmFuc2Zvcm1MYXllcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMzZkOTIyLi42ODc0NGIwMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE1
LDYgKzMxNSw4IEBACiAJCTJENDdCNTZDMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJENDdCNTZBMTgxMDcxNEUwMDNBM0FFRSAvKiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bSAqLzsgfTsKIAkJMkQ0N0I1NkQxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDQ3QjU2QjE4MTA3MTRFMDAzQTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaCAqLzsg
fTsKIAkJMkQ4NzBEMTAxNjIzNEZGRTAwMEEzRjIwIC8qIFBERlBsdWdpbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODcwRDBFMTYyMkI3RjkwMDBB
M0YyMCAvKiBQREZQbHVnaW4ubW0gKi87IH07CisJCTJEODk0OUYwMTgyMDQ0RjYwMEU4OThBQSAv
KiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ4OTQ5RUUxODIwNDRGNjAwRTg5OEFBIC8q
IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5jcHAgKi87IH07CisJCTJEODk0OUYx
MTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEODk0OUVGMTgy
MDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLzsg
fTsKIAkJMkRBMDQ5QjMxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREEwNDlC
MTE4MENDQ0QzMDBBQUZBOUUgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcCAqLzsgfTsKIAkJ
MkRBMDQ5QjQxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBMDQ5QjIxODBDQ0NE
MzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovOyB9OwogCQkyREEwNDlCNzE4
MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTA0OUI1MTgwQ0NEMEEwMEFBRkE5
RSAvKiBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwICovOyB9OwpAQCAtMTc4MSw2ICsxNzgzLDgg
QEAKIAkJMkQ0N0I1NkIxODEwNzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEODcwRDBEMTYyMkI3RjkwMDBB
M0YyMCAvKiBQREZQbHVnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUERG
UGx1Z2luLmg7IHBhdGggPSBQREYvUERGUGx1Z2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEODcwRDBFMTYyMkI3RjkwMDBBM0YyMCAvKiBQREZQbHVnaW4ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQREZQbHVnaW4ubW07IHBhdGggPSBQREYv
UERGUGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDg5NDlFRTE4MjA0
NEY2MDBFODk4QUEgLyogUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEODk0OUVGMTgy
MDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRC
YWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTA0OUIxMTgwQ0NDRDMw
MEFBRkE5RSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FM
YXllclJlbW90ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBMDQ5QjUxODBD
Q0QwQTAwQUFGQTlFIC8qIEdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0xheWVyQ0FSZW1vdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg4Myw2ICs0ODg3LDggQEAKIAkJCQkyREEwNDlCNjE4
MENDRDBBMDBBQUZBOUUgLyogR3JhcGhpY3NMYXllckNBUmVtb3RlLmggKi8sCiAJCQkJMkRBMDQ5
QjExODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAgKi8sCiAJCQkJ
MkRBMDQ5QjIxODBDQ0NEMzAwQUFGQTlFIC8qIFBsYXRmb3JtQ0FMYXllclJlbW90ZS5oICovLAor
CQkJCTJEODk0OUVFMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmcuY3BwICovLAorCQkJCTJEODk0OUVGMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuaCAqLywKIAkJCQkyRDQ3QjU2QTE4MTA3MTRFMDAz
QTNBRUUgLyogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gKi8sCiAJCQkJMkQ0N0I1NkIxODEw
NzE0RTAwM0EzQUVFIC8qIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmggKi8sCiAJCQkJMUFCMTZB
RTgxNjRCM0E4ODAwMjkwRDYyIC8qIFJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCAqLywKQEAgLTU0
MTUsNiArNTQyMSw3IEBACiAJCQkJMUFCN0Q2MUExMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2Fk
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzUxNzM4ODExMkRGOEY0RjAwRUUz
RjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg0NTJB
ODExNjJDODA5MDBDQUI5QjUgLyogRHJhd2luZ0FyZWEuaCBpbiBIZWFkZXJzICovLAorCQkJCTJE
ODk0OUYxMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjY1OTIzMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3
aW5nQXJlYUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjQyMjlBMTJERDAyOTIwMENBQUUy
QyAvKiBEcmF3aW5nQXJlYU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzI2NTIxNzEx
ODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC03
MTUxLDYgKzcxNTgsNyBAQAogCQkJCUI2MkU3MzEwMTQzMDQ3QTYwMDY5RUMzNSAvKiBXS0hpdFRl
c3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExMEFFMEMxMzNDMTZDQjAwNzI3MTdB
IC8qIFdLSWNvbkRhdGFiYXNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMjNDRjFCMTMzRDI2
MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJE
ODk0OUYwMTgyMDQ0RjYwMEU4OThBQSAvKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tp
bmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwMzJGMUQxODBGNzkxNzAwOTYxQkI3IC8qIERh
dGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0NGNkFDMjEyQzkxRjM0MDA4RjlDMzUgLyogV0tJbWFnZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0NGNkFDOTEyQzkxRjU5MDA4RjlDMzUgLyogV0tJbWFnZUNHLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCmluZGV4IDVkMGM2ZTIu
Ljk1OGY4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZS5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAKKyNpbXBvcnQgIlBsYXRm
b3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmUuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKICNpbXBvcnQg
PFdlYkNvcmUvQW5pbWF0aW9uVXRpbGl0aWVzLmg+CkBAIC01OCw2ICs1OSw5IEBAIHN0YXRpYyBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUqIHRvUGxhdGZvcm1DQUxheWVyUmVtb3RlKFBsYXRmb3JtQ0FM
YXllciogbGF5ZXIpCiAKIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGU6OmNyZWF0ZShMYXllclR5cGUgbGF5ZXJUeXBlLCBQbGF0Zm9ybUNBTGF5ZXJDbGll
bnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KQogeworICAgIGlmIChs
YXllclR5cGUgPT0gTGF5ZXJUeXBlVGlsZWRCYWNraW5nTGF5ZXIgfHwgIGxheWVyVHlwZSA9PSBM
YXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5ZXIpCisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nKGxheWVyVHlwZSwgb3duZXIsIGNv
bnRleHQpKTsKKwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgUGxhdGZvcm1DQUxheWVyUmVtb3Rl
KGxheWVyVHlwZSwgb3duZXIsIGNvbnRleHQpKTsKIH0KIApAQCAtMTcxLDkgKzE3NSwxMCBAQCB2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0U3VibGF5ZXJzKGNvbnN0IFBsYXRmb3JtQ0FM
YXllckxpc3QmIGxpc3QpCiAKIHZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpyZW1vdmVBbGxT
dWJsYXllcnMoKQogewotICAgIGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBtX2NoaWxkcmVuKQor
ICAgIFBsYXRmb3JtQ0FMYXllckxpc3QgbGF5ZXJzVG9SZW1vdmUgPSBtX2NoaWxkcmVuOworICAg
IGZvciAoY29uc3QgYXV0byYgbGF5ZXIgOiBsYXllcnNUb1JlbW92ZSkKICAgICAgICAgbGF5ZXIt
PnJlbW92ZUZyb21TdXBlcmxheWVyKCk7Ci0gICAgbV9jaGlsZHJlbi5jbGVhcigpOworICAgIEFT
U0VSVChtX2NoaWxkcmVuLmlzRW1wdHkoKSk7CiAgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0
aWVzQ2hhbmdlZChSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKTsK
IH0KIApAQCAtNDYyLDE0ICs0NjcsMTAgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnNl
dENvbnRlbnRzU2NhbGUoZmxvYXQgdmFsdWUpCiAgICAgZW5zdXJlQmFja2luZ1N0b3JlKCk7CiB9
CiAKLXZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRFZGdlQW50aWFsaWFzaW5nTWFzayh1
bnNpZ25lZCkKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpzZXRFZGdlQW50aWFsaWFzaW5n
TWFzayh1bnNpZ25lZCB2YWx1ZSkKIHsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQot
VGlsZWRCYWNraW5nKiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnRpbGVkQmFja2luZygpCi17Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgbV9wcm9wZXJ0aWVzLmVkZ2VBbnRpYWxpYXNpbmdNYXNr
ID0gdmFsdWU7CisgICAgbV9wcm9wZXJ0aWVzLm5vdGVQcm9wZXJ0aWVzQ2hhbmdlZChSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6RWRnZUFudGlhbGlhc2luZ01hc2tDaGFuZ2VkKTsKIH0KIAog
QVZQbGF5ZXJMYXllciogUGxhdGZvcm1DQUxheWVyUmVtb3RlOjpwbGF5ZXJMYXllcigpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRm
b3JtQ0FMYXllclJlbW90ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaAppbmRleCA1OGYyOTgwLi44NmZkZGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxh
dGZvcm1DQUxheWVyUmVtb3RlLmgKQEAgLTMxLDIyICszMSwyMyBAQAogI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1RpbGVDb250cm9sbGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1v
dGVMYXllclRyZWVDb250ZXh0OwogCi1jbGFzcyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgRklOQUwg
OiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyIHsKK2NsYXNzIFBsYXRmb3JtQ0FMYXll
clJlbW90ZSA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gY3JlYXRlKFdlYkNvcmU6OlBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqLCBS
ZW1vdGVMYXllclRyZWVDb250ZXh0Kik7CiAKLSAgICB+UGxhdGZvcm1DQUxheWVyUmVtb3RlKCk7
CisgICAgdmlydHVhbCB+UGxhdGZvcm1DQUxheWVyUmVtb3RlKCk7CiAKICAgICBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJJRCBsYXllcklEKCkgeyByZXR1cm4gbV9sYXllcklEOyB9
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW1vdGUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc1RpbGVkQmFja2luZ0xheWVyKCkgY29uc3Qg
T1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc1RpbGVkQmFj
a2luZ0xheWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbGF5ZXJUeXBlKCkgPT0gTGF5ZXJU
eXBlUGFnZVRpbGVkQmFja2luZ0xheWVyIHx8IGxheWVyVHlwZSgpID09IExheWVyVHlwZVRpbGVk
QmFja2luZ0xheWVyOyB9CiAKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5
ZXIoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBudWxscHRyOyB9CiAKQEAgLTExNiw3ICsxMTcs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEJhY2tncm91bmRDb2xvcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlcldp
ZHRoKGZsb2F0KSBPVkVSUklERTsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJDb2xvcihj
b25zdCBXZWJDb3JlOjpDb2xvciYpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBmbG9hdCBvcGFj
aXR5KCkgY29uc3QgT1ZFUlJJREU7CkBAIC0xMzksMTUgKzEzOSwxNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RWRnZUFudGlhbGlhc2luZ01hc2sodW5zaWduZWQpIE9WRVJSSURF
OwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmco
KSBPVkVSUklERSB7IHJldHVybiBudWxscHRyOyB9CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBjbG9uZShXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQqIG93bmVyKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQ
bGF0Zm9ybUNBTGF5ZXI+IGNyZWF0ZUNvbXBhdGlibGVMYXllcihXZWJDb3JlOjpQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZSwgV2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KikgY29uc3Qg
T1ZFUlJJREU7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgUGxhdGZvcm1DQUxheWVyUmVt
b3RlKFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlLCBXZWJDb3JlOjpQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRyZWVDb250ZXh0KiBjb250ZXh0KTsK
IAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIEFWUGxheWVyTGF5ZXIgKnBsYXllckxheWVyKCkgY29u
c3QgT1ZFUlJJREU7CiAKICAgICB2b2lkIGVuc3VyZUJhY2tpbmdTdG9yZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ODg5NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVk
QmFja2luZy5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVUaWxlZEJhY2tpbmcuaCIKKworI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5o
IgorI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xheWVyQ0EuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1DQUxheWVyTWFjLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RpbGVkQmFja2luZy5oPgor
I2ltcG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworUGxh
dGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmcoTGF5ZXJUeXBlIGxheWVyVHlwZSwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25l
ciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKKyAgICA6IFBsYXRmb3JtQ0FMYXll
clJlbW90ZShsYXllclR5cGUsIG93bmVyLCBjb250ZXh0KQoreworICAgIG1fdGlsZUNvbnRyb2xs
ZXIgPSBUaWxlQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMpOworCisgICAgbV9jdXN0b21TdWJsYXll
cnMgPSBhZG9wdFB0cihuZXcgUGxhdGZvcm1DQUxheWVyTGlzdCgxKSk7CisgICAgUGxhdGZvcm1D
QUxheWVyKiB0aWxlQ2FjaGVUaWxlQ29udGFpbmVyTGF5ZXIgPSBtX3RpbGVDb250cm9sbGVyLT50
aWxlQ29udGFpbmVyTGF5ZXIoKTsKKyAgICAoKm1fY3VzdG9tU3VibGF5ZXJzKVswXSA9IHRpbGVD
YWNoZVRpbGVDb250YWluZXJMYXllcjsKK30KKworCitQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxl
ZEJhY2tpbmc6On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcoKQoreworfQorCit2
b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0TmVlZHNEaXNwbGF5KGNv
bnN0IEZsb2F0UmVjdCogZGlydHlSZWN0KQoreworICAgIGlmIChkaXJ0eVJlY3QpCisgICAgICAg
IG1fdGlsZUNvbnRyb2xsZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChlbmNsb3NpbmdJbnRSZWN0
KCpkaXJ0eVJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldE5l
ZWRzRGlzcGxheSgpOworfQorCitjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXJMaXN0KiBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6OmN1c3RvbVN1YmxheWVycygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY3VzdG9tU3VibGF5ZXJzLmdldCgpOworfQorCit2b2lkIFBsYXRm
b3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm91bmRzKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgYm91bmRzKQoreworICAgIFBsYXRmb3JtQ0FMYXllclJlbW90ZTo6c2V0Qm91bmRz
KGJvdW5kcyk7CisgICAgbV90aWxlQ29udHJvbGxlci0+dGlsZUNhY2hlTGF5ZXJCb3VuZHNDaGFu
Z2VkKCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjppc09w
YXF1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGlsZUNvbnRyb2xsZXItPnRpbGVzQXJlT3Bh
cXVlKCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nOjpzZXRP
cGFxdWUoYm9vbCBvcGFxdWUpCit7CisgICAgbV90aWxlQ29udHJvbGxlci0+c2V0VGlsZXNPcGFx
dWUob3BhcXVlKTsKK30KKworYm9vbCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmc6
OmFjY2VsZXJhdGVzRHJhd2luZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGlsZUNvbnRyb2xs
ZXItPmFjY2VsZXJhdGVzRHJhd2luZygpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90
ZVRpbGVkQmFja2luZzo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0ZXNEcmF3
aW5nKQoreworICAgIG1fdGlsZUNvbnRyb2xsZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhhY2Nl
bGVyYXRlc0RyYXdpbmcpOworfQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFj
a2luZzo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBzY2FsZSkKK3sKKyAgICBtX3RpbGVDb250cm9s
bGVyLT5zZXRTY2FsZShzY2FsZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1DQUxheWVyUmVtb3RlVGls
ZWRCYWNraW5nOjpzZXRCb3JkZXJXaWR0aChmbG9hdCBib3JkZXJXaWR0aCkKK3sKKyAgICBtX3Rp
bGVDb250cm9sbGVyLT5zZXRUaWxlRGVidWdCb3JkZXJXaWR0aChib3JkZXJXaWR0aCAvIDIpOwor
fQorCit2b2lkIFBsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZzo6c2V0Qm9yZGVyQ29s
b3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQoreworICAgIG1fdGlsZUNvbnRyb2xsZXIt
PnNldFRpbGVEZWJ1Z0JvcmRlckNvbG9yKGNvbG9yKTsKK30KKworI2VuZGlmIC8vIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlVGlsZWRCYWNraW5nLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZVRp
bGVkQmFja2luZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYzdkYjMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZVRpbGVkQmFja2luZy5oCkBAIC0wLDAgKzEsNjYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAorI2RlZmluZSBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaAorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQorCisjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmcgRklO
QUwgOiBwdWJsaWMgUGxhdGZvcm1DQUxheWVyUmVtb3RlIHsKKyAgICBmcmllbmQgY2xhc3MgUGxh
dGZvcm1DQUxheWVyUmVtb3RlOworcHVibGljOgorICAgIHZpcnR1YWwgflBsYXRmb3JtQ0FMYXll
clJlbW90ZVRpbGVkQmFja2luZygpOworCitwcml2YXRlOgorICAgIFBsYXRmb3JtQ0FMYXllclJl
bW90ZVRpbGVkQmFja2luZyhXZWJDb3JlOjpQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSwgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dCopOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygp
IE9WRVJSSURFIHsgcmV0dXJuIG1fdGlsZUNvbnRyb2xsZXIuZ2V0KCk7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0KiBkaXJ0eVJl
Y3QgPSAwKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6UGxhdGZvcm1D
QUxheWVyTGlzdCogY3VzdG9tU3VibGF5ZXJzKCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Qm91bmRzKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgYm9vbCBpc09wYXF1ZSgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRPcGFxdWUoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGFjY2VsZXJh
dGVzRHJhd2luZygpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVy
YXRlc0RyYXdpbmcoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
U2NhbGUoZmxvYXQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRCb3JkZXJXaWR0aChm
bG9hdCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEJvcmRlckNvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJikgT1ZFUlJJREU7CisKKyAgICBPd25QdHI8V2ViQ29yZTo6VGlsZUNvbnRy
b2xsZXI+IG1fdGlsZUNvbnRyb2xsZXI7CisgICAgT3duUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FM
YXllckxpc3Q+IG1fY3VzdG9tU3VibGF5ZXJzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisKKyNlbmRpZiAvLyBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVUaWxlZEJhY2tpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUubW0KaW5kZXggNGEzOWUzYS4uNTQ0NzYxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllckJhY2tp
bmdTdG9yZS5tbQpAQCAtMTQ5LDcgKzE0OSwzMCBAQCBib29sIFJlbW90ZUxheWVyQmFja2luZ1N0
b3JlOjpkaXNwbGF5KCkKICAgICB9CiAKICAgICBjb250ZXh0LT5zY2FsZShGbG9hdFNpemUobV9z
Y2FsZSwgbV9zY2FsZSkpOwotICAgIGRyYXdMYXllckNvbnRlbnRzKGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpLCBtX2xheWVyLCByZWN0c1RvUGFpbnQpOworCisgICAgc3dpdGNoIChsYXllcigp
LT5sYXllclR5cGUoKSkgeworICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
U2ltcGxlTGF5ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxl
ZEJhY2tpbmdUaWxlTGF5ZXI6CisgICAgICAgICAgICBpZiAocmVjdHNUb1BhaW50LmlzRW1wdHko
KSkKKyAgICAgICAgICAgICAgICByZWN0c1RvUGFpbnQuYXBwZW5kKGxheWVyQm91bmRzKTsKKyAg
ICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlY3RzVG9QYWludCkKKyAgICAgICAg
ICAgICAgICBtX2xheWVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKG1f
bGF5ZXIsICpjb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KHJlY3QpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlV2ViTGF5ZXI6Cisg
ICAgICAgICAgICBkcmF3TGF5ZXJDb250ZW50cyhjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwg
bV9sYXllciwgcmVjdHNUb1BhaW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVUcmFuc2Zvcm1MYXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVdlYlRpbGVkTGF5ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZVBhZ2VUaWxlZEJhY2tpbmdMYXllcjoKKyAgICAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVJvb3RMYXllcjoKKyAgICAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5ZXI6CisgICAgICAgIGNhc2UgUGxhdGZvcm1DQUxh
eWVyOjpMYXllclR5cGVDdXN0b206CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgIH07CisKICAgICBtX2RpcnR5UmVnaW9uID0gUmVnaW9u
KCk7CiAKICAgICBtX2Zyb250QnVmZmVyID0gbV9iYWNrQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGYyMjBjMTUuLjFjZjY5MmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTQ4LDYgKzQ4LDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIE9WRVJSSURFOwogCisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2lu
Z0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBPVkVSUklERTsKKwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVDb250ZXh0PiBtX3JlbW90ZUxheWVyVHJl
ZUNvbnRleHQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRl
eCBjZTRmMzdjLi5mYzAzYWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0KQEAgLTI5LDYgKzI5LDkgQEAKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5o
IgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViUGFnZS5o
IgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTM4LDYgKzQxLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFcKICAgICA6IERy
YXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZSkKICAgICAs
IG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dChzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJl
ZUNvbnRleHQ+KHdlYlBhZ2UpKQogeworICAgIHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdz
KCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CiB9CiAKIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoKQpAQCAtNzksNCArODMsOSBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJ
bnRTaXplJiB2aWV3U2l6ZSwgY29uc3QgSQogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
RHJhd2luZ0FyZWFQcm94eTo6RGlkVXBkYXRlR2VvbWV0cnkoKSk7CiB9CiAKK2Jvb2wgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhj
b25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldykKK3sKKyAgICByZXR1cm4gZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+ZnJhbWUoKS5pc01haW5GcmFtZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBiYzFkYTJi
Li44MDEzZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBA
IC04NCw3ICs4NCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRl
ckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jikg
T1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyopOworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3Kikg
T1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgdmly
dHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciosIGRvdWJsZSB0aW1lKSBPVkVSUklERTsK
</data>
<flag name="review"
          id="238140"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>