<?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>105431</bug_id>
          
          <creation_ts>2012-12-19 06:28:23 -0800</creation_ts>
          <short_desc>[EFL] [WebGL] [WK2] Replace HAVE(GLX) checks with USE(GLX)</short_desc>
          <delta_ts>2012-12-20 15:58:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          
          <blocked>105286</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kalyan">kalyan.kondapally</reporter>
          <assigned_to name="Kalyan">kalyan.kondapally</assigned_to>
          <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>794622</commentid>
    <comment_count>0</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-19 06:28:23 -0800</bug_when>
    <thetext>In our side, we check if GLX is supported or not. We should change this check to USE, to be able to configure  using EGL or GLX</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794863</commentid>
    <comment_count>1</comment_count>
      <attachid>180208</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-19 12:28:12 -0800</bug_when>
    <thetext>Created attachment 180208
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794930</commentid>
    <comment_count>2</comment_count>
      <attachid>180208</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2012-12-19 14:10:27 -0800</bug_when>
    <thetext>Comment on attachment 180208
patch

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

I think renaming from HAVE() to USE() make sense. I only reviewed the EFL-only parts (OptionsEfl.cmake) to make the next round of review easier.

r- to fix the EFL CMake file and make it consistent with the intention of the patch.

&gt; Source/cmake/OptionsEfl.cmake:170
&gt;          add_definitions(-DHAVE_GLX)

I think this can be removed now.

&gt; Source/cmake/OptionsEfl.cmake:171
&gt; +        set(WTF_USE_GLX 1)

This is not needed - WTF_USE_GLX variable is not used anywhere in the make system so no need to set it.

&gt; Source/cmake/OptionsEfl.cmake:172
&gt; +        add_definitions(-DWTF_USE_GLX=1)

This is correct, this is the only definition that actually needed.

&gt; Source/cmake/OptionsEfl.cmake:174
&gt; +        set(ENABLE_GLX 1)
&gt; +        add_definitions(-DENABLE_GLX=1)

Not needed, not used anywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794976</commentid>
    <comment_count>3</comment_count>
      <attachid>180231</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-19 14:56:19 -0800</bug_when>
    <thetext>Created attachment 180231
patchv2

review fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794980</commentid>
    <comment_count>4</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-19 14:58:28 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 180208 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180208&amp;action=review
&gt; 
&gt; &gt; Source/cmake/OptionsEfl.cmake:174
&gt; &gt; +        set(ENABLE_GLX 1)
&gt; &gt; +        add_definitions(-DENABLE_GLX=1)
&gt; 
&gt; Not needed, not used anywhere.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795460</commentid>
    <comment_count>5</comment_count>
      <attachid>180231</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-20 08:26:46 -0800</bug_when>
    <thetext>Comment on attachment 180231
patchv2

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

This looks like something which should be two patches

&gt; ChangeLog:8
&gt; +        This patch changes the check Have(GLX) to Use(GLX).

HAVE, USE!

&gt; Source/WebCore/platform/graphics/opengl/GLDefs.h:58
&gt; -#if HAVE(GLX)
&gt; +typedef uint32_t PlatformBufferHandle;
&gt; +
&gt; +#if USE(GLX)
&gt;  typedef GLXContext PlatformContext;
&gt;  typedef Display* PlatformDisplay;
&gt;  typedef GLXFBConfig PlatformSurfaceConfig;
&gt; -typedef GLXDrawable PlatformSurface;
&gt; +typedef GLXDrawable PlatformDrawable;
&gt;  #else
&gt;  typedef void* PlatformContext;
&gt;  typedef void* PlatformDisplay;
&gt;  typedef void* PlatformSurfaceConfig;
&gt; -typedef void* PlatformSurface;
&gt; +typedef void* PlatformDrawable;

why is this change not explained?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795674</commentid>
    <comment_count>6</comment_count>
      <attachid>180388</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-20 12:38:06 -0800</bug_when>
    <thetext>Created attachment 180388
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795676</commentid>
    <comment_count>7</comment_count>
      <attachid>180388</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-20 12:39:17 -0800</bug_when>
    <thetext>Comment on attachment 180388
patch

K, Misunderstood the first comment. Will update a new patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795690</commentid>
    <comment_count>8</comment_count>
      <attachid>180390</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-20 12:49:52 -0800</bug_when>
    <thetext>Created attachment 180390
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795691</commentid>
    <comment_count>9</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-20 12:50:44 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 180231 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=180231&amp;action=review

&gt; HAVE, USE!

done

&gt; &gt; Source/WebCore/platform/graphics/opengl/GLDefs.h:58
&gt; 
&gt; why is this change not explained?

Added comments in changelog file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795715</commentid>
    <comment_count>10</comment_count>
      <attachid>180390</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-20 13:10:00 -0800</bug_when>
    <thetext>Comment on attachment 180390
patch

in the future things like this should be two patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795768</commentid>
    <comment_count>11</comment_count>
      <attachid>180390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 13:55:22 -0800</bug_when>
    <thetext>Comment on attachment 180390
patch

Rejecting attachment 180390 from commit-queue.

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
Full output: http://queues.webkit.org/results/15452137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795890</commentid>
    <comment_count>12</comment_count>
      <attachid>180390</attachid>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2012-12-20 15:53:13 -0800</bug_when>
    <thetext>Comment on attachment 180390
patch

Re-submitting patch to the queue because the failing inspector test is unrelated, probably flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795897</commentid>
    <comment_count>13</comment_count>
      <attachid>180390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 15:58:08 -0800</bug_when>
    <thetext>Comment on attachment 180390
patch

Clearing flags on attachment: 180390

Committed r138313: &lt;http://trac.webkit.org/changeset/138313&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795899</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 15:58:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180208</attachid>
            <date>2012-12-19 12:28:12 -0800</date>
            <delta_ts>2012-12-19 14:56:19 -0800</delta_ts>
            <desc>patch</desc>
            <filename>glxchanges.patch</filename>
            <type>text/plain</type>
            <size>16306</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBDaGFuZ2VMb2cgQ2hhbmdlTG9nCmluZGV4IDBlNmE5M2UuLjgxNGFkYjUgMTAw
NjQ0Ci0tLSBDaGFuZ2VMb2cKKysrIENoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEy
LTE5ICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKwor
ICAgICAgICBbRUZMXVtXZWJHTF1bV2syXSBSZXBsYWNlIEhBVkUoR0xYKSBjaGVja3Mgd2l0aCBV
U0UoR0xYKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1NDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBjaGFuZ2VzIGFsbCByZWxldmFudCBwbGFjZXMgd2l0aCBjaGVjayBIYXZlKEdM
WCkgdG8gVXNlKEdMWCkuCisgICAgICAgIFRoaXMgd291bGQgZW5hYmxlIHVzIHRvIGNob29zZSBv
dXIgcHJlZmVycmVkIEdMIGJhY2tlbmQgZHVyaW5nIGJ1aWxkIHRpbWUuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZToKKwogMjAxMi0xMi0xOCAgTWluZyBYaWUgIDxt
eGllQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFkZCAtZm5vLWV4Y2VwdGlvbnMg
dG8gQ1hYX0ZMQUdTCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZmFmZTc4Li4zNjc5YTY5IDEwMDY0NAotLS0gU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MiBAQAorMjAxMi0xMi0xOSAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxs
eUBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV2ViR0xdW1drMl0gUmVwbGFjZSBIQVZFKEdM
WCkgY2hlY2tzIHdpdGggVVNFKEdMWCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBhbGwgcmVsZXZhbnQgcGxhY2VzIHdp
dGggY2hlY2sgSGF2ZShHTFgpIHRvIFVzZShHTFgpLgorICAgICAgICBUaGlzIHdvdWxkIGVuYWJs
ZSB1cyB0byBjaG9vc2Ugb3VyIHByZWZlcnJlZCBHTCBiYWNrZW5kIGR1cmluZyBidWlsZCB0aW1l
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZv
cm1Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVh
dGVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVP
ZmZTY3JlZW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1Db250ZXh0Ojpj
cmVhdGVDdXJyZW50Q29udGV4dFdyYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRm
b3JtU3VyZmFjZTo6Y3JlYXRlT2Zmc2NyZWVuU3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpH
TFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJD
b3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6OmhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpkcmF3YWJsZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmg6CisgICAgICAgIChH
TFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFj
ZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpHTFhUcmFuc3BvcnRT
dXJmYWNlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkdMWFBCdWZmZXI6OmluaXRpYWxp
emUpOgorICAgICAgICAoV2ViQ29yZTo6R0xYUEJ1ZmZlcjo6ZnJlZVJlc291cmNlcyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291
cmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYMTFPZmZTY3JlZW5XaW5kb3c6OlgxMU9mZlNj
cmVlbldpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpYMTFPZmZTY3JlZW5XaW5kb3c6OnNldEdl
b21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNjcmVlbldpbmRvdzo6Y3JlYXRlT2Zm
c2NyZWVuV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNjcmVlbldpbmRvdzo6ZGVz
dHJveVdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gx
MVdpbmRvd1Jlc291cmNlcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEdW1teVNo
YXJlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1teVNoYXJlZFJlc291cmNlczo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVkUmVzb3VyY2VzOjpuYXRpdmVE
aXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVkUmVzb3VyY2VzOjpwQnVmZmVy
Q29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1teVNoYXJlZFJlc291cmNlczo6
c3VyZmFjZUNvbnRleHRDb25maWcpOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlTaGFyZWRSZXNv
dXJjZXM6OkR1bW15U2hhcmVkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hh
cmVkUmVzb3VyY2VzOjp+RHVtbXlTaGFyZWRSZXNvdXJjZXMpOgorCiAyMDEyLTEyLTE5ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN1cHBvcnQgcmVtb3Zpbmcgc2V2ZXJhbCB0YWJzIGZyb20gVGFiYmVkRWRpdG9yQ29udGFp
bmVyL1RhYmJlZFBhbmUgYXQgb25jZS4KZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMRGVmcy5oCmluZGV4IGRmNWJjZGQuLjJkZmI0YzkgMTAwNjQ0Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApAQCAtMzgsMjIgKzM4LDI0
IEBACiAjaW5jbHVkZSA8R0wvZ2xleHQuaD4KICNlbmRpZgogCi0jaWYgSEFWRShHTFgpCisjaWYg
VVNFKEdMWCkKICNpbmNsdWRlIDxHTC9nbHguaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSNpZiBIQVZFKEdMWCkKK3R5cGVkZWYgdWludDMyX3QgUGxhdGZvcm1CdWZmZXJIYW5k
bGU7CisKKyNpZiBVU0UoR0xYKQogdHlwZWRlZiBHTFhDb250ZXh0IFBsYXRmb3JtQ29udGV4dDsK
IHR5cGVkZWYgRGlzcGxheSogUGxhdGZvcm1EaXNwbGF5OwogdHlwZWRlZiBHTFhGQkNvbmZpZyBQ
bGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBlZGVmIEdMWERyYXdhYmxlIFBsYXRmb3JtU3VyZmFj
ZTsKK3R5cGVkZWYgR0xYRHJhd2FibGUgUGxhdGZvcm1EcmF3YWJsZTsKICNlbHNlCiB0eXBlZGVm
IHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1EaXNwbGF5Owog
dHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBlZGVmIHZvaWQqIFBsYXRm
b3JtU3VyZmFjZTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1EcmF3YWJsZTsKICNlbmRpZgogCiB9
CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1Db250ZXh0LmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4IDI0Yzg0NDQuLjc2MjFlMmUgMTAwNjQ0Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQu
Y3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9y
bUNvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCiAKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogI2luY2x1ZGUgIkdMWENv
bnRleHQuaCIKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NPd25QdHI8R0xQbGF0Zm9y
bUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KEdyYXBoaWNzQ29udGV4
dDNECiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFnbEdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIpIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogICAgICAgICBnbEdl
dEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIgPSByZWludGVycHJldF9jYXN0PFBGTkdMR0VUR1JBUEhJ
Q1NSRVNFVFNUQVRVU0FSQlBST0M+KGdsWEdldFByb2NBZGRyZXNzQVJCKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgR0x1Ynl0ZSo+KCJnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIiKSkpOwogI2Vu
ZGlmCiAgICAgfQpAQCAtNjksNyArNjksNyBAQCBQYXNzT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0
PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRAogCiBQ
YXNzT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlT2Zm
U2NyZWVuQ29udGV4dCgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNFKEdMWCkKICAgICBPd25Q
dHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGdseENvbnRleHQgPSBhZG9wdFB0cihuZXcgR0xYT2ZmU2Ny
ZWVuQ29udGV4dCgpKTsKICAgICByZXR1cm4gZ2x4Q29udGV4dC5yZWxlYXNlKCk7CiAjZW5kaWYK
QEAgLTc5LDcgKzc5LDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9y
bUNvbnRleHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQogCiBQYXNzT3duUHRyPEdMUGxhdGZv
cm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ3VycmVudENvbnRleHRXcmFwcGVy
KCkKIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogICAgIE93blB0cjxHTFBsYXRmb3Jt
Q29udGV4dD4gZ2x4Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBHTFhDdXJyZW50Q29udGV4dFdyYXBw
ZXIoKSk7CiAgICAgcmV0dXJuIGdseENvbnRleHQucmVsZWFzZSgpOwogI2VuZGlmCmRpZmYgLS1n
aXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJm
YWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9y
bVN1cmZhY2UuY3BwCmluZGV4IDE2MGNhM2YuLjgzOTFlNDcgMTAwNjQ0Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2Uu
Y3BwCkBAIC0zOCwxMCArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBQYXNzT3duUHRy
PEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zmc2NyZWVuU3Vy
ZmFjZSgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNFKEdMWCkKICAgICBPd25QdHI8R0xQbGF0
Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xYUEJ1ZmZlcigpKTsKIAotICAg
IGlmIChzdXJmYWNlLT5oYW5kbGUoKSkKKyAgICBpZiAoc3VyZmFjZS0+aGFuZGxlKCkgJiYgc3Vy
ZmFjZS0+ZHJhd2FibGUoKSkKICAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVsZWFzZSgpOwogI2Vu
ZGlmCiAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQ
bGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZU9mZnNjcmVlblN1cmZhY2UoKQogCiBQYXNzT3duUHRyPEdM
UGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFj
ZSgpCiB7Ci0jaWYgSEFWRShHTFgpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQorI2lmIFVTRShH
TFgpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIE93blB0cjxHTFBsYXRmb3JtU3VyZmFj
ZT4gc3VyZmFjZSA9IGFkb3B0UHRyKG5ldyBHTFhUcmFuc3BvcnRTdXJmYWNlKCkpOwogCiAgICAg
aWYgKHN1cmZhY2UtPmhhbmRsZSgpKQpAQCAtNjUsNiArNjUsNyBAQCBHTFBsYXRmb3JtU3VyZmFj
ZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQogICAgICwgbV9mYm9JZCgwKQogICAgICwgbV9zaGFyZWRE
aXNwbGF5KDApCiAgICAgLCBtX2RyYXdhYmxlKDApCisgICAgLCBtX2J1ZmZlckhhbmRsZSgwKQog
ewogfQogCkBAIC03Miw3ICs3MywxMiBAQCBHTFBsYXRmb3JtU3VyZmFjZTo6fkdMUGxhdGZvcm1T
dXJmYWNlKCkKIHsKIH0KIAotUGxhdGZvcm1TdXJmYWNlIEdMUGxhdGZvcm1TdXJmYWNlOjpoYW5k
bGUoKSBjb25zdAorUGxhdGZvcm1CdWZmZXJIYW5kbGUgR0xQbGF0Zm9ybVN1cmZhY2U6OmhhbmRs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnVmZmVySGFuZGxlOworfQorCitQbGF0Zm9ybURy
YXdhYmxlIEdMUGxhdGZvcm1TdXJmYWNlOjpkcmF3YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fZHJhd2FibGU7CiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggNDYzYTZiMi4uZThkYjQyNSAx
MDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRm
b3JtU3VyZmFjZS5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybVN1cmZhY2UuaApAQCAtNTIsOCArNTIsMTAgQEAgcHVibGljOgogCiAgICAgY29u
c3QgSW50UmVjdCYgZ2VvbWV0cnkoKSBjb25zdDsKIAotICAgIC8vIEdldCB0aGUgdW5kZXJseWlu
ZyBwbGF0Zm9ybSBzcGVjaWZpYyBzdXJmYWNlIGhhbmRsZS4KLSAgICBQbGF0Zm9ybVN1cmZhY2Ug
aGFuZGxlKCkgY29uc3Q7CisgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIHBsYXRmb3JtIHNwZWNp
ZmljIGJ1ZmZlciBoYW5kbGUuCisgICAgUGxhdGZvcm1CdWZmZXJIYW5kbGUgaGFuZGxlKCkgY29u
c3Q7CisKKyAgICBQbGF0Zm9ybURyYXdhYmxlIGRyYXdhYmxlKCkgY29uc3Q7CiAKICAgICBQbGF0
Zm9ybURpc3BsYXkgc2hhcmVkRGlzcGxheSgpIGNvbnN0OwogCkBAIC03OCw3ICs4MCw4IEBAIHBy
b3RlY3RlZDoKICAgICBJbnRSZWN0IG1fcmVjdDsKICAgICBHTHVpbnQgbV9mYm9JZDsKICAgICBQ
bGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwotICAgIFBsYXRmb3JtU3VyZmFjZSBtX2Ry
YXdhYmxlOworICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsKKyAgICBQbGF0Zm9ybUJ1
ZmZlckhhbmRsZSBtX2J1ZmZlckhhbmRsZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwCmlu
ZGV4IDI5NWYwNmMuLjk5NTZjYjEgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApAQCAtMjYsNyArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMWENvbnRleHQuaCIKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29udGV4dC5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhDb250ZXh0LmgKaW5kZXggN2NmZjhkNS4uNDNhNTJkYyAxMDA2NDQKLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgK
QEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgR0xYQ29udGV4dF9oCiAjZGVmaW5lIEdMWENvbnRl
eHRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBIQVZFKEdMWCkKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgpCiAKICNpbmNsdWRlICJH
TFBsYXRmb3JtQ29udGV4dC5oIgogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRleCAzYmMzMjA2Li45
NmEwYWI5IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJHTFhTdXJmYWNlLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpICYmIEhBVkUoR0xYKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykgJiYgVVNFKEdMWCkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw2ICszNyw3
IEBAIEdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2UoKQogICAgIDogWDEx
T2ZmU2NyZWVuV2luZG93KCkKIHsKICAgICBjcmVhdGVPZmZzY3JlZW5XaW5kb3coKTsKKyAgICBt
X2RyYXdhYmxlID0gbV9idWZmZXJIYW5kbGU7CiB9CiAKIEdMWFRyYW5zcG9ydFN1cmZhY2U6On5H
TFhUcmFuc3BvcnRTdXJmYWNlKCkKQEAgLTY2LDYgKzY3LDcgQEAgdm9pZCBHTFhUcmFuc3BvcnRT
dXJmYWNlOjpzd2FwQnVmZmVycygpCiB2b2lkIEdMWFRyYW5zcG9ydFN1cmZhY2U6OmRlc3Ryb3ko
KQogewogICAgIGRlc3Ryb3lXaW5kb3coKTsKKyAgICBtX2J1ZmZlckhhbmRsZSA9IDA7CiB9CiAK
ICNlbmRpZgpAQCAtODgsNiArOTAsNyBAQCB2b2lkIEdMWFBCdWZmZXI6OmluaXRpYWxpemUoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX2RyYXdhYmxlID0gZ2xYQ3JlYXRlUGJ1ZmZlcihkaXNw
bGF5LCBjb25maWcsIHBidWZmZXJBdHRyaWJ1dGVzKTsKKyAgICBtX2J1ZmZlckhhbmRsZSA9IG1f
ZHJhd2FibGU7CiB9CiAKIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBHTFhQQnVmZmVyOjpjb25maWd1
cmF0aW9uKCkKQEAgLTExMiw2ICsxMTUsNyBAQCB2b2lkIEdMWFBCdWZmZXI6OmZyZWVSZXNvdXJj
ZXMoKQogCiAgICAgZ2xYRGVzdHJveVBidWZmZXIoZGlzcGxheSwgbV9kcmF3YWJsZSk7CiAgICAg
bV9kcmF3YWJsZSA9IDA7CisgICAgbV9idWZmZXJIYW5kbGUgPSAwOwogfQogCiB2b2lkIEdMWFBC
dWZmZXI6OnNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpCmRpZmYgLS1naXQgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaCBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5o
CmluZGV4IGNmMDFhNDUuLjRlODc2ODUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCkBAIC0yNiw3ICsyNiw3
IEBACiAjaWZuZGVmIEdMWFN1cmZhY2VfaAogI2RlZmluZSBHTFhTdXJmYWNlX2gKIAotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiAjaW5jbHVkZSAiR0xYV2luZG93UmVzb3Vy
Y2VzLmgiCiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5oCmluZGV4IGI4MDU0ZjJiYy4u
YzE3MzU1NyAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZh
Y2VzL2dseC9HTFhXaW5kb3dSZXNvdXJjZXMuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5oCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbmNsdWRlICJYMTFXaW5kb3dSZXNvdXJjZXMuaCIKIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExV2luZG93UmVz
b3VyY2VzLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExV2luZG93UmVzb3VyY2VzLmNwcAppbmRleCA3NTVhNDg4Li42MDI5M2U3IDEwMDY0NAotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jl
c291cmNlcy5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2Vz
L2dseC9YMTFXaW5kb3dSZXNvdXJjZXMuY3BwCkBAIC0zNiw4ICszNiwxMyBAQCBQbGF0Zm9ybVNo
YXJlZFJlc291cmNlcyogU2hhcmVkWDExUmVzb3VyY2VzOjptX3N0YXRpY1NoYXJlZFJlc291cmNl
ID0gMDsKIAogWDExT2ZmU2NyZWVuV2luZG93OjpYMTFPZmZTY3JlZW5XaW5kb3coKQogICAgIDog
R0xQbGF0Zm9ybVN1cmZhY2UoKQorICAgICwgbV9zaGFyZWRSZXNvdXJjZXMoMCkKIHsKICAgICBt
X3NoYXJlZFJlc291cmNlcyA9IFBsYXRmb3JtU2hhcmVkUmVzb3VyY2VzOjpjcmVhdGUoKTsKKwor
ICAgIGlmICghbV9zaGFyZWRSZXNvdXJjZXMpCisgICAgICAgIHJldHVybjsKKwogICAgIG1fc2hh
cmVkRGlzcGxheSA9IG1fc2hhcmVkUmVzb3VyY2VzLT5uYXRpdmVEaXNwbGF5KCk7CiB9CiAKQEAg
LTQ4LDE2ICs1MywxOSBAQCBYMTFPZmZTY3JlZW5XaW5kb3c6On5YMTFPZmZTY3JlZW5XaW5kb3co
KQogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OnNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5l
d1JlY3QpCiB7CiAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OnNldEdlb21ldHJ5KG5ld1JlY3QpOwot
ICAgIFhSZXNpemVXaW5kb3cobV9zaGFyZWRSZXNvdXJjZXMtPngxMURpc3BsYXkoKSwgbV9kcmF3
YWJsZSwgbmV3UmVjdC53aWR0aCgpLCBuZXdSZWN0LmhlaWdodCgpKTsKKyAgICBYUmVzaXplV2lu
ZG93KG1fc2hhcmVkUmVzb3VyY2VzLT54MTFEaXNwbGF5KCksIG1fYnVmZmVySGFuZGxlLCBuZXdS
ZWN0LndpZHRoKCksIG5ld1JlY3QuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFgxMU9mZlNjcmVlbldp
bmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKIHsKKyAgICBpZiAoIW1fc2hhcmVkUmVzb3Vy
Y2VzKQorICAgICAgICByZXR1cm47CisKICAgICBEaXNwbGF5KiBkaXNwbGF5ID0gbV9zaGFyZWRS
ZXNvdXJjZXMtPngxMURpc3BsYXkoKTsKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdMWEZCQ29uZmlnIGNvbmZpZyA9IG1fc2hhcmVkUmVzb3VyY2VzLT5zdXJmYWNl
Q29udGV4dENvbmZpZygpOworICAgIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBjb25maWcgPSBtX3No
YXJlZFJlc291cmNlcy0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsKIAogICAgIGlmICghY29uZmln
KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJldHJpZXZlIGEgdmFsaWQgY29uZmln
aXJhdGlvbi4iKTsKQEAgLTgwLDMzICs4OCwzMyBAQCB2b2lkIFgxMU9mZlNjcmVlbldpbmRvdzo6
Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKICAgICBhdHRyaWJ1dGUuYmFja2dyb3VuZF9waXhlbCA9
IFdoaXRlUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmJvcmRlcl9waXhlbCA9IEJs
YWNrUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmNvbG9ybWFwID0gY21hcDsKLSAg
ICBtX2RyYXdhYmxlID0gWENyZWF0ZVdpbmRvdyhkaXNwbGF5LCB4V2luZG93LCAwLCAwLCAxLCAx
LCAwLCB2aXNJbmZvLT5kZXB0aCwgSW5wdXRPdXRwdXQsIHZpc0luZm8tPnZpc3VhbCwgQ1dCYWNr
UGl4ZWwgfCBDV0JvcmRlclBpeGVsIHwgQ1dDb2xvcm1hcCwgJmF0dHJpYnV0ZSk7CisgICAgbV9i
dWZmZXJIYW5kbGUgPSBYQ3JlYXRlV2luZG93KGRpc3BsYXksIHhXaW5kb3csIDAsIDAsIDEsIDEs
IDAsIHZpc0luZm8tPmRlcHRoLCBJbnB1dE91dHB1dCwgdmlzSW5mby0+dmlzdWFsLCBDV0JhY2tQ
aXhlbCB8IENXQm9yZGVyUGl4ZWwgfCBDV0NvbG9ybWFwLCAmYXR0cmlidXRlKTsKIAotICAgIGlm
ICghbV9kcmF3YWJsZSkgeworICAgIGlmICghbV9idWZmZXJIYW5kbGUpIHsKICAgICAgICAgTE9H
X0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIG9mZnNjcmVlbiB3aW5kb3ciKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFhTZXRXaW5kb3dCYWNrZ3JvdW5kUGl4bWFwKGRpc3BsYXksIG1f
ZHJhd2FibGUsIDApOwotICAgIFhDb21wb3NpdGVSZWRpcmVjdFdpbmRvdyhkaXNwbGF5LCBtX2Ry
YXdhYmxlLCBDb21wb3NpdGVSZWRpcmVjdE1hbnVhbCk7CisgICAgWFNldFdpbmRvd0JhY2tncm91
bmRQaXhtYXAoZGlzcGxheSwgbV9idWZmZXJIYW5kbGUsIDApOworICAgIFhDb21wb3NpdGVSZWRp
cmVjdFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSwgQ29tcG9zaXRlUmVkaXJlY3RNYW51
YWwpOwogCiAgICAgaWYgKG1fc2hhcmVkUmVzb3VyY2VzLT5pc1hSZW5kZXJFeHRlbnNpb25TdXBw
b3J0ZWQoKSkKLSAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2RyYXdhYmxlKTsKKyAgICAg
ICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7CiAKIH0KIAogdm9pZCBYMTFP
ZmZTY3JlZW5XaW5kb3c6OmRlc3Ryb3lXaW5kb3coKQogewotICAgIGlmICghbV9kcmF3YWJsZSkK
KyAgICBpZiAoIW1fYnVmZmVySGFuZGxlKQogICAgICAgICByZXR1cm47CiAKICAgICBHTFBsYXRm
b3JtU3VyZmFjZTo6ZGVzdHJveSgpOwotICAgIERpc3BsYXkqIGRpc3BsYXkgPSBzaGFyZWREaXNw
bGF5KCk7CisgICAgRGlzcGxheSogZGlzcGxheSA9IG1fc2hhcmVkUmVzb3VyY2VzLT54MTFEaXNw
bGF5KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm47CiAKLSAgICBYRGVzdHJv
eVdpbmRvdyhkaXNwbGF5LCBtX2RyYXdhYmxlKTsKLSAgICBtX2RyYXdhYmxlID0gMDsKKyAgICBY
RGVzdHJveVdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7CisgICAgbV9idWZmZXJIYW5k
bGUgPSAwOwogfQogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFXaW5kb3dSZXNvdXJjZXMuaAppbmRleCBiMjVi
MmFjLi45ZTVlOGNmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExV2luZG93UmVzb3VyY2VzLmgKQEAgLTQwLDgg
KzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFVTRShHTFgpCiBjbGFzcyBT
aGFyZWRHTFhSZXNvdXJjZXM7CiB0eXBlZGVmIFNoYXJlZEdMWFJlc291cmNlcyBQbGF0Zm9ybVNo
YXJlZFJlc291cmNlczsKKyNlbHNlCitjbGFzcyBEdW1teVNoYXJlZFJlc291cmNlczsKK3R5cGVk
ZWYgRHVtbXlTaGFyZWRSZXNvdXJjZXMgUGxhdGZvcm1TaGFyZWRSZXNvdXJjZXM7CisjZW5kaWYK
IAogY2xhc3MgU2hhcmVkWDExUmVzb3VyY2VzIDogcHVibGljIFdURjo6UmVmQ291bnRlZEJhc2Ug
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYXJlZFgxMVJlc291cmNlcyk7CkBAIC0xNDcs
NiArMTUyLDQyIEBAIHByb3RlY3RlZDoKICAgICBYVmlzdWFsSW5mbyogbV9WaXN1YWxJbmZvOwog
fTsKIAorLy8gRHVtbXkgSW1wbGVtZW50YXRpb24gdG8gYXZvaWQgaWZkZWZzCitjbGFzcyBEdW1t
eVNoYXJlZFJlc291cmNlcyA6IHB1YmxpYyBTaGFyZWRYMTFSZXNvdXJjZXMgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKER1bW15U2hhcmVkUmVzb3VyY2VzKTsKKworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPER1bW15U2hhcmVkUmVzb3VyY2VzPiBjcmVhdGUoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNwbGF5IG5hdGl2ZURpc3Bs
YXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgdmlydHVhbCBQbGF0
Zm9ybVN1cmZhY2VDb25maWcgcEJ1ZmZlckNvbnRleHRDb25maWcoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25maWcgc3Vy
ZmFjZUNvbnRleHRDb25maWcoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCitw
cml2YXRlOgorICAgIER1bW15U2hhcmVkUmVzb3VyY2VzKCkKKyAgICAgICAgOiBTaGFyZWRYMTFS
ZXNvdXJjZXMoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5EdW1teVNoYXJlZFJlc291
cmNlcygpCisgICAgeworICAgIH0KK307CisKIGNsYXNzIFgxMU9mZlNjcmVlbldpbmRvdyA6IHB1
YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoWDExT2Zm
U2NyZWVuV2luZG93KTsKIApkaWZmIC0tZ2l0IFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
IFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDUzNmQxOTMuLjRlZjY1YTkgMTAw
NjQ0Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysgU291cmNlL2NtYWtlL09w
dGlvbnNFZmwuY21ha2UKQEAgLTE2OCw2ICsxNjgsMTEgQEAgaWYgKEVOQUJMRV9XRUJHTCBPUiBX
VEZfVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUpCiAKICAgICBpZiAoT1BFTkdMWF9GT1VORCkKICAg
ICAgICAgYWRkX2RlZmluaXRpb25zKC1ESEFWRV9HTFgpCisgICAgICAgIHNldChXVEZfVVNFX0dM
WCAxKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURXVEZfVVNFX0dMWD0xKQorICAgICAgICBz
ZXQoRU5BQkxFX0dMWCAxKQorICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURFTkFCTEVfR0xYPTEp
CisKICAgICAgICAgaWYgKFgxMV9YY29tcG9zaXRlX0ZPVU5EIEFORCBYMTFfWHJlbmRlcl9GT1VO
RCkKICAgICAgICAgICAgc2V0KFVTRV9HUkFQSElDU19TVVJGQUNFIDEpCiAgICAgICAgIGVuZGlm
ICgpCg==
</data>
<flag name="review"
          id="197401"
          type_id="1"
          status="-"
          setter="laszlo.gombos"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180231</attachid>
            <date>2012-12-19 14:56:19 -0800</date>
            <delta_ts>2012-12-20 12:38:06 -0800</delta_ts>
            <desc>patchv2</desc>
            <filename>reviewfixes.patch</filename>
            <type>text/plain</type>
            <size>16167</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBDaGFuZ2VMb2cgQ2hhbmdlTG9nCmluZGV4IDBlNmE5M2UuLjgxNGFkYjUgMTAw
NjQ0Ci0tLSBDaGFuZ2VMb2cKKysrIENoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEy
LTE5ICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKwor
ICAgICAgICBbRUZMXVtXZWJHTF1bV2syXSBSZXBsYWNlIEhBVkUoR0xYKSBjaGVja3Mgd2l0aCBV
U0UoR0xYKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA1NDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBjaGVjayBIYXZlKEdMWCkgdG8gVXNlKEdMWCkuCisgICAg
ICAgIFRoaXMgd291bGQgZW5hYmxlIHVzIHRvIGNob29zZSBvdXIgcHJlZmVycmVkIEdMIGJhY2tl
bmQgZHVyaW5nIGJ1aWxkIHRpbWUuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9uc0Vm
bC5jbWFrZToKKwogMjAxMi0xMi0xOCAgTWluZyBYaWUgIDxteGllQHJpbS5jb20+CiAKICAgICAg
ICAgW0JsYWNrQmVycnldIEFkZCAtZm5vLWV4Y2VwdGlvbnMgdG8gQ1hYX0ZMQUdTCmRpZmYgLS1n
aXQgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA0ZmFmZTc4Li4zNjc5YTY5IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MiBAQAorMjAxMi0xMi0xOSAg
S29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisKKyAgICAg
ICAgW0VGTF1bV2ViR0xdW1drMl0gUmVwbGFjZSBIQVZFKEdMWCkgY2hlY2tzIHdpdGggVVNFKEdM
WCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTQz
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggY2hhbmdlcyB0aGUgY2hlY2sgSGF2ZShHTFgpIHRvIFVzZShHTFgpLgorICAgICAgICBU
aGlzIHdvdWxkIGVuYWJsZSB1cyB0byBjaG9vc2Ugb3VyIHByZWZlcnJlZCBHTCBiYWNrZW5kIGR1
cmluZyBidWlsZCB0aW1lLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
RGVmcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZv
cm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1D
b250ZXh0OjpjcmVhdGVPZmZTY3JlZW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxh
dGZvcm1Db250ZXh0OjpjcmVhdGVDdXJyZW50Q29udGV4dFdyYXBwZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zmc2NyZWVuU3VyZmFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNwb3J0U3VyZmFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2Up
OgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6OmhhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpkcmF3YWJs
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNl
Lmg6CisgICAgICAgIChHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xY
VHJhbnNwb3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6OkdMWFBC
dWZmZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6R0xYUEJ1ZmZlcjo6ZnJlZVJl
c291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1
cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYV2lu
ZG93UmVzb3VyY2VzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L1gxMVdpbmRvd1Jlc291cmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYMTFPZmZTY3JlZW5X
aW5kb3c6OlgxMU9mZlNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpYMTFPZmZTY3Jl
ZW5XaW5kb3c6OnNldEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNjcmVlbldp
bmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNj
cmVlbldpbmRvdzo6ZGVzdHJveVdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChEdW1teVNoYXJlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1teVNo
YXJlZFJlc291cmNlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVkUmVz
b3VyY2VzOjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVkUmVz
b3VyY2VzOjpwQnVmZmVyQ29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1teVNo
YXJlZFJlc291cmNlczo6c3VyZmFjZUNvbnRleHRDb25maWcpOgorICAgICAgICAoV2ViQ29yZTo6
RHVtbXlTaGFyZWRSZXNvdXJjZXM6OkR1bW15U2hhcmVkUmVzb3VyY2VzKToKKyAgICAgICAgKFdl
YkNvcmU6OkR1bW15U2hhcmVkUmVzb3VyY2VzOjp+RHVtbXlTaGFyZWRSZXNvdXJjZXMpOgorCiAy
MDEyLTEyLTE5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFN1cHBvcnQgcmVtb3Zpbmcgc2V2ZXJhbCB0YWJzIGZyb20gVGFi
YmVkRWRpdG9yQ29udGFpbmVyL1RhYmJlZFBhbmUgYXQgb25jZS4KZGlmZiAtLWdpdCBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmggU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oCmluZGV4IGRmNWJjZGQuLjJkZmI0Yzkg
MTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZz
LmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApA
QCAtMzgsMjIgKzM4LDI0IEBACiAjaW5jbHVkZSA8R0wvZ2xleHQuaD4KICNlbmRpZgogCi0jaWYg
SEFWRShHTFgpCisjaWYgVVNFKEdMWCkKICNpbmNsdWRlIDxHTC9nbHguaD4KICNlbmRpZgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBIQVZFKEdMWCkKK3R5cGVkZWYgdWludDMyX3QgUGxh
dGZvcm1CdWZmZXJIYW5kbGU7CisKKyNpZiBVU0UoR0xYKQogdHlwZWRlZiBHTFhDb250ZXh0IFBs
YXRmb3JtQ29udGV4dDsKIHR5cGVkZWYgRGlzcGxheSogUGxhdGZvcm1EaXNwbGF5OwogdHlwZWRl
ZiBHTFhGQkNvbmZpZyBQbGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBlZGVmIEdMWERyYXdhYmxl
IFBsYXRmb3JtU3VyZmFjZTsKK3R5cGVkZWYgR0xYRHJhd2FibGUgUGxhdGZvcm1EcmF3YWJsZTsK
ICNlbHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKIHR5cGVkZWYgdm9pZCogUGxh
dGZvcm1EaXNwbGF5OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBl
ZGVmIHZvaWQqIFBsYXRmb3JtU3VyZmFjZTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1EcmF3YWJs
ZTsKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4IDI0Yzg0NDQuLjc2MjFl
MmUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQ
bGF0Zm9ybUNvbnRleHQuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQog
I2luY2x1ZGUgIkdMWENvbnRleHQuaCIKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NP
d25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0
KEdyYXBoaWNzQ29udGV4dDNECiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFn
bEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIpIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xY
KQogICAgICAgICBnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIgPSByZWludGVycHJldF9jYXN0
PFBGTkdMR0VUR1JBUEhJQ1NSRVNFVFNUQVRVU0FSQlBST0M+KGdsWEdldFByb2NBZGRyZXNzQVJC
KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgR0x1Ynl0ZSo+KCJnbEdldEdyYXBoaWNzUmVzZXRTdGF0
dXNBUkIiKSkpOwogI2VuZGlmCiAgICAgfQpAQCAtNjksNyArNjksNyBAQCBQYXNzT3duUHRyPEdM
UGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChHcmFwaGlj
c0NvbnRleHQzRAogCiBQYXNzT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29u
dGV4dDo6Y3JlYXRlT2ZmU2NyZWVuQ29udGV4dCgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNF
KEdMWCkKICAgICBPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGdseENvbnRleHQgPSBhZG9wdFB0
cihuZXcgR0xYT2ZmU2NyZWVuQ29udGV4dCgpKTsKICAgICByZXR1cm4gZ2x4Q29udGV4dC5yZWxl
YXNlKCk7CiAjZW5kaWYKQEAgLTc5LDcgKzc5LDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtQ29u
dGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQogCiBQYXNz
T3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ3VycmVu
dENvbnRleHRXcmFwcGVyKCkKIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogICAgIE93
blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gZ2x4Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBHTFhDdXJy
ZW50Q29udGV4dFdyYXBwZXIoKSk7CiAgICAgcmV0dXJuIGdseENvbnRleHQucmVsZWFzZSgpOwog
I2VuZGlmCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDE2MGNhM2YuLjgzOTFlNDcgMTAwNjQ0
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1
cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQ
bGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC0zOCwxMCArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3Jl
YXRlT2Zmc2NyZWVuU3VyZmFjZSgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNFKEdMWCkKICAg
ICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xYUEJ1
ZmZlcigpKTsKIAotICAgIGlmIChzdXJmYWNlLT5oYW5kbGUoKSkKKyAgICBpZiAoc3VyZmFjZS0+
aGFuZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUoKSkKICAgICAgICAgcmV0dXJuIHN1cmZhY2Uu
cmVsZWFzZSgpOwogI2VuZGlmCiAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc093blB0cjxHTFBsYXRm
b3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZU9mZnNjcmVlblN1cmZhY2UoKQog
CiBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRl
VHJhbnNwb3J0U3VyZmFjZSgpCiB7Ci0jaWYgSEFWRShHTFgpICYmIFVTRShHUkFQSElDU19TVVJG
QUNFKQorI2lmIFVTRShHTFgpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIE93blB0cjxH
TFBsYXRmb3JtU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0UHRyKG5ldyBHTFhUcmFuc3BvcnRTdXJm
YWNlKCkpOwogCiAgICAgaWYgKHN1cmZhY2UtPmhhbmRsZSgpKQpAQCAtNjUsNiArNjUsNyBAQCBH
TFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQogICAgICwgbV9mYm9JZCgwKQog
ICAgICwgbV9zaGFyZWREaXNwbGF5KDApCiAgICAgLCBtX2RyYXdhYmxlKDApCisgICAgLCBtX2J1
ZmZlckhhbmRsZSgwKQogewogfQogCkBAIC03Miw3ICs3MywxMiBAQCBHTFBsYXRmb3JtU3VyZmFj
ZTo6fkdMUGxhdGZvcm1TdXJmYWNlKCkKIHsKIH0KIAotUGxhdGZvcm1TdXJmYWNlIEdMUGxhdGZv
cm1TdXJmYWNlOjpoYW5kbGUoKSBjb25zdAorUGxhdGZvcm1CdWZmZXJIYW5kbGUgR0xQbGF0Zm9y
bVN1cmZhY2U6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnVmZmVySGFuZGxlOwor
fQorCitQbGF0Zm9ybURyYXdhYmxlIEdMUGxhdGZvcm1TdXJmYWNlOjpkcmF3YWJsZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fZHJhd2FibGU7CiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmggU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggNDYz
YTZiMi4uZThkYjQyNSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaApAQCAtNTIsOCArNTIsMTAgQEAgcHVi
bGljOgogCiAgICAgY29uc3QgSW50UmVjdCYgZ2VvbWV0cnkoKSBjb25zdDsKIAotICAgIC8vIEdl
dCB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSBzcGVjaWZpYyBzdXJmYWNlIGhhbmRsZS4KLSAgICBQ
bGF0Zm9ybVN1cmZhY2UgaGFuZGxlKCkgY29uc3Q7CisgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5n
IHBsYXRmb3JtIHNwZWNpZmljIGJ1ZmZlciBoYW5kbGUuCisgICAgUGxhdGZvcm1CdWZmZXJIYW5k
bGUgaGFuZGxlKCkgY29uc3Q7CisKKyAgICBQbGF0Zm9ybURyYXdhYmxlIGRyYXdhYmxlKCkgY29u
c3Q7CiAKICAgICBQbGF0Zm9ybURpc3BsYXkgc2hhcmVkRGlzcGxheSgpIGNvbnN0OwogCkBAIC03
OCw3ICs4MCw4IEBAIHByb3RlY3RlZDoKICAgICBJbnRSZWN0IG1fcmVjdDsKICAgICBHTHVpbnQg
bV9mYm9JZDsKICAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwotICAgIFBsYXRm
b3JtU3VyZmFjZSBtX2RyYXdhYmxlOworICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsK
KyAgICBQbGF0Zm9ybUJ1ZmZlckhhbmRsZSBtX2J1ZmZlckhhbmRsZTsKIH07CiAKIH0KZGlmZiAt
LWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29u
dGV4dC5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dM
WENvbnRleHQuY3BwCmluZGV4IDI5NWYwNmMuLjk5NTZjYjEgMTAwNjQ0Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNw
cApAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMWENv
bnRleHQuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgp
CisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKaW5kZXggN2NmZjhkNS4uNDNhNTJkYyAxMDA2
NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhD
b250ZXh0LmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2ds
eC9HTFhDb250ZXh0LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgR0xYQ29udGV4dF9oCiAj
ZGVmaW5lIEdMWENvbnRleHRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAm
JiBIQVZFKEdMWCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgp
CiAKICNpbmNsdWRlICJHTFBsYXRmb3JtQ29udGV4dC5oIgogCmRpZmYgLS1naXQgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcApp
bmRleCAzYmMzMjA2Li45NmEwYWI5IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKQEAgLTI2LDcgKzI2
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHTFhTdXJmYWNlLmgiCiAKLSNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoR0xYKQorI2lmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zNyw2ICszNyw3IEBAIEdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZh
Y2UoKQogICAgIDogWDExT2ZmU2NyZWVuV2luZG93KCkKIHsKICAgICBjcmVhdGVPZmZzY3JlZW5X
aW5kb3coKTsKKyAgICBtX2RyYXdhYmxlID0gbV9idWZmZXJIYW5kbGU7CiB9CiAKIEdMWFRyYW5z
cG9ydFN1cmZhY2U6On5HTFhUcmFuc3BvcnRTdXJmYWNlKCkKQEAgLTY2LDYgKzY3LDcgQEAgdm9p
ZCBHTFhUcmFuc3BvcnRTdXJmYWNlOjpzd2FwQnVmZmVycygpCiB2b2lkIEdMWFRyYW5zcG9ydFN1
cmZhY2U6OmRlc3Ryb3koKQogewogICAgIGRlc3Ryb3lXaW5kb3coKTsKKyAgICBtX2J1ZmZlckhh
bmRsZSA9IDA7CiB9CiAKICNlbmRpZgpAQCAtODgsNiArOTAsNyBAQCB2b2lkIEdMWFBCdWZmZXI6
OmluaXRpYWxpemUoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2RyYXdhYmxlID0gZ2xYQ3Jl
YXRlUGJ1ZmZlcihkaXNwbGF5LCBjb25maWcsIHBidWZmZXJBdHRyaWJ1dGVzKTsKKyAgICBtX2J1
ZmZlckhhbmRsZSA9IG1fZHJhd2FibGU7CiB9CiAKIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBHTFhQ
QnVmZmVyOjpjb25maWd1cmF0aW9uKCkKQEAgLTExMiw2ICsxMTUsNyBAQCB2b2lkIEdMWFBCdWZm
ZXI6OmZyZWVSZXNvdXJjZXMoKQogCiAgICAgZ2xYRGVzdHJveVBidWZmZXIoZGlzcGxheSwgbV9k
cmF3YWJsZSk7CiAgICAgbV9kcmF3YWJsZSA9IDA7CisgICAgbV9idWZmZXJIYW5kbGUgPSAwOwog
fQogCiB2b2lkIEdMWFBCdWZmZXI6OnNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3Qp
CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvR0xYU3VyZmFjZS5oCmluZGV4IGNmMDFhNDUuLjRlODc2ODUgMTAwNjQ0Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5o
CkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdMWFN1cmZhY2VfaAogI2RlZmluZSBHTFhTdXJm
YWNlX2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiAjaW5jbHVkZSAi
R0xYV2luZG93UmVzb3VyY2VzLmgiCiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmggU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5oCmlu
ZGV4IGI4MDU0ZjJiYy4uYzE3MzU1NyAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhXaW5kb3dSZXNvdXJjZXMuaAorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5o
CkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJYMTFXaW5kb3dSZXNvdXJjZXMuaCIKIAot
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9n
bHgvWDExV2luZG93UmVzb3VyY2VzLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvWDExV2luZG93UmVzb3VyY2VzLmNwcAppbmRleCA3NTVhNDg4Li42MDI5
M2U3IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMv
Z2x4L1gxMVdpbmRvd1Jlc291cmNlcy5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9YMTFXaW5kb3dSZXNvdXJjZXMuY3BwCkBAIC0zNiw4ICszNiwx
MyBAQCBQbGF0Zm9ybVNoYXJlZFJlc291cmNlcyogU2hhcmVkWDExUmVzb3VyY2VzOjptX3N0YXRp
Y1NoYXJlZFJlc291cmNlID0gMDsKIAogWDExT2ZmU2NyZWVuV2luZG93OjpYMTFPZmZTY3JlZW5X
aW5kb3coKQogICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorICAgICwgbV9zaGFyZWRSZXNvdXJj
ZXMoMCkKIHsKICAgICBtX3NoYXJlZFJlc291cmNlcyA9IFBsYXRmb3JtU2hhcmVkUmVzb3VyY2Vz
OjpjcmVhdGUoKTsKKworICAgIGlmICghbV9zaGFyZWRSZXNvdXJjZXMpCisgICAgICAgIHJldHVy
bjsKKwogICAgIG1fc2hhcmVkRGlzcGxheSA9IG1fc2hhcmVkUmVzb3VyY2VzLT5uYXRpdmVEaXNw
bGF5KCk7CiB9CiAKQEAgLTQ4LDE2ICs1MywxOSBAQCBYMTFPZmZTY3JlZW5XaW5kb3c6On5YMTFP
ZmZTY3JlZW5XaW5kb3coKQogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OnNldEdlb21ldHJ5KGNv
bnN0IEludFJlY3QmIG5ld1JlY3QpCiB7CiAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OnNldEdlb21l
dHJ5KG5ld1JlY3QpOwotICAgIFhSZXNpemVXaW5kb3cobV9zaGFyZWRSZXNvdXJjZXMtPngxMURp
c3BsYXkoKSwgbV9kcmF3YWJsZSwgbmV3UmVjdC53aWR0aCgpLCBuZXdSZWN0LmhlaWdodCgpKTsK
KyAgICBYUmVzaXplV2luZG93KG1fc2hhcmVkUmVzb3VyY2VzLT54MTFEaXNwbGF5KCksIG1fYnVm
ZmVySGFuZGxlLCBuZXdSZWN0LndpZHRoKCksIG5ld1JlY3QuaGVpZ2h0KCkpOwogfQogCiB2b2lk
IFgxMU9mZlNjcmVlbldpbmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKIHsKKyAgICBpZiAo
IW1fc2hhcmVkUmVzb3VyY2VzKQorICAgICAgICByZXR1cm47CisKICAgICBEaXNwbGF5KiBkaXNw
bGF5ID0gbV9zaGFyZWRSZXNvdXJjZXMtPngxMURpc3BsYXkoKTsKICAgICBpZiAoIWRpc3BsYXkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdMWEZCQ29uZmlnIGNvbmZpZyA9IG1fc2hhcmVkUmVz
b3VyY2VzLT5zdXJmYWNlQ29udGV4dENvbmZpZygpOworICAgIFBsYXRmb3JtU3VyZmFjZUNvbmZp
ZyBjb25maWcgPSBtX3NoYXJlZFJlc291cmNlcy0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsKIAog
ICAgIGlmICghY29uZmlnKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJldHJpZXZl
IGEgdmFsaWQgY29uZmlnaXJhdGlvbi4iKTsKQEAgLTgwLDMzICs4OCwzMyBAQCB2b2lkIFgxMU9m
ZlNjcmVlbldpbmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKICAgICBhdHRyaWJ1dGUuYmFj
a2dyb3VuZF9waXhlbCA9IFdoaXRlUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmJv
cmRlcl9waXhlbCA9IEJsYWNrUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmNvbG9y
bWFwID0gY21hcDsKLSAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVdpbmRvdyhkaXNwbGF5LCB4V2lu
ZG93LCAwLCAwLCAxLCAxLCAwLCB2aXNJbmZvLT5kZXB0aCwgSW5wdXRPdXRwdXQsIHZpc0luZm8t
PnZpc3VhbCwgQ1dCYWNrUGl4ZWwgfCBDV0JvcmRlclBpeGVsIHwgQ1dDb2xvcm1hcCwgJmF0dHJp
YnV0ZSk7CisgICAgbV9idWZmZXJIYW5kbGUgPSBYQ3JlYXRlV2luZG93KGRpc3BsYXksIHhXaW5k
b3csIDAsIDAsIDEsIDEsIDAsIHZpc0luZm8tPmRlcHRoLCBJbnB1dE91dHB1dCwgdmlzSW5mby0+
dmlzdWFsLCBDV0JhY2tQaXhlbCB8IENXQm9yZGVyUGl4ZWwgfCBDV0NvbG9ybWFwLCAmYXR0cmli
dXRlKTsKIAotICAgIGlmICghbV9kcmF3YWJsZSkgeworICAgIGlmICghbV9idWZmZXJIYW5kbGUp
IHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIG9mZnNjcmVlbiB3aW5kb3ci
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFhTZXRXaW5kb3dCYWNrZ3JvdW5kUGl4
bWFwKGRpc3BsYXksIG1fZHJhd2FibGUsIDApOwotICAgIFhDb21wb3NpdGVSZWRpcmVjdFdpbmRv
dyhkaXNwbGF5LCBtX2RyYXdhYmxlLCBDb21wb3NpdGVSZWRpcmVjdE1hbnVhbCk7CisgICAgWFNl
dFdpbmRvd0JhY2tncm91bmRQaXhtYXAoZGlzcGxheSwgbV9idWZmZXJIYW5kbGUsIDApOworICAg
IFhDb21wb3NpdGVSZWRpcmVjdFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSwgQ29tcG9z
aXRlUmVkaXJlY3RNYW51YWwpOwogCiAgICAgaWYgKG1fc2hhcmVkUmVzb3VyY2VzLT5pc1hSZW5k
ZXJFeHRlbnNpb25TdXBwb3J0ZWQoKSkKLSAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2Ry
YXdhYmxlKTsKKyAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7CiAK
IH0KIAogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OmRlc3Ryb3lXaW5kb3coKQogewotICAgIGlm
ICghbV9kcmF3YWJsZSkKKyAgICBpZiAoIW1fYnVmZmVySGFuZGxlKQogICAgICAgICByZXR1cm47
CiAKICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6ZGVzdHJveSgpOwotICAgIERpc3BsYXkqIGRpc3Bs
YXkgPSBzaGFyZWREaXNwbGF5KCk7CisgICAgRGlzcGxheSogZGlzcGxheSA9IG1fc2hhcmVkUmVz
b3VyY2VzLT54MTFEaXNwbGF5KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm47
CiAKLSAgICBYRGVzdHJveVdpbmRvdyhkaXNwbGF5LCBtX2RyYXdhYmxlKTsKLSAgICBtX2RyYXdh
YmxlID0gMDsKKyAgICBYRGVzdHJveVdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7Cisg
ICAgbV9idWZmZXJIYW5kbGUgPSAwOwogfQogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9YMTFXaW5kb3dSZXNvdXJj
ZXMuaAppbmRleCBiMjViMmFjLi45ZTVlOGNmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExV2luZG93UmVzb3Vy
Y2VzLmgKQEAgLTQwLDggKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIFVT
RShHTFgpCiBjbGFzcyBTaGFyZWRHTFhSZXNvdXJjZXM7CiB0eXBlZGVmIFNoYXJlZEdMWFJlc291
cmNlcyBQbGF0Zm9ybVNoYXJlZFJlc291cmNlczsKKyNlbHNlCitjbGFzcyBEdW1teVNoYXJlZFJl
c291cmNlczsKK3R5cGVkZWYgRHVtbXlTaGFyZWRSZXNvdXJjZXMgUGxhdGZvcm1TaGFyZWRSZXNv
dXJjZXM7CisjZW5kaWYKIAogY2xhc3MgU2hhcmVkWDExUmVzb3VyY2VzIDogcHVibGljIFdURjo6
UmVmQ291bnRlZEJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNoYXJlZFgxMVJlc291
cmNlcyk7CkBAIC0xNDcsNiArMTUyLDQyIEBAIHByb3RlY3RlZDoKICAgICBYVmlzdWFsSW5mbyog
bV9WaXN1YWxJbmZvOwogfTsKIAorLy8gRHVtbXkgSW1wbGVtZW50YXRpb24gdG8gYXZvaWQgaWZk
ZWZzCitjbGFzcyBEdW1teVNoYXJlZFJlc291cmNlcyA6IHB1YmxpYyBTaGFyZWRYMTFSZXNvdXJj
ZXMgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKER1bW15U2hhcmVkUmVzb3VyY2VzKTsKKwor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPER1bW15U2hhcmVkUmVzb3VyY2VzPiBjcmVh
dGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNw
bGF5IG5hdGl2ZURpc3BsYXkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisg
ICAgdmlydHVhbCBQbGF0Zm9ybVN1cmZhY2VDb25maWcgcEJ1ZmZlckNvbnRleHRDb25maWcoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgdmlydHVhbCBQbGF0Zm9ybVN1
cmZhY2VDb25maWcgc3VyZmFjZUNvbnRleHRDb25maWcoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorCitwcml2YXRlOgorICAgIER1bW15U2hhcmVkUmVzb3VyY2VzKCkKKyAgICAg
ICAgOiBTaGFyZWRYMTFSZXNvdXJjZXMoKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5E
dW1teVNoYXJlZFJlc291cmNlcygpCisgICAgeworICAgIH0KK307CisKIGNsYXNzIFgxMU9mZlNj
cmVlbldpbmRvdyA6IHB1YmxpYyBHTFBsYXRmb3JtU3VyZmFjZSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoWDExT2ZmU2NyZWVuV2luZG93KTsKIApkaWZmIC0tZ2l0IFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmluZGV4IDUzNmQx
OTMuLjcwZjk4ZGQgMTAwNjQ0Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQorKysg
U291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTE2OCw2ICsxNjgsOCBAQCBpZiAoRU5B
QkxFX1dFQkdMIE9SIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSkKIAogICAgIGlmIChPUEVO
R0xYX0ZPVU5EKQogICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURIQVZFX0dMWCkKKyAgICAgICAg
YWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9HTFg9MSkKKwogICAgICAgICBpZiAoWDExX1hjb21w
b3NpdGVfRk9VTkQgQU5EIFgxMV9YcmVuZGVyX0ZPVU5EKQogICAgICAgICAgICBzZXQoVVNFX0dS
QVBISUNTX1NVUkZBQ0UgMSkKICAgICAgICAgZW5kaWYgKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180388</attachid>
            <date>2012-12-20 12:38:06 -0800</date>
            <delta_ts>2012-12-20 12:39:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>reviewchanges.patch</filename>
            <type>text/plain</type>
            <size>14811</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBDaGFuZ2VMb2cgQ2hhbmdlTG9nCmluZGV4IDMwMDc2ZDEuLjkxYjg3YzMgMTAw
NjQ0Ci0tLSBDaGFuZ2VMb2cKKysrIENoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEy
LTIwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKwor
ICAgICAgICBbRUZMXVtXZWJHTF1bV2syXSBSZXBsYWNlIEhBVkUgY2hlY2tzIHdpdGggVVNFCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0MzEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGNoYW5nZXMgdGhlIGNoZWNrIEhhdmUgdG8gVXNlLgorICAgICAgICBUaGlzIHdvdWxkIGVuYWJs
ZSB1cyB0byBjaG9vc2Ugb3VyIHByZWZlcnJlZCBHTCBiYWNrZW5kIGR1cmluZyBidWlsZCB0aW1l
LgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2U6CisKIDIwMTItMTIt
MjAgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR1RL
XSBSZW1vdmUgdGhlIC0tZW5hYmxlLXVuc3RhYmxlLWZlYXR1cmVzIGNvbmZpZ3VyYXRpb24gb3B0
aW9uCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjFkODM1Li5jZjNmYzAxIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAor
MjAxMi0xMi0yMCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5j
b20+CisKKyAgICAgICAgW0VGTF1bV2ViR0xdW1drMl0gUmVwbGFjZSBIQVZFIGNoZWNrcyB3aXRo
IFVTRQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1
NDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBjaGVjayBIYXZlIHRvIFVzZS4KKyAgICAgICAgVGhpcyB3b3Vs
ZCBlbmFibGUgdXMgdG8gY2hvb3NlIG91ciBwcmVmZXJyZWQgR0wgYmFja2VuZCBkdXJpbmcgYnVp
bGQgdGltZS4KKyAgICAgICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYW4gYWRkaXRpb25hbCBhcGkg
dG8gcXVlcnkgdGhlIHNoYXJlZCBidWZmZXIgaGFuZGxlLgorICAgICAgICBCdWZmZXIgaGFuZGxl
IGlzIG5vdCBzYW1lIGFzIGdsIHN1cmZhY2UgYW5kIHdvdWxkIGRlcGVuZCBvbiBob3cgdGhlIGNv
bnRlbnQgaXMKKyAgICAgICAgYmFja2VkIHVwLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMRGVmcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVPZmZTY3JlZW5Db250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDdXJyZW50Q29udGV4dFdyYXBwZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlT2Zmc2NyZWVuU3Vy
ZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJhbnNw
b3J0U3VyZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6R0xQbGF0
Zm9ybVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6OmhhbmRs
ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJm
YWNlOjpkcmF3YWJsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxh
dGZvcm1TdXJmYWNlLmg6CisgICAgICAgIChHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuY3BwOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0Lmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R0xYVHJhbnNwb3J0U3VyZmFjZTo6R0xYVHJhbnNwb3J0U3VyZmFjZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHTFhUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KToKKyAgICAgICAgKFdl
YkNvcmU6OkdMWFBCdWZmZXI6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6R0xYUEJ1
ZmZlcjo6ZnJlZVJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNl
cy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
c3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
MTFPZmZTY3JlZW5XaW5kb3c6OlgxMU9mZlNjcmVlbldpbmRvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpYMTFPZmZTY3JlZW5XaW5kb3c6OnNldEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6Olgx
MU9mZlNjcmVlbldpbmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKFdlYkNv
cmU6OlgxMU9mZlNjcmVlbldpbmRvdzo6ZGVzdHJveVdpbmRvdyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChEdW1teVNoYXJlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJD
b3JlOjpEdW1teVNoYXJlZFJlc291cmNlczo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkR1
bW15U2hhcmVkUmVzb3VyY2VzOjpuYXRpdmVEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkR1
bW15U2hhcmVkUmVzb3VyY2VzOjpwQnVmZmVyQ29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJD
b3JlOjpEdW1teVNoYXJlZFJlc291cmNlczo6c3VyZmFjZUNvbnRleHRDb25maWcpOgorICAgICAg
ICAoV2ViQ29yZTo6RHVtbXlTaGFyZWRSZXNvdXJjZXM6OkR1bW15U2hhcmVkUmVzb3VyY2VzKToK
KyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVkUmVzb3VyY2VzOjp+RHVtbXlTaGFyZWRSZXNv
dXJjZXMpOgorCiAyMDEyLTEyLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIExvdHMgb2Ygc3RpY2t5IHRlc3RzIGZhaWxpbmcgaW4gV0syCmRpZmYg
LS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCBkZjVi
Y2RkLi4yZGZiNGM5IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMRGVmcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xEZWZzLmgKQEAgLTM4LDIyICszOCwyNCBAQAogI2luY2x1ZGUgPEdML2dsZXh0Lmg+CiAj
ZW5kaWYKIAotI2lmIEhBVkUoR0xYKQorI2lmIFVTRShHTFgpCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgSEFWRShHTFgpCit0eXBlZGVm
IHVpbnQzMl90IFBsYXRmb3JtQnVmZmVySGFuZGxlOworCisjaWYgVVNFKEdMWCkKIHR5cGVkZWYg
R0xYQ29udGV4dCBQbGF0Zm9ybUNvbnRleHQ7CiB0eXBlZGVmIERpc3BsYXkqIFBsYXRmb3JtRGlz
cGxheTsKIHR5cGVkZWYgR0xYRkJDb25maWcgUGxhdGZvcm1TdXJmYWNlQ29uZmlnOwotdHlwZWRl
ZiBHTFhEcmF3YWJsZSBQbGF0Zm9ybVN1cmZhY2U7Cit0eXBlZGVmIEdMWERyYXdhYmxlIFBsYXRm
b3JtRHJhd2FibGU7CiAjZWxzZQogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUNvbnRleHQ7CiB0eXBl
ZGVmIHZvaWQqIFBsYXRmb3JtRGlzcGxheTsKIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1TdXJmYWNl
Q29uZmlnOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2U7Cit0eXBlZGVmIHZvaWQqIFBs
YXRmb3JtRHJhd2FibGU7CiAjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAppbmRleCAy
NGM4NDQ0Li43NjIxZTJlIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApAQCAtMjgsNyArMjgsNyBA
QAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCi0jaWYgSEFWRShHTFgpCisj
aWYgVVNFKEdMWCkKICNpbmNsdWRlICJHTFhDb250ZXh0LmgiCiAjZW5kaWYKIApAQCAtNDUsNyAr
NDUsNyBAQCBQYXNzT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6
Y3JlYXRlQ29udGV4dChHcmFwaGljc0NvbnRleHQzRAogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGlmICghZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKSB7Ci0jaWYgSEFWRShHTFgp
CisjaWYgVVNFKEdMWCkKICAgICAgICAgZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCID0gcmVp
bnRlcnByZXRfY2FzdDxQRk5HTEdFVEdSQVBISUNTUkVTRVRTVEFUVVNBUkJQUk9DPihnbFhHZXRQ
cm9jQWRkcmVzc0FSQihyZWludGVycHJldF9jYXN0PGNvbnN0IEdMdWJ5dGUqPigiZ2xHZXRHcmFw
aGljc1Jlc2V0U3RhdHVzQVJCIikpKTsKICNlbmRpZgogICAgIH0KQEAgLTY5LDcgKzY5LDcgQEAg
UGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZUNv
bnRleHQoR3JhcGhpY3NDb250ZXh0M0QKIAogUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4g
R0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQogewotI2lmIEhBVkUo
R0xYKQorI2lmIFVTRShHTFgpCiAgICAgT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBnbHhDb250
ZXh0ID0gYWRvcHRQdHIobmV3IEdMWE9mZlNjcmVlbkNvbnRleHQoKSk7CiAgICAgcmV0dXJuIGds
eENvbnRleHQucmVsZWFzZSgpOwogI2VuZGlmCkBAIC03OSw3ICs3OSw3IEBAIFBhc3NPd25QdHI8
R0xQbGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVPZmZTY3JlZW5Db250
ZXh0KCkKIAogUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNvbnRleHQ6
OmNyZWF0ZUN1cnJlbnRDb250ZXh0V3JhcHBlcigpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNF
KEdMWCkKICAgICBPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGdseENvbnRleHQgPSBhZG9wdFB0
cihuZXcgR0xYQ3VycmVudENvbnRleHRXcmFwcGVyKCkpOwogICAgIHJldHVybiBnbHhDb250ZXh0
LnJlbGVhc2UoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAppbmRleCAxNjBjYTNmLi44
MzkxZTQ3IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dMUGxhdGZvcm1TdXJmYWNlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcApAQCAtMzgsMTAgKzM4LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9y
bVN1cmZhY2U6OmNyZWF0ZU9mZnNjcmVlblN1cmZhY2UoKQogewotI2lmIEhBVkUoR0xYKQorI2lm
IFVTRShHTFgpCiAgICAgT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBzdXJmYWNlID0gYWRvcHRQ
dHIobmV3IEdMWFBCdWZmZXIoKSk7CiAKLSAgICBpZiAoc3VyZmFjZS0+aGFuZGxlKCkpCisgICAg
aWYgKHN1cmZhY2UtPmhhbmRsZSgpICYmIHN1cmZhY2UtPmRyYXdhYmxlKCkpCiAgICAgICAgIHJl
dHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKICNlbmRpZgogCkBAIC01MCw3ICs1MCw3IEBAIFBhc3NP
d25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IEdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZzY3Jl
ZW5TdXJmYWNlKCkKIAogUGFzc093blB0cjxHTFBsYXRmb3JtU3VyZmFjZT4gR0xQbGF0Zm9ybVN1
cmZhY2U6OmNyZWF0ZVRyYW5zcG9ydFN1cmZhY2UoKQogewotI2lmIEhBVkUoR0xYKSAmJiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKKyNpZiBVU0UoR0xYKSAmJiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
ICAgICBPd25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xY
VHJhbnNwb3J0U3VyZmFjZSgpKTsKIAogICAgIGlmIChzdXJmYWNlLT5oYW5kbGUoKSkKQEAgLTY1
LDYgKzY1LDcgQEAgR0xQbGF0Zm9ybVN1cmZhY2U6OkdMUGxhdGZvcm1TdXJmYWNlKCkKICAgICAs
IG1fZmJvSWQoMCkKICAgICAsIG1fc2hhcmVkRGlzcGxheSgwKQogICAgICwgbV9kcmF3YWJsZSgw
KQorICAgICwgbV9idWZmZXJIYW5kbGUoMCkKIHsKIH0KIApAQCAtNzIsNyArNzMsMTIgQEAgR0xQ
bGF0Zm9ybVN1cmZhY2U6On5HTFBsYXRmb3JtU3VyZmFjZSgpCiB7CiB9CiAKLVBsYXRmb3JtU3Vy
ZmFjZSBHTFBsYXRmb3JtU3VyZmFjZTo6aGFuZGxlKCkgY29uc3QKK1BsYXRmb3JtQnVmZmVySGFu
ZGxlIEdMUGxhdGZvcm1TdXJmYWNlOjpoYW5kbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2J1
ZmZlckhhbmRsZTsKK30KKworUGxhdGZvcm1EcmF3YWJsZSBHTFBsYXRmb3JtU3VyZmFjZTo6ZHJh
d2FibGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2RyYXdhYmxlOwogfQpkaWZmIC0tZ2l0IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5o
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFj
ZS5oCmluZGV4IDQ2M2E2YjIuLmU4ZGI0MjUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKQEAgLTUyLDgg
KzUyLDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEludFJlY3QmIGdlb21ldHJ5KCkgY29uc3Q7
CiAKLSAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgcGxhdGZvcm0gc3BlY2lmaWMgc3VyZmFjZSBo
YW5kbGUuCi0gICAgUGxhdGZvcm1TdXJmYWNlIGhhbmRsZSgpIGNvbnN0OworICAgIC8vIEdldCB0
aGUgdW5kZXJseWluZyBwbGF0Zm9ybSBzcGVjaWZpYyBidWZmZXIgaGFuZGxlLgorICAgIFBsYXRm
b3JtQnVmZmVySGFuZGxlIGhhbmRsZSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1EcmF3YWJsZSBk
cmF3YWJsZSgpIGNvbnN0OwogCiAgICAgUGxhdGZvcm1EaXNwbGF5IHNoYXJlZERpc3BsYXkoKSBj
b25zdDsKIApAQCAtNzgsNyArODAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50UmVjdCBtX3JlY3Q7
CiAgICAgR0x1aW50IG1fZmJvSWQ7CiAgICAgUGxhdGZvcm1EaXNwbGF5IG1fc2hhcmVkRGlzcGxh
eTsKLSAgICBQbGF0Zm9ybVN1cmZhY2UgbV9kcmF3YWJsZTsKKyAgICBQbGF0Zm9ybURyYXdhYmxl
IG1fZHJhd2FibGU7CisgICAgUGxhdGZvcm1CdWZmZXJIYW5kbGUgbV9idWZmZXJIYW5kbGU7CiB9
OwogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFj
ZXMvZ2x4L0dMWENvbnRleHQuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcAppbmRleCAyOTVmMDZjLi45OTU2Y2IxIDEwMDY0NAot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRl
eHQuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYQ29udGV4dC5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJHTFhDb250ZXh0LmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
ICYmIEhBVkUoR0xYKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdM
WCkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuaCBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oCmluZGV4IDdjZmY4ZDUu
LjQzYTUyZGMgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvR0xYQ29udGV4dC5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdM
WENvbnRleHRfaAogI2RlZmluZSBHTFhDb250ZXh0X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBVU0UoR0xYKQogCiAjaW5jbHVkZSAiR0xQbGF0Zm9ybUNvbnRleHQuaCIKIApkaWZmIC0t
Z2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJm
YWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xY
U3VyZmFjZS5jcHAKaW5kZXggM2JjMzIwNi4uOTZhMGFiOSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3Bw
CkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiR0xYU3Vy
ZmFjZS5oIgogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBIQVZFKEdMWCkK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgpCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzcsNiArMzcsNyBAQCBHTFhUcmFuc3BvcnRTdXJmYWNlOjpHTFhU
cmFuc3BvcnRTdXJmYWNlKCkKICAgICA6IFgxMU9mZlNjcmVlbldpbmRvdygpCiB7CiAgICAgY3Jl
YXRlT2Zmc2NyZWVuV2luZG93KCk7CisgICAgbV9kcmF3YWJsZSA9IG1fYnVmZmVySGFuZGxlOwog
fQogCiBHTFhUcmFuc3BvcnRTdXJmYWNlOjp+R0xYVHJhbnNwb3J0U3VyZmFjZSgpCkBAIC02Niw2
ICs2Nyw3IEBAIHZvaWQgR0xYVHJhbnNwb3J0U3VyZmFjZTo6c3dhcEJ1ZmZlcnMoKQogdm9pZCBH
TFhUcmFuc3BvcnRTdXJmYWNlOjpkZXN0cm95KCkKIHsKICAgICBkZXN0cm95V2luZG93KCk7Cisg
ICAgbV9idWZmZXJIYW5kbGUgPSAwOwogfQogCiAjZW5kaWYKQEAgLTg4LDYgKzkwLDcgQEAgdm9p
ZCBHTFhQQnVmZmVyOjppbml0aWFsaXplKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kcmF3
YWJsZSA9IGdsWENyZWF0ZVBidWZmZXIoZGlzcGxheSwgY29uZmlnLCBwYnVmZmVyQXR0cmlidXRl
cyk7CisgICAgbV9idWZmZXJIYW5kbGUgPSBtX2RyYXdhYmxlOwogfQogCiBQbGF0Zm9ybVN1cmZh
Y2VDb25maWcgR0xYUEJ1ZmZlcjo6Y29uZmlndXJhdGlvbigpCkBAIC0xMTIsNiArMTE1LDcgQEAg
dm9pZCBHTFhQQnVmZmVyOjpmcmVlUmVzb3VyY2VzKCkKIAogICAgIGdsWERlc3Ryb3lQYnVmZmVy
KGRpc3BsYXksIG1fZHJhd2FibGUpOwogICAgIG1fZHJhd2FibGUgPSAwOworICAgIG1fYnVmZmVy
SGFuZGxlID0gMDsKIH0KIAogdm9pZCBHTFhQQnVmZmVyOjpzZXRHZW9tZXRyeShjb25zdCBJbnRS
ZWN0JiBuZXdSZWN0KQpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaAppbmRleCBjZjAxYTQ1Li40ZTg3Njg1IDEwMDY0
NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1
cmZhY2UuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L0dMWFN1cmZhY2UuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBHTFhTdXJmYWNlX2gKICNk
ZWZpbmUgR0xYU3VyZmFjZV9oCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYm
IEhBVkUoR0xYKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkK
IAogI2luY2x1ZGUgIkdMWFdpbmRvd1Jlc291cmNlcy5oIgogCmRpZmYgLS1naXQgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5o
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhXaW5kb3dS
ZXNvdXJjZXMuaAppbmRleCBiODA1NGYyYmMuLmMxNzM1NTcgMTAwNjQ0Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmgK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhXaW5k
b3dSZXNvdXJjZXMuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaW5jbHVkZSAiWDExV2luZG93UmVz
b3VyY2VzLmgiCiAKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoR0xY
KQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5jcHAgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L1gxMVdpbmRvd1Jlc291cmNlcy5jcHAKaW5kZXgg
NzU1YTQ4OC4uNjAyOTNlNyAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9YMTFXaW5kb3dSZXNvdXJjZXMuY3BwCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDExV2luZG93UmVzb3VyY2VzLmNwcApA
QCAtMzYsOCArMzYsMTMgQEAgUGxhdGZvcm1TaGFyZWRSZXNvdXJjZXMqIFNoYXJlZFgxMVJlc291
cmNlczo6bV9zdGF0aWNTaGFyZWRSZXNvdXJjZSA9IDA7CiAKIFgxMU9mZlNjcmVlbldpbmRvdzo6
WDExT2ZmU2NyZWVuV2luZG93KCkKICAgICA6IEdMUGxhdGZvcm1TdXJmYWNlKCkKKyAgICAsIG1f
c2hhcmVkUmVzb3VyY2VzKDApCiB7CiAgICAgbV9zaGFyZWRSZXNvdXJjZXMgPSBQbGF0Zm9ybVNo
YXJlZFJlc291cmNlczo6Y3JlYXRlKCk7CisKKyAgICBpZiAoIW1fc2hhcmVkUmVzb3VyY2VzKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX3NoYXJlZERpc3BsYXkgPSBtX3NoYXJlZFJlc291cmNl
cy0+bmF0aXZlRGlzcGxheSgpOwogfQogCkBAIC00OCwxNiArNTMsMTkgQEAgWDExT2ZmU2NyZWVu
V2luZG93Ojp+WDExT2ZmU2NyZWVuV2luZG93KCkKIHZvaWQgWDExT2ZmU2NyZWVuV2luZG93Ojpz
ZXRHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQogewogICAgIEdMUGxhdGZvcm1TdXJm
YWNlOjpzZXRHZW9tZXRyeShuZXdSZWN0KTsKLSAgICBYUmVzaXplV2luZG93KG1fc2hhcmVkUmVz
b3VyY2VzLT54MTFEaXNwbGF5KCksIG1fZHJhd2FibGUsIG5ld1JlY3Qud2lkdGgoKSwgbmV3UmVj
dC5oZWlnaHQoKSk7CisgICAgWFJlc2l6ZVdpbmRvdyhtX3NoYXJlZFJlc291cmNlcy0+eDExRGlz
cGxheSgpLCBtX2J1ZmZlckhhbmRsZSwgbmV3UmVjdC53aWR0aCgpLCBuZXdSZWN0LmhlaWdodCgp
KTsKIH0KIAogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OmNyZWF0ZU9mZnNjcmVlbldpbmRvdygp
CiB7CisgICAgaWYgKCFtX3NoYXJlZFJlc291cmNlcykKKyAgICAgICAgcmV0dXJuOworCiAgICAg
RGlzcGxheSogZGlzcGxheSA9IG1fc2hhcmVkUmVzb3VyY2VzLT54MTFEaXNwbGF5KCk7CiAgICAg
aWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm47CiAKLSAgICBHTFhGQkNvbmZpZyBjb25maWcg
PSBtX3NoYXJlZFJlc291cmNlcy0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsKKyAgICBQbGF0Zm9y
bVN1cmZhY2VDb25maWcgY29uZmlnID0gbV9zaGFyZWRSZXNvdXJjZXMtPnN1cmZhY2VDb250ZXh0
Q29uZmlnKCk7CiAKICAgICBpZiAoIWNvbmZpZykgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxl
ZCB0byByZXRyaWV2ZSBhIHZhbGlkIGNvbmZpZ2lyYXRpb24uIik7CkBAIC04MCwzMyArODgsMzMg
QEAgdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OmNyZWF0ZU9mZnNjcmVlbldpbmRvdygpCiAgICAg
YXR0cmlidXRlLmJhY2tncm91bmRfcGl4ZWwgPSBXaGl0ZVBpeGVsKGRpc3BsYXksIDApOwogICAg
IGF0dHJpYnV0ZS5ib3JkZXJfcGl4ZWwgPSBCbGFja1BpeGVsKGRpc3BsYXksIDApOwogICAgIGF0
dHJpYnV0ZS5jb2xvcm1hcCA9IGNtYXA7Ci0gICAgbV9kcmF3YWJsZSA9IFhDcmVhdGVXaW5kb3co
ZGlzcGxheSwgeFdpbmRvdywgMCwgMCwgMSwgMSwgMCwgdmlzSW5mby0+ZGVwdGgsIElucHV0T3V0
cHV0LCB2aXNJbmZvLT52aXN1YWwsIENXQmFja1BpeGVsIHwgQ1dCb3JkZXJQaXhlbCB8IENXQ29s
b3JtYXAsICZhdHRyaWJ1dGUpOworICAgIG1fYnVmZmVySGFuZGxlID0gWENyZWF0ZVdpbmRvdyhk
aXNwbGF5LCB4V2luZG93LCAwLCAwLCAxLCAxLCAwLCB2aXNJbmZvLT5kZXB0aCwgSW5wdXRPdXRw
dXQsIHZpc0luZm8tPnZpc3VhbCwgQ1dCYWNrUGl4ZWwgfCBDV0JvcmRlclBpeGVsIHwgQ1dDb2xv
cm1hcCwgJmF0dHJpYnV0ZSk7CiAKLSAgICBpZiAoIW1fZHJhd2FibGUpIHsKKyAgICBpZiAoIW1f
YnVmZmVySGFuZGxlKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBvZmZz
Y3JlZW4gd2luZG93Iik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBYU2V0V2luZG93
QmFja2dyb3VuZFBpeG1hcChkaXNwbGF5LCBtX2RyYXdhYmxlLCAwKTsKLSAgICBYQ29tcG9zaXRl
UmVkaXJlY3RXaW5kb3coZGlzcGxheSwgbV9kcmF3YWJsZSwgQ29tcG9zaXRlUmVkaXJlY3RNYW51
YWwpOworICAgIFhTZXRXaW5kb3dCYWNrZ3JvdW5kUGl4bWFwKGRpc3BsYXksIG1fYnVmZmVySGFu
ZGxlLCAwKTsKKyAgICBYQ29tcG9zaXRlUmVkaXJlY3RXaW5kb3coZGlzcGxheSwgbV9idWZmZXJI
YW5kbGUsIENvbXBvc2l0ZVJlZGlyZWN0TWFudWFsKTsKIAogICAgIGlmIChtX3NoYXJlZFJlc291
cmNlcy0+aXNYUmVuZGVyRXh0ZW5zaW9uU3VwcG9ydGVkKCkpCi0gICAgICAgIFhNYXBXaW5kb3co
ZGlzcGxheSwgbV9kcmF3YWJsZSk7CisgICAgICAgIFhNYXBXaW5kb3coZGlzcGxheSwgbV9idWZm
ZXJIYW5kbGUpOwogCiB9CiAKIHZvaWQgWDExT2ZmU2NyZWVuV2luZG93OjpkZXN0cm95V2luZG93
KCkKIHsKLSAgICBpZiAoIW1fZHJhd2FibGUpCisgICAgaWYgKCFtX2J1ZmZlckhhbmRsZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OmRlc3Ryb3koKTsKLSAgICBE
aXNwbGF5KiBkaXNwbGF5ID0gc2hhcmVkRGlzcGxheSgpOworICAgIERpc3BsYXkqIGRpc3BsYXkg
PSBtX3NoYXJlZFJlc291cmNlcy0+eDExRGlzcGxheSgpOwogICAgIGlmICghZGlzcGxheSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgWERlc3Ryb3lXaW5kb3coZGlzcGxheSwgbV9kcmF3YWJsZSk7
Ci0gICAgbV9kcmF3YWJsZSA9IDA7CisgICAgWERlc3Ryb3lXaW5kb3coZGlzcGxheSwgbV9idWZm
ZXJIYW5kbGUpOworICAgIG1fYnVmZmVySGFuZGxlID0gMDsKIH0KIAogfQpkaWZmIC0tZ2l0IFNv
dXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtl
CmluZGV4IDZlNTYxMGEuLmE1MTMzZTkgMTAwNjQ0Ci0tLSBTb3VyY2UvY21ha2UvT3B0aW9uc0Vm
bC5jbWFrZQorKysgU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTE2OSw2ICsxNjks
OCBAQCBpZiAoRU5BQkxFX1dFQkdMIE9SIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSkKIAog
ICAgIGlmIChPUEVOR0xYX0ZPVU5EKQogICAgICAgICBhZGRfZGVmaW5pdGlvbnMoLURIQVZFX0dM
WCkKKyAgICAgICAgYWRkX2RlZmluaXRpb25zKC1EV1RGX1VTRV9HTFg9MSkKKwogICAgICAgICBp
ZiAoWDExX1hjb21wb3NpdGVfRk9VTkQgQU5EIFgxMV9YcmVuZGVyX0ZPVU5EKQogICAgICAgICAg
ICBzZXQoVVNFX0dSQVBISUNTX1NVUkZBQ0UgMSkKICAgICAgICAgZW5kaWYgKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180390</attachid>
            <date>2012-12-20 12:49:52 -0800</date>
            <delta_ts>2012-12-20 15:58:08 -0800</delta_ts>
            <desc>patch</desc>
            <filename>review-fixes.patch</filename>
            <type>text/plain</type>
            <size>14852</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBDaGFuZ2VMb2cgQ2hhbmdlTG9nCmluZGV4IDMwMDc2ZDEuLjdmYzI1Y2UgMTAw
NjQ0Ci0tLSBDaGFuZ2VMb2cKKysrIENoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEy
LTIwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KKwor
ICAgICAgICBbRUZMXVtXZWJHTF1bV2syXSBSZXBsYWNlIEhBVkUoR0xYKSBjaGVja3Mgd2l0aCBV
U0UoR0xYKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwNTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgY2hlY2sgSEFWRShHTFgpIHRvIFVTRShHTFgpLgorICAg
ICAgICBUaGlzIHdvdWxkIGVuYWJsZSB1cyB0byBjaG9vc2Ugb3VyIHByZWZlcnJlZCBHTCBiYWNr
ZW5kIGR1cmluZyBidWlsZCB0aW1lLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNF
ZmwuY21ha2U6CisKIDIwMTItMTItMjAgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWls
LmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIC0tZW5hYmxlLXVuc3RhYmxlLWZlYXR1
cmVzIGNvbmZpZ3VyYXRpb24gb3B0aW9uCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxNjFkODM1Li5jOWQ5N2NmIDEwMDY0
NAotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMi0xMi0yMCAgS29uZGFwYWxseSBLYWx5YW4gIDxrYWx5
YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF1bV2ViR0xdW1drMl0gUmVw
bGFjZSBIQVZFKEdMWCkgY2hlY2tzIHdpdGggVVNFKEdMWCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTQzMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgY2hlY2sg
SEFWRShHTFgpIHRvIFVTRShHTFgpLgorICAgICAgICBUaGlzIHdvdWxkIGVuYWJsZSB1cyB0byBj
aG9vc2Ugb3VyIHByZWZlcnJlZCBHTCBiYWNrZW5kIGR1cmluZyBidWlsZCB0aW1lLgorICAgICAg
ICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhbiBhZGRpdGlvbmFsIGFwaSB0byBxdWVyeSB0aGUgc2hh
cmVkIGJ1ZmZlciBoYW5kbGUuCisgICAgICAgIEJ1ZmZlciBoYW5kbGUgaXMgbm90IHNhbWUgYXMg
Z2wgc3VyZmFjZSBhbmQgd291bGQgZGVwZW5kIG9uIGhvdyB0aGUgY29udGVudCBpcworICAgICAg
ICBiYWNrZWQgdXAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZz
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybUNv
bnRleHQ6OmNyZWF0ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybUNvbnRl
eHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9y
bUNvbnRleHQ6OmNyZWF0ZUN1cnJlbnRDb250ZXh0V3JhcHBlcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVPZmZzY3JlZW5TdXJmYWNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpjcmVhdGVUcmFuc3BvcnRTdXJmYWNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjpHTFBsYXRmb3JtU3VyZmFjZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6aGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R0xQbGF0Zm9ybVN1cmZhY2U6OmRyYXdhYmxlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoK
KyAgICAgICAgKEdMUGxhdGZvcm1TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc3VyZmFjZXMvZ2x4L0dMWENvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHTFhUcmFu
c3BvcnRTdXJmYWNlOjpHTFhUcmFuc3BvcnRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OkdM
WFRyYW5zcG9ydFN1cmZhY2U6OmRlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6R0xYUEJ1ZmZl
cjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHTFhQQnVmZmVyOjpmcmVlUmVzb3Vy
Y2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhXaW5kb3dS
ZXNvdXJjZXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvWDEx
V2luZG93UmVzb3VyY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNjcmVlbldpbmRv
dzo6WDExT2ZmU2NyZWVuV2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlgxMU9mZlNjcmVlbldp
bmRvdzo6c2V0R2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6WDExT2ZmU2NyZWVuV2luZG93
OjpjcmVhdGVPZmZzY3JlZW5XaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6WDExT2ZmU2NyZWVu
V2luZG93OjpkZXN0cm95V2luZG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9zdXJm
YWNlcy9nbHgvWDExV2luZG93UmVzb3VyY2VzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKER1bW15U2hhcmVkUmVzb3VyY2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVk
UmVzb3VyY2VzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlTaGFyZWRSZXNvdXJj
ZXM6Om5hdGl2ZURpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6RHVtbXlTaGFyZWRSZXNvdXJj
ZXM6OnBCdWZmZXJDb250ZXh0Q29uZmlnKToKKyAgICAgICAgKFdlYkNvcmU6OkR1bW15U2hhcmVk
UmVzb3VyY2VzOjpzdXJmYWNlQ29udGV4dENvbmZpZyk6CisgICAgICAgIChXZWJDb3JlOjpEdW1t
eVNoYXJlZFJlc291cmNlczo6RHVtbXlTaGFyZWRSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6RHVtbXlTaGFyZWRSZXNvdXJjZXM6On5EdW1teVNoYXJlZFJlc291cmNlcyk6CisKIDIwMTIt
MTItMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
TG90cyBvZiBzdGlja3kgdGVzdHMgZmFpbGluZyBpbiBXSzIKZGlmZiAtLWdpdCBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmggU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oCmluZGV4IGRmNWJjZGQuLjJkZmI0YzkgMTAw
NjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApAQCAt
MzgsMjIgKzM4LDI0IEBACiAjaW5jbHVkZSA8R0wvZ2xleHQuaD4KICNlbmRpZgogCi0jaWYgSEFW
RShHTFgpCisjaWYgVVNFKEdMWCkKICNpbmNsdWRlIDxHTC9nbHguaD4KICNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBIQVZFKEdMWCkKK3R5cGVkZWYgdWludDMyX3QgUGxhdGZv
cm1CdWZmZXJIYW5kbGU7CisKKyNpZiBVU0UoR0xYKQogdHlwZWRlZiBHTFhDb250ZXh0IFBsYXRm
b3JtQ29udGV4dDsKIHR5cGVkZWYgRGlzcGxheSogUGxhdGZvcm1EaXNwbGF5OwogdHlwZWRlZiBH
TFhGQkNvbmZpZyBQbGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBlZGVmIEdMWERyYXdhYmxlIFBs
YXRmb3JtU3VyZmFjZTsKK3R5cGVkZWYgR0xYRHJhd2FibGUgUGxhdGZvcm1EcmF3YWJsZTsKICNl
bHNlCiB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ29udGV4dDsKIHR5cGVkZWYgdm9pZCogUGxhdGZv
cm1EaXNwbGF5OwogdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVN1cmZhY2VDb25maWc7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtU3VyZmFjZTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1EcmF3YWJsZTsK
ICNlbmRpZgogCiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCmluZGV4IDI0Yzg0NDQuLjc2MjFlMmUg
MTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0
Zm9ybUNvbnRleHQuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpZiBVU0UoQUND
RUxFUkFURURfQ09NUE9TSVRJTkcpCiAKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogI2lu
Y2x1ZGUgIkdMWENvbnRleHQuaCIKICNlbmRpZgogCkBAIC00NSw3ICs0NSw3IEBAIFBhc3NPd25Q
dHI8R0xQbGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KEdy
YXBoaWNzQ29udGV4dDNECiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFnbEdl
dEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIpIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQog
ICAgICAgICBnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIgPSByZWludGVycHJldF9jYXN0PFBG
TkdMR0VUR1JBUEhJQ1NSRVNFVFNUQVRVU0FSQlBST0M+KGdsWEdldFByb2NBZGRyZXNzQVJCKHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgR0x1Ynl0ZSo+KCJnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNB
UkIiKSkpOwogI2VuZGlmCiAgICAgfQpAQCAtNjksNyArNjksNyBAQCBQYXNzT3duUHRyPEdMUGxh
dGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChHcmFwaGljc0Nv
bnRleHQzRAogCiBQYXNzT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4
dDo6Y3JlYXRlT2ZmU2NyZWVuQ29udGV4dCgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNFKEdM
WCkKICAgICBPd25QdHI8R0xQbGF0Zm9ybUNvbnRleHQ+IGdseENvbnRleHQgPSBhZG9wdFB0cihu
ZXcgR0xYT2ZmU2NyZWVuQ29udGV4dCgpKTsKICAgICByZXR1cm4gZ2x4Q29udGV4dC5yZWxlYXNl
KCk7CiAjZW5kaWYKQEAgLTc5LDcgKzc5LDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4
dD4gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKQogCiBQYXNzT3du
UHRyPEdMUGxhdGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ3VycmVudENv
bnRleHRXcmFwcGVyKCkKIHsKLSNpZiBIQVZFKEdMWCkKKyNpZiBVU0UoR0xYKQogICAgIE93blB0
cjxHTFBsYXRmb3JtQ29udGV4dD4gZ2x4Q29udGV4dCA9IGFkb3B0UHRyKG5ldyBHTFhDdXJyZW50
Q29udGV4dFdyYXBwZXIoKSk7CiAgICAgcmV0dXJuIGdseENvbnRleHQucmVsZWFzZSgpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1TdXJmYWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDE2MGNhM2YuLjgzOTFlNDcgMTAwNjQ0Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0
Zm9ybVN1cmZhY2UuY3BwCkBAIC0zOCwxMCArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRl
T2Zmc2NyZWVuU3VyZmFjZSgpCiB7Ci0jaWYgSEFWRShHTFgpCisjaWYgVVNFKEdMWCkKICAgICBP
d25QdHI8R0xQbGF0Zm9ybVN1cmZhY2U+IHN1cmZhY2UgPSBhZG9wdFB0cihuZXcgR0xYUEJ1ZmZl
cigpKTsKIAotICAgIGlmIChzdXJmYWNlLT5oYW5kbGUoKSkKKyAgICBpZiAoc3VyZmFjZS0+aGFu
ZGxlKCkgJiYgc3VyZmFjZS0+ZHJhd2FibGUoKSkKICAgICAgICAgcmV0dXJuIHN1cmZhY2UucmVs
ZWFzZSgpOwogI2VuZGlmCiAKQEAgLTUwLDcgKzUwLDcgQEAgUGFzc093blB0cjxHTFBsYXRmb3Jt
U3VyZmFjZT4gR0xQbGF0Zm9ybVN1cmZhY2U6OmNyZWF0ZU9mZnNjcmVlblN1cmZhY2UoKQogCiBQ
YXNzT3duUHRyPEdMUGxhdGZvcm1TdXJmYWNlPiBHTFBsYXRmb3JtU3VyZmFjZTo6Y3JlYXRlVHJh
bnNwb3J0U3VyZmFjZSgpCiB7Ci0jaWYgSEFWRShHTFgpICYmIFVTRShHUkFQSElDU19TVVJGQUNF
KQorI2lmIFVTRShHTFgpICYmIFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIE93blB0cjxHTFBs
YXRmb3JtU3VyZmFjZT4gc3VyZmFjZSA9IGFkb3B0UHRyKG5ldyBHTFhUcmFuc3BvcnRTdXJmYWNl
KCkpOwogCiAgICAgaWYgKHN1cmZhY2UtPmhhbmRsZSgpKQpAQCAtNjUsNiArNjUsNyBAQCBHTFBs
YXRmb3JtU3VyZmFjZTo6R0xQbGF0Zm9ybVN1cmZhY2UoKQogICAgICwgbV9mYm9JZCgwKQogICAg
ICwgbV9zaGFyZWREaXNwbGF5KDApCiAgICAgLCBtX2RyYXdhYmxlKDApCisgICAgLCBtX2J1ZmZl
ckhhbmRsZSgwKQogewogfQogCkBAIC03Miw3ICs3MywxMiBAQCBHTFBsYXRmb3JtU3VyZmFjZTo6
fkdMUGxhdGZvcm1TdXJmYWNlKCkKIHsKIH0KIAotUGxhdGZvcm1TdXJmYWNlIEdMUGxhdGZvcm1T
dXJmYWNlOjpoYW5kbGUoKSBjb25zdAorUGxhdGZvcm1CdWZmZXJIYW5kbGUgR0xQbGF0Zm9ybVN1
cmZhY2U6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fYnVmZmVySGFuZGxlOworfQor
CitQbGF0Zm9ybURyYXdhYmxlIEdMUGxhdGZvcm1TdXJmYWNlOjpkcmF3YWJsZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fZHJhd2FibGU7CiB9CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmggU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKaW5kZXggNDYzYTZi
Mi4uZThkYjQyNSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaApAQCAtNTIsOCArNTIsMTAgQEAgcHVibGlj
OgogCiAgICAgY29uc3QgSW50UmVjdCYgZ2VvbWV0cnkoKSBjb25zdDsKIAotICAgIC8vIEdldCB0
aGUgdW5kZXJseWluZyBwbGF0Zm9ybSBzcGVjaWZpYyBzdXJmYWNlIGhhbmRsZS4KLSAgICBQbGF0
Zm9ybVN1cmZhY2UgaGFuZGxlKCkgY29uc3Q7CisgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIHBs
YXRmb3JtIHNwZWNpZmljIGJ1ZmZlciBoYW5kbGUuCisgICAgUGxhdGZvcm1CdWZmZXJIYW5kbGUg
aGFuZGxlKCkgY29uc3Q7CisKKyAgICBQbGF0Zm9ybURyYXdhYmxlIGRyYXdhYmxlKCkgY29uc3Q7
CiAKICAgICBQbGF0Zm9ybURpc3BsYXkgc2hhcmVkRGlzcGxheSgpIGNvbnN0OwogCkBAIC03OCw3
ICs4MCw4IEBAIHByb3RlY3RlZDoKICAgICBJbnRSZWN0IG1fcmVjdDsKICAgICBHTHVpbnQgbV9m
Ym9JZDsKICAgICBQbGF0Zm9ybURpc3BsYXkgbV9zaGFyZWREaXNwbGF5OwotICAgIFBsYXRmb3Jt
U3VyZmFjZSBtX2RyYXdhYmxlOworICAgIFBsYXRmb3JtRHJhd2FibGUgbV9kcmF3YWJsZTsKKyAg
ICBQbGF0Zm9ybUJ1ZmZlckhhbmRsZSBtX2J1ZmZlckhhbmRsZTsKIH07CiAKIH0KZGlmZiAtLWdp
dCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4
dC5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWENv
bnRleHQuY3BwCmluZGV4IDI5NWYwNmMuLjk5NTZjYjEgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYQ29udGV4dC5jcHAKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmNwcApA
QCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkdMWENvbnRl
eHQuaCIKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvR0xYQ29udGV4dC5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3N1cmZhY2VzL2dseC9HTFhDb250ZXh0LmgKaW5kZXggN2NmZjhkNS4uNDNhNTJkYyAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhDb250
ZXh0LmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9H
TFhDb250ZXh0LmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgR0xYQ29udGV4dF9oCiAjZGVm
aW5lIEdMWENvbnRleHRfaAogCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBI
QVZFKEdMWCkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIFVTRShHTFgpCiAK
ICNpbmNsdWRlICJHTFBsYXRmb3JtQ29udGV4dC5oIgogCmRpZmYgLS1naXQgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmNwcAppbmRl
eCAzYmMzMjA2Li45NmEwYWI5IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5jcHAKQEAgLTI2LDcgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHTFhTdXJmYWNlLmgiCiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmIEhBVkUoR0xYKQorI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgVVNFKEdMWCkKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0zNyw2ICszNyw3IEBAIEdMWFRyYW5zcG9ydFN1cmZhY2U6OkdMWFRyYW5zcG9ydFN1cmZhY2Uo
KQogICAgIDogWDExT2ZmU2NyZWVuV2luZG93KCkKIHsKICAgICBjcmVhdGVPZmZzY3JlZW5XaW5k
b3coKTsKKyAgICBtX2RyYXdhYmxlID0gbV9idWZmZXJIYW5kbGU7CiB9CiAKIEdMWFRyYW5zcG9y
dFN1cmZhY2U6On5HTFhUcmFuc3BvcnRTdXJmYWNlKCkKQEAgLTY2LDYgKzY3LDcgQEAgdm9pZCBH
TFhUcmFuc3BvcnRTdXJmYWNlOjpzd2FwQnVmZmVycygpCiB2b2lkIEdMWFRyYW5zcG9ydFN1cmZh
Y2U6OmRlc3Ryb3koKQogewogICAgIGRlc3Ryb3lXaW5kb3coKTsKKyAgICBtX2J1ZmZlckhhbmRs
ZSA9IDA7CiB9CiAKICNlbmRpZgpAQCAtODgsNiArOTAsNyBAQCB2b2lkIEdMWFBCdWZmZXI6Omlu
aXRpYWxpemUoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2RyYXdhYmxlID0gZ2xYQ3JlYXRl
UGJ1ZmZlcihkaXNwbGF5LCBjb25maWcsIHBidWZmZXJBdHRyaWJ1dGVzKTsKKyAgICBtX2J1ZmZl
ckhhbmRsZSA9IG1fZHJhd2FibGU7CiB9CiAKIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBHTFhQQnVm
ZmVyOjpjb25maWd1cmF0aW9uKCkKQEAgLTExMiw2ICsxMTUsNyBAQCB2b2lkIEdMWFBCdWZmZXI6
OmZyZWVSZXNvdXJjZXMoKQogCiAgICAgZ2xYRGVzdHJveVBidWZmZXIoZGlzcGxheSwgbV9kcmF3
YWJsZSk7CiAgICAgbV9kcmF3YWJsZSA9IDA7CisgICAgbV9idWZmZXJIYW5kbGUgPSAwOwogfQog
CiB2b2lkIEdMWFBCdWZmZXI6OnNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpCmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dM
WFN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
R0xYU3VyZmFjZS5oCmluZGV4IGNmMDFhNDUuLjRlODc2ODUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIEdMWFN1cmZhY2VfaAogI2RlZmluZSBHTFhTdXJmYWNl
X2gKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiAjaW5jbHVkZSAiR0xY
V2luZG93UmVzb3VyY2VzLmgiCiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYV2luZG93UmVzb3VyY2VzLmggU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5oCmluZGV4
IGI4MDU0ZjJiYy4uYzE3MzU1NyAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3N1cmZhY2VzL2dseC9HTFhXaW5kb3dSZXNvdXJjZXMuaAorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFdpbmRvd1Jlc291cmNlcy5oCkBA
IC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJYMTFXaW5kb3dSZXNvdXJjZXMuaCIKIAotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgSEFWRShHTFgpCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBVU0UoR0xYKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgv
WDExV2luZG93UmVzb3VyY2VzLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
dXJmYWNlcy9nbHgvWDExV2luZG93UmVzb3VyY2VzLmNwcAppbmRleCA3NTVhNDg4Li42MDI5M2U3
IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4
L1gxMVdpbmRvd1Jlc291cmNlcy5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9YMTFXaW5kb3dSZXNvdXJjZXMuY3BwCkBAIC0zNiw4ICszNiwxMyBA
QCBQbGF0Zm9ybVNoYXJlZFJlc291cmNlcyogU2hhcmVkWDExUmVzb3VyY2VzOjptX3N0YXRpY1No
YXJlZFJlc291cmNlID0gMDsKIAogWDExT2ZmU2NyZWVuV2luZG93OjpYMTFPZmZTY3JlZW5XaW5k
b3coKQogICAgIDogR0xQbGF0Zm9ybVN1cmZhY2UoKQorICAgICwgbV9zaGFyZWRSZXNvdXJjZXMo
MCkKIHsKICAgICBtX3NoYXJlZFJlc291cmNlcyA9IFBsYXRmb3JtU2hhcmVkUmVzb3VyY2VzOjpj
cmVhdGUoKTsKKworICAgIGlmICghbV9zaGFyZWRSZXNvdXJjZXMpCisgICAgICAgIHJldHVybjsK
KwogICAgIG1fc2hhcmVkRGlzcGxheSA9IG1fc2hhcmVkUmVzb3VyY2VzLT5uYXRpdmVEaXNwbGF5
KCk7CiB9CiAKQEAgLTQ4LDE2ICs1MywxOSBAQCBYMTFPZmZTY3JlZW5XaW5kb3c6On5YMTFPZmZT
Y3JlZW5XaW5kb3coKQogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OnNldEdlb21ldHJ5KGNvbnN0
IEludFJlY3QmIG5ld1JlY3QpCiB7CiAgICAgR0xQbGF0Zm9ybVN1cmZhY2U6OnNldEdlb21ldHJ5
KG5ld1JlY3QpOwotICAgIFhSZXNpemVXaW5kb3cobV9zaGFyZWRSZXNvdXJjZXMtPngxMURpc3Bs
YXkoKSwgbV9kcmF3YWJsZSwgbmV3UmVjdC53aWR0aCgpLCBuZXdSZWN0LmhlaWdodCgpKTsKKyAg
ICBYUmVzaXplV2luZG93KG1fc2hhcmVkUmVzb3VyY2VzLT54MTFEaXNwbGF5KCksIG1fYnVmZmVy
SGFuZGxlLCBuZXdSZWN0LndpZHRoKCksIG5ld1JlY3QuaGVpZ2h0KCkpOwogfQogCiB2b2lkIFgx
MU9mZlNjcmVlbldpbmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKIHsKKyAgICBpZiAoIW1f
c2hhcmVkUmVzb3VyY2VzKQorICAgICAgICByZXR1cm47CisKICAgICBEaXNwbGF5KiBkaXNwbGF5
ID0gbV9zaGFyZWRSZXNvdXJjZXMtPngxMURpc3BsYXkoKTsKICAgICBpZiAoIWRpc3BsYXkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIEdMWEZCQ29uZmlnIGNvbmZpZyA9IG1fc2hhcmVkUmVzb3Vy
Y2VzLT5zdXJmYWNlQ29udGV4dENvbmZpZygpOworICAgIFBsYXRmb3JtU3VyZmFjZUNvbmZpZyBj
b25maWcgPSBtX3NoYXJlZFJlc291cmNlcy0+c3VyZmFjZUNvbnRleHRDb25maWcoKTsKIAogICAg
IGlmICghY29uZmlnKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJldHJpZXZlIGEg
dmFsaWQgY29uZmlnaXJhdGlvbi4iKTsKQEAgLTgwLDMzICs4OCwzMyBAQCB2b2lkIFgxMU9mZlNj
cmVlbldpbmRvdzo6Y3JlYXRlT2Zmc2NyZWVuV2luZG93KCkKICAgICBhdHRyaWJ1dGUuYmFja2dy
b3VuZF9waXhlbCA9IFdoaXRlUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmJvcmRl
cl9waXhlbCA9IEJsYWNrUGl4ZWwoZGlzcGxheSwgMCk7CiAgICAgYXR0cmlidXRlLmNvbG9ybWFw
ID0gY21hcDsKLSAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVdpbmRvdyhkaXNwbGF5LCB4V2luZG93
LCAwLCAwLCAxLCAxLCAwLCB2aXNJbmZvLT5kZXB0aCwgSW5wdXRPdXRwdXQsIHZpc0luZm8tPnZp
c3VhbCwgQ1dCYWNrUGl4ZWwgfCBDV0JvcmRlclBpeGVsIHwgQ1dDb2xvcm1hcCwgJmF0dHJpYnV0
ZSk7CisgICAgbV9idWZmZXJIYW5kbGUgPSBYQ3JlYXRlV2luZG93KGRpc3BsYXksIHhXaW5kb3cs
IDAsIDAsIDEsIDEsIDAsIHZpc0luZm8tPmRlcHRoLCBJbnB1dE91dHB1dCwgdmlzSW5mby0+dmlz
dWFsLCBDV0JhY2tQaXhlbCB8IENXQm9yZGVyUGl4ZWwgfCBDV0NvbG9ybWFwLCAmYXR0cmlidXRl
KTsKIAotICAgIGlmICghbV9kcmF3YWJsZSkgeworICAgIGlmICghbV9idWZmZXJIYW5kbGUpIHsK
ICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIG9mZnNjcmVlbiB3aW5kb3ciKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFhTZXRXaW5kb3dCYWNrZ3JvdW5kUGl4bWFw
KGRpc3BsYXksIG1fZHJhd2FibGUsIDApOwotICAgIFhDb21wb3NpdGVSZWRpcmVjdFdpbmRvdyhk
aXNwbGF5LCBtX2RyYXdhYmxlLCBDb21wb3NpdGVSZWRpcmVjdE1hbnVhbCk7CisgICAgWFNldFdp
bmRvd0JhY2tncm91bmRQaXhtYXAoZGlzcGxheSwgbV9idWZmZXJIYW5kbGUsIDApOworICAgIFhD
b21wb3NpdGVSZWRpcmVjdFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSwgQ29tcG9zaXRl
UmVkaXJlY3RNYW51YWwpOwogCiAgICAgaWYgKG1fc2hhcmVkUmVzb3VyY2VzLT5pc1hSZW5kZXJF
eHRlbnNpb25TdXBwb3J0ZWQoKSkKLSAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2RyYXdh
YmxlKTsKKyAgICAgICAgWE1hcFdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7CiAKIH0K
IAogdm9pZCBYMTFPZmZTY3JlZW5XaW5kb3c6OmRlc3Ryb3lXaW5kb3coKQogewotICAgIGlmICgh
bV9kcmF3YWJsZSkKKyAgICBpZiAoIW1fYnVmZmVySGFuZGxlKQogICAgICAgICByZXR1cm47CiAK
ICAgICBHTFBsYXRmb3JtU3VyZmFjZTo6ZGVzdHJveSgpOwotICAgIERpc3BsYXkqIGRpc3BsYXkg
PSBzaGFyZWREaXNwbGF5KCk7CisgICAgRGlzcGxheSogZGlzcGxheSA9IG1fc2hhcmVkUmVzb3Vy
Y2VzLT54MTFEaXNwbGF5KCk7CiAgICAgaWYgKCFkaXNwbGF5KQogICAgICAgICByZXR1cm47CiAK
LSAgICBYRGVzdHJveVdpbmRvdyhkaXNwbGF5LCBtX2RyYXdhYmxlKTsKLSAgICBtX2RyYXdhYmxl
ID0gMDsKKyAgICBYRGVzdHJveVdpbmRvdyhkaXNwbGF5LCBtX2J1ZmZlckhhbmRsZSk7CisgICAg
bV9idWZmZXJIYW5kbGUgPSAwOwogfQogCiB9CmRpZmYgLS1naXQgU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UgU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggNmU1NjEwYS4u
YTUxMzNlOSAxMDA2NDQKLS0tIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCisrKyBTb3Vy
Y2UvY21ha2UvT3B0aW9uc0VmbC5jbWFrZQpAQCAtMTY5LDYgKzE2OSw4IEBAIGlmIChFTkFCTEVf
V0VCR0wgT1IgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFKQogCiAgICAgaWYgKE9QRU5HTFhf
Rk9VTkQpCiAgICAgICAgIGFkZF9kZWZpbml0aW9ucygtREhBVkVfR0xYKQorICAgICAgICBhZGRf
ZGVmaW5pdGlvbnMoLURXVEZfVVNFX0dMWD0xKQorCiAgICAgICAgIGlmIChYMTFfWGNvbXBvc2l0
ZV9GT1VORCBBTkQgWDExX1hyZW5kZXJfRk9VTkQpCiAgICAgICAgICAgIHNldChVU0VfR1JBUEhJ
Q1NfU1VSRkFDRSAxKQogICAgICAgICBlbmRpZiAoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>