zookeeper-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From an...@apache.org
Subject [01/10] zookeeper git commit: ZOOKEEPER-3184: Use the same method to generate website as documentation
Date Fri, 07 Dec 2018 11:00:07 GMT
Repository: zookeeper
Updated Branches:
  refs/heads/website ef9d41acc -> a0fb79f81


http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/js/popper.min.js
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/js/popper.min.js b/src/main/resources/markdown/js/popper.min.js
new file mode 100644
index 0000000..79ccbf5
--- /dev/null
+++ b/src/main/resources/markdown/js/popper.min.js
@@ -0,0 +1,5 @@
+/*
+ Copyright (C) Federico Zivolo 2018
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
+ */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof
define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function
e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var
o=getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function
n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return
e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function
r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var
o=r(10)?document.body:null,n=e.offsetParent;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var
i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e
 ?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function
d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return
document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var
l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var
f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void
0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var
i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return
e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return
e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}fu
 nction m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function
h(e,t,o,n){return $(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?o['offset'+e]+n['margin'+('Height'===e?'Top':'Left')]+n['margin'+('Height'===e?'Bottom':'Right')]:0)}function
c(){var e=document.body,t=document.documentElement,o=r(10)&&getComputedStyle(t);return{height:h('Height',e,t,o),width:h('Width',e,t,o)}}function
g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var
n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var
p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c():{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var
u=t
 (e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void
0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&'HTML'===o.nodeName&&(a.top=$(a.top,0),a.left=$(a.left,0));var
b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var
y=parseFloat(m.marginTop,10),w=parseFloat(m.marginLeft,10);b.top-=h-y,b.bottom-=h-y,b.left-=c-w,b.right-=c-w,b.marginTop=y,b.marginLeft=w}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function
y(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=$(o.clientWidth,window.innerWidth||0),r=$(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return
g(d)}function w(e){var n=e.n
 odeName;return'BODY'===n||'HTML'===n?!1:'fixed'===t(e,'position')||w(o(e))}function E(e){if(!e||!e.parentElement||r())return
document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return
o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void
0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=y(d,p);else{var
l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var
f=b(l,d,p);if('HTML'===l.nodeName&&!w(d)){var m=c(),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else
s=f}return s.left+=i,s.top+=i,s.right-=i,s.bottom-=i,s}function x(e){var t=e.width,o=e.height;return
t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return
e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-
 p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return
le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var
t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return
l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return
b(o,i,n)}function S(e){var t=getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),n=parseFloat(t.marginLeft)+parseFloat(t.marginRight),i={width:e.offsetWidth+n,height:e.offsetHeight+o};return
i}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return
t[e]})}function C(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].inde
 xOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return
i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function D(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function
N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var
n=D(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return
i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated,
use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function
k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modi
 fiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=C(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function
W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function
B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var
i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function
H(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[B('t
 ransform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function
A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function
I(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var
r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function
F(){this.state.eventsEnabled||(this.state=I(this.reference,this.options,this.state,this.scheduleUpdate))}function
R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function
U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.re
 ference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function
j(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function
K(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function
q(e,t,o){var n=D(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return
e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+'
modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return
i}function G(e){return'end'===e?'start':'start'===e?'end':e}function z(e){var t=1<arguments.length&&void
0!==arguments[1]&&arguments[1],o=me.indexOf(e),n=me.slice(o+1).concat(me.slice(0,o));return
t?n.reverse():n}function V(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return
e;if(0===p.indexOf('%')){var s;switch(
 p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var
a;return a='vh'===p?$(document.documentElement.clientHeight,window.innerHeight||0):$(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return
r}function _(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return
e.trim()}),s=p.indexOf(D(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets
separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return
a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return
V(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y
 (o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function X(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return
o=Y(+n)?[+n,0]:_(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var
J=Math.min,Q=Math.round,Z=Math.floor,$=Math.max,ee='undefined'!=typeof window&&'undefined'!=typeof
document,te=['Edge','Trident','Firefox'],oe=0,ne=0;ne<te.length;ne+=1)if(ee&&0<=navigator.userAgent.indexOf(te[ne])){oe=1;break}var
i=ee&&window.Promise,ie=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var
t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=ee&&!!(window.MSInputMethodContext&&document.documentMode),pe=ee&&/MSIE
10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot
call a class as a function'
 )},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in
o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return
o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var
t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return
e},fe=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],me=fe.slice(3),he={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ce=function(){function
t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return
requestAnimationFrame(i.update)},this.update=ie(this.update.bi
 nd(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return
le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var
p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return
de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return
H.call(this)}},{key:'enableEventListeners',value:function(){return F.call(this)}},{key:'disableEventListeners',value:function(){return
U.call(this)}}]),t}();return 
 ce.Utils=('undefined'==typeof window?global:window).PopperUtils,ce.placements=fe,ce.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var
t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return
e}},offset:{order:200,enabled:!0,fn:X,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var
o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var
n=B('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var
a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var
l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];
 return f[e]<a[e]&&!t.escapeWithReference&&(o=$(f[e],a[e])),ae({},e,o)},secondary:function(e){var
o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=J(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return
l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var
t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return
o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var
n;if(!q(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof
i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.pop
 per.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper
element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var
b=d[m]+d[l]/2-u/2,y=t(e.instance.popper),w=parseFloat(y['margin'+f],10),E=parseFloat(y['border'+f+'Width'],10),v=b-e.offsets.popper[m]-w-E;return
v=$(J(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,Q(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return
e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.spli
 t('-')[1]||'',p=[];switch(t.behavior){case he.FLIP:p=[n,i];break;case he.CLOCKWISE:p=z(n);break;case
he.COUNTERCLOCKWISE:p=z(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return
e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,y=-1!==['top','bottom'].indexOf(n),w=!!t.flipVariations&&(y&&'start'===r&&h||y&&'end'===r&&c||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),w&&(r=G(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'
 viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return
i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!q(e.instance.modifiers,'hide','preventOverflow'))return
e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return
e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return
e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=D(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void
0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modif
 ier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h={left:Z(i.left),top:Q(i.top),bottom:Q(i.bottom),right:Z(i.right)},c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?-f.height+h.bottom:h.top,s='right'==g?-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px,
'+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var y='bottom'==c?-1:1,w='right'==g?-1:1;m[c]=d*y,m[g]=s*w,m.willChange=c+',
'+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return
j(e.instance.popper,e.styles),K(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var
r=L(i,t,e,
 o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return
t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void
0}}},ce});
+//# sourceMappingURL=popper.min.js.map

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/lists.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/lists.md b/src/main/resources/markdown/lists.md
new file mode 100644
index 0000000..5350696
--- /dev/null
+++ b/src/main/resources/markdown/lists.md
@@ -0,0 +1,53 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# ZooKeeper Mailing Lists
+
+## Users
+
+If you use ZooKeeper, please subscribe to the ZooKeeper user mailing list.
+
+The ZooKeeper user mailing list is: [user@zookeeper.apache.org](mailto:user@zookeeper.apache.org)
+
+* [Subscribe to List](mailto:user-subscribe@zookeeper.apache.org)
+* [Unsubscribe from List](mailto:user-unsubscribe@zookeeper.apache.org)
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-user/)
+* [Older Archives (Hadoop, pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-user/)
+
+Note
+In order to post to the list, it is necessary to first subscribe to it.
+
+
+## Developers
+
+If you'd like to contribute to ZooKeeper, please subscribe to the ZooKeeper developer mailing
list.
+
+The ZooKeeper developer mailing list is : [dev@zookeeper.apache.org](mailto:dev@zookeeper.apache.org)
+
+* [Subscribe to List](mailto:dev-subscribe@zookeeper.apache.org)
+* [Unsubscribe from List](mailto:dev-unsubscribe@zookeeper.apache.org)
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-dev/)
+* [Older Archives (Hadoop, pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-dev/)
+
+Note
+In order to post to the list, it is necessary to first subscribe to it.
+
+## Commits
+
+If you'd like to see changes made in ZooKeeper's version control system then subscribe to
the ZooKeeper commit mailing list.
+
+* [Subscribe to List](mailto:commits-subscribe@zookeeper.apache.org)
+* [Unsubscribe from List](mailto:commits-unsubscribe@zookeeper.apache.org)
+* [Archives](https://mail-archives.apache.org/mod_mbox/zookeeper-commits/)
+* [Older Archives (Hadoop, pre-TLP)](https://mail-archives.apache.org/mod_mbox/hadoop-zookeeper-commits/)

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/privacy.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/privacy.md b/src/main/resources/markdown/privacy.md
new file mode 100644
index 0000000..fce090f
--- /dev/null
+++ b/src/main/resources/markdown/privacy.md
@@ -0,0 +1,38 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# Privacy Policy
+
+Information about your use of this website is collected using server access logs and a tracking
+cookie. The collected information consists of the following:
+
+1. The IP address from which you access the website;
+1. The type of browser and operating system you use to access our site;
+1. The date and time you access our site;
+1. The pages you visit; and
+1. The addresses of pages from where you followed a link to our site.
+
+Part of this information is gathered using a tracking cookie set by the
+[Google Analytics](https://www.google.com/analytics/) service and handled by Google as described
in
+their [privacy policy](https://www.google.com/privacy.html). See your browser documentation
for
+instructions on how to disable the cookie if you prefer not to share this data with Google.
+
+We use the gathered information to help us make our site more useful to visitors and to better
+understand how and when our site is used. We do not track or collect personally identifiable
+information or associate gathered data with any personally identifying information from other
sources.
+
+By using this website, you consent to the collection of this data in the manner and for the
purpose
+described above.
+
+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/releases.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/releases.md b/src/main/resources/markdown/releases.md
new file mode 100644
index 0000000..bb2489e
--- /dev/null
+++ b/src/main/resources/markdown/releases.md
@@ -0,0 +1,223 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# Apache ZooKeeper&trade; Releases
+
+The Apache ZooKeeper system for distributed coordination is a high-performance service for
building distributed applications.
+
+* [Download](#download)
+* [Release Notes](#releasenotes)
+* [News](#news)
+
+<a name="download"></a>
+## Download
+
+Active releases may be downloaded from Apache mirrors: [Download](https://www.apache.org/dyn/closer.cgi/zookeeper/)
+
+On the mirror, all recent releases are available.
+
+Older releases are available in the [archive](https://archive.apache.org/dist/zookeeper/).
+
+You can verify the integrity of a downloaded release using the PGP signatures and hashes
(MD5 or SHA1) hosted at the main [Apache distro site](https://apache.org/dist/zookeeper/).
 For additional information, refer to the Apache documentation for [verifying the integrity
of Apache project releases](https://www.apache.org/dyn/closer.cgi#verify).
+
+<a name="releasenotes"></a>
+## Release Notes
+
+Release notes for Apache Zookeeper releases are available in Jira: [Browse release notes](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
+
+<a name="news"></a>
+## News
+
+### 15 July, 2018: release 3.4.13 available
+
+This is a bugfix release. It fixes 17 issues, including issues such as ZOOKEEPER-2959 that
could cause data loss when observer is used, and ZOOKEEPER-2184 that prevents ZooKeeper Java
clients working in dynamic IP (container / cloud) environment. See [ZooKeeper 3.4.13 Release
Notes](https://zookeeper.apache.org/doc/r3.4.13/releasenotes.html) for details.
+
+### 17 May, 2018: release 3.5.4-beta available
+
+3.5.4-beta is the second beta in the planned 3.5 release line leading up to a stable 3.5
release. It comprises 113 bug fixes and improvements.
+
+Release 3.5.3 added a new feature ZOOKEEPER-2169 "Enable creation of nodes with TTLs". There
was a major oversight when TTL nodes were implemented. The session ID generator for each server
is seeded with the configured Server ID in the high byte. TTL Nodes were using the highest
bit to denote a TTL node when used in the ephemeral owner. This meant that Server IDs >
127 that created ephemeral nodes would have those nodes always considered TTL nodes (with
the TTL being essentially a random number). ZOOKEEPER-2901 fixes the issue. By default TTL
is disabled and must now be enabled in zoo.cfg. When TTL Nodes are enabled, the max Server
ID changes from 255 to 254. See the documentation for TTL in the administrator guide (or the
referenced JIRAs) for more details.
+
+### 1 May, 2018: release 3.4.12 available
+
+This release fixes 22 issues, including issues that affect incorrect handling of the dataDir
and the dataLogDir.  See [ZooKeeper 3.4.12 Release Notes](https://zookeeper.apache.org/doc/r3.4.12/releasenotes.html)
for details.
+
+### 9 November, 2017: release 3.4.11 available
+
+This release fixes 53 issues, it includes support for Java 9 and other critical bug fixes.
 See [ZooKeeper 3.4.11 Release Notes](https://zookeeper.apache.org/doc/r3.4.11/releasenotes.html)
for details.
+
+**WARNING**: [ZOOKEEPER-2960](https://issues.apache.org/jira/browse/ZOOKEEPER-2960) was recently
identified as a regression in 3.4.11 affecting the specification of separate dataDir and dataLogDir
configuration parameters (vs the default which is a single directory for both). It will be
addressed in 3.4.12.
+
+### 17 April, 2017: release 3.5.3-beta available
+
+3.5.3-beta is the first beta in the planned 3.5 release line leading up to a stable 3.5 release.
It comprises 76 bug fixes and improvements. This release includes important security fix around
dynamic reconfigure API, improvements on test infrastructure, and new features such as TTL
node.
+
+### 30 March, 2017: release 3.4.10 available
+
+This release fixes 43 issues, including security feature QuorumPeer mutual authentication
via SASL and other critical bugs. See [ZooKeeper 3.4.10 Release Notes](https://zookeeper.apache.org/doc/r3.4.10/releasenotes.html)
for details.
+
+### 03 September, 2016: release 3.4.9 available
+
+This release fixes many critical bugs and improvements. See [ZooKeeper 3.4.9 Release Notes](https://zookeeper.apache.org/doc/r3.4.9/releasenotes.html)
for details.
+
+### 20 July, 2016: release 3.5.2-alpha available
+
+This is an alpha quality release that contains many bug fixes and improvements.
+
+### 20 February, 2016: release 3.4.8 available
+
+This release fixes 9 issues, most notably a deadlock when shutting down ZooKeeper. See [ZooKeeper
3.4.8 Release Notes](https://zookeeper.apache.org/doc/r3.4.8/releasenotes.html) for details.
+
+### 31 August, 2015: release 3.5.1-alpha available
+
+This is an alpha quality release that contains many bug fixes and improvements. It also introduces
a few new features, including container znodes and SSL support for client-server communication.
+
+See the [ZooKeeper 3.5.1-alpha Release Notes](https://zookeeper.apache.org/doc/r3.5.1-alpha/releasenotes.html)
for details.
+
+### 6 August, 2014: release 3.5.0-alpha available
+
+This release is alpha quality and contains many improvements, new features, bug fixes and
optimizations.
+
+See the [ZooKeeper 3.5.0-alpha Release Notes](https://zookeeper.apache.org/doc/r3.5.0-alpha/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 10 March, 2014: release 3.4.6 available
+
+The release fixes a critical bug that could prevent a server from joining an established
ensemble. See
+[ZooKeeper 3.4.6 Release Notes](https://zookeeper.apache.org/doc/r3.4.6/releasenotes.html)
for details.
+
+### 18 November, 2012: release 3.4.5 available
+
+The release fixes a critical bug that could cause client connection issues. See
+[ZooKeeper 3.4.5 Release Notes](https://zookeeper.apache.org/doc/r3.4.5/releasenotes.html)
for details.
+
+### 23 September, 2012: release 3.4.4 available
+
+The release fixes a critical bug that could cause data inconsistency. See
+[ZooKeeper 3.4.4 Release Notes](https://zookeeper.apache.org/doc/r3.4.4/releasenotes.html)
for details.
+
+
+### 02 August, 2012: release 3.3.6 available
+
+The release fixes a critical bug that could cause data loss. See
+[ZooKeeper 3.3.6 Release Notes](https://zookeeper.apache.org/doc/r3.3.6/releasenotes.html)
for details.
+
+### 20 March, 2012: release 3.3.5 available
+
+The release fixes a critical bug that could cause data corruption. See
+[ZooKeeper 3.3.5 Release Notes](https://zookeeper.apache.org/doc/r3.3.5/releasenotes.html)
for details.
+
+### 13 Feb, 2012: release 3.4.3 available
+
+This release fixes  critical bugs in 3.4.2. See
+[ZooKeeper 3.4.3 Release Notes](https://zookeeper.apache.org/doc/r3.4.3/releasenotes.html)
for details.
+
+We are now upgrading this release to a beta release given that we have had quite a few bug
fixes to 3.4 branch and 3.4 releases have been out for some time now.
+
+### 29 Dec, 2011: release 3.4.2 available
+
+This release fixes a critical bug in 3.4.1. See
+[ZooKeeper 3.4.2 Release Notes](https://zookeeper.apache.org/doc/r3.4.2/releasenotes.html)
for details.
+
+Please note that this is still an alpha release and we do not recommend this for production.
Please use the stable release line 3.3.* for production use. 
+
+
+### 16 Dec, 2011: release 3.4.1 available
+
+This release fixes a critical bug with data loss in 3.4.0. See
+[ZooKeeper 3.4.1 Release Notes](https://zookeeper.apache.org/doc/r3.4.1/releasenotes.html)
for details.
+In case you are already using 3.4.0 release please upgrade ASAP.
+
+Please note that this is an alpha release and not ready for production as of now.
+
+### 26 Nov, 2011: release 3.3.4 available
+
+The release fixes a number of critical bugs that could cause data corruption. See
+[ZooKeeper 3.3.4 Release Notes](https://zookeeper.apache.org/doc/r3.3.4/releasenotes.html)
for details.
+
+### 22 Nov, 2011: release 3.4.0 available
+
+Due to data loss issues, this release has been removed from the downloads page. Release 3.4.1
is now available. 
+
+### 27 Feb, 2011: release 3.3.3 available
+
+The release fixes two critical bugs that could cause data corruption. It also addresses 12
other issues. See
+[ZooKeeper 3.3.3 Release Notes](https://zookeeper.apache.org/doc/r3.3.3/releasenotes.html)
for details.
+
+### 11 Nov, 2010: release 3.3.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.3.2 Release Notes](https://zookeeper.apache.org/doc/r3.3.2/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 17 May, 2010: release 3.3.1 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.3.1 Release Notes](https://zookeeper.apache.org/doc/r3.3.1/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 25 March, 2010: release 3.3.0 available
+
+This release contains many improvements, new features, bug fixes and optimizations.
+
+See the [ZooKeeper 3.3.0 Release Notes](https://zookeeper.apache.org/doc/r3.3.0/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 14 December, 2009: release 3.2.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.2.2 Release Notes](https://zookeeper.apache.org/doc/r3.2.2/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 14 December, 2009: release 3.1.2 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.1.2 Release Notes](https://zookeeper.apache.org/doc/r3.1.2/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 4 September, 2009: release 3.2.1 available
+
+This release contains a number of critical bug fixes.
+
+See the [ZooKeeper 3.2.1 Release Notes](https://zookeeper.apache.org/doc/r3.2.1/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 8 July, 2009: release 3.2.0 available
+
+This release contains many improvements, new features, bug fixes and optimizations.
+
+See the [ZooKeeper 3.2.0 Release Notes](https://zookeeper.apache.org/doc/r3.2.0/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 27 March, 2009: release 3.1.1 available
+
+This release contains a small number of bug fixes.
+
+See the [ZooKeeper 3.1.1 Release Notes](https://zookeeper.apache.org/doc/r3.1.1/releasenotes.html)
for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 13 February, 2009: release 3.1.0 available
+
+This release contains many improvements, new features, bug fixes and optimizations.
+
+See the ZooKeeper 3.1.0 Release Notes for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 4 December, 2008: release 3.0.1 available
+
+This release contains many improvements, new features, bug fixes and optimizations.
+
+See the ZooKeeper 3.0.1 Release Notes for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+### 27 October, 2008: release 3.0.0 available
+
+This release contains many improvements, new features, bug fixes and optimizations.
+
+See the ZooKeeper 3.0.0 Release Notes for details. Alternatively, you can look at the [Jira](https://issues.apache.org/jira/browse/ZOOKEEPER?report=com.atlassian.jira.plugin.system.project:changelog-panel)
issue log for all releases.
+
+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/a0fb79f8/src/main/resources/markdown/security.md
----------------------------------------------------------------------
diff --git a/src/main/resources/markdown/security.md b/src/main/resources/markdown/security.md
new file mode 100644
index 0000000..76038b0
--- /dev/null
+++ b/src/main/resources/markdown/security.md
@@ -0,0 +1,154 @@
+<!--
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+//-->
+
+# ZooKeeper Security
+
+The Apache Software Foundation takes security issues very seriously. Due to the infrastructure
+nature of the Apache ZooKeeper project specifically, we haven't had many reports over time,
but
+it doesn't mean that we haven't had concerns over some bugs and vulnerabilities. If you have
any
+concern or believe you have uncovered a vulnerability, we suggest that you get in touch via
the 
+e-mail address <a href="mailto:security@zookeeper.apache.org?Subject=[SECURITY] My security
issue"
+target="_top">security@zookeeper.apache.org</a>. In the message, try to provide
a description of
+the issue and ideally a way of reproducing it. Note that this security address should be
used
+only for undisclosed vulnerabilities. Dealing with known issues should be handled regularly

+via jira and the mailing lists. **Please report any security problems to the project security
+address before disclosing it publicly.**  
+
+The ASF Security team maintains a page with a description of how vulnerabilities are handled,
check
+their <a href="https://www.apache.org/security/">Web page</a> for more information.
+
+## Vulnerability reports
+
+* [CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual authentication](#CVE-2018-8012)
+* [CVE-2017-5637: DOS attack on wchp/wchc four letter words (4lw)](#CVE-2017-5637)
+* [CVE-2016-5017: Buffer overflow vulnerability in ZooKeeper C cli shell](#CVE-2016-5017)
+
+
+<a name="CVE-2018-8012"></a>
+### CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual authentication
+
+Severity: Critical
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper prior to 3.4.10
+ZooKeeper 3.5.0-alpha through 3.5.3-beta
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Description:
+No authentication/authorization is enforced when a server attempts to join a quorum. As a
result an
+arbitrary end point could join the cluster and begin propagating counterfeit changes to the
leader.
+
+Mitigation:
+Upgrade to 3.4.10 or later (3.5.4-beta or later if on the 3.5 branch) and enable Quorum Peer
mutual
+authentication.
+
+Alternately ensure the ensemble election/quorum communication is protected by a firewall
as this
+will mitigate the issue.
+
+See the documentation for more details on correct cluster administration.
+
+Credit:
+This issue was identified by Földi Tamás and Eugene Koontz
+
+References:
+https://issues.apache.org/jira/browse/ZOOKEEPER-1045
+https://cwiki.apache.org/confluence/display/ZOOKEEPER/Server-Server+mutual+authentication
+http://zookeeper.apache.org/doc/current/zookeeperAdmin.html
+
+
+<a name="CVE-2017-5637"></a>
+### CVE-2017-5637: DOS attack on wchp/wchc four letter words (4lw) {#CVE-2017-5637}
+
+Severity: moderate
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper 3.4.0 to 3.4.9
+ZooKeeper 3.5.0 to 3.5.2
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Note: The 3.5 branch is still beta at this time.
+
+Description:
+Two four letter word commands “wchp/wchc” are CPU intensive and could cause spike of
CPU utilization
+on ZooKeeper server if abused,
+which leads to the server unable to serve legitimate client requests. There is no known compromise
+which takes advantage of this vulnerability.
+
+Mitigation:
+This affects ZooKeeper ensembles whose client port is publicly accessible, so it is recommended
to
+protect ZooKeeper ensemble with firewall.
+Documentation has also been updated to clarify on this point. In addition, a patch (ZOOKEEPER-2693)
+is provided to disable "wchp/wchc” commands
+by default.
+- ZooKeeper 3.4.x users should upgrade to 3.4.10 or apply the patch.
+- ZooKeeper 3.5.x users should upgrade to 3.5.3 or apply the patch.
+
+References
+[1] https://issues.apache.org/jira/browse/ZOOKEEPER-2693
+
+
+<a name="CVE-2016-5017"></a>
+### CVE-2016-5017: Buffer overflow vulnerability in ZooKeeper C cli shell {#CVE-2016-5017}
+
+Severity: moderate
+
+Vendor:
+The Apache Software Foundation
+
+Versions Affected:
+ZooKeeper 3.4.0 to 3.4.8
+ZooKeeper 3.5.0 to 3.5.2
+The unsupported ZooKeeper 1.x through 3.3.x versions may be also affected
+
+Note: The 3.5 branch is still alpha at this time.
+
+Description:
+The ZooKeeper C client shells "cli_st" and "cli_mt" have a buffer
+overflow vulnerability associated with parsing of the input command
+when using the "cmd:<cmd>" batch mode syntax. If the command string
+exceeds 1024 characters a buffer overflow will occur. There is no
+known compromise which takes advantage of this vulnerability, and if
+security is enabled the attacker would be limited by client level
+security constraints. The C cli shell is intended as a sample/example
+of how to use the C client interface, not as a production tool - the
+documentation has also been clarified on this point.
+
+Mitigation:
+It is important to use the fully featured/supported Java cli shell rather
+than the C cli shell independent of version.
+
+- ZooKeeper 3.4.x users should upgrade to 3.4.9 or apply this
+[patch](https://git-wip-us.apache.org/repos/asf?p=zookeeper.git;a=commitdiff;h=27ecf981a15554dc8e64a28630af7a5c9e2bdf4f)
+
+- ZooKeeper 3.5.x users should upgrade to 3.5.3 when released or apply
+this [patch](https://git-wip-us.apache.org/repos/asf?p=zookeeper.git;a=commitdiff;h=f09154d6648eeb4ec5e1ac8a2bacbd2f8c87c14a)
+
+The patch solves the problem reported here, but it does not make the
+client ready for production use. The community has no plan to make
+this client production ready at this time, and strongly recommends that
+users move to the Java cli and use the C cli for illustration purposes only.
+
+
+Credit:
+This issue was discovered by Lyon Yang (@l0Op3r)
+
+References:
+[Apache ZooKeeper Security Page](https://zookeeper.apache.org/security.html)
+


Mime
View raw message