diff --git a/build.xml b/build.xml index c22b2009b1..1f9a535f22 100644 --- a/build.xml +++ b/build.xml @@ -5,7 +5,7 @@ - + diff --git a/contrib/ec2-testing/src/java/voldemort/utils/app/package.html b/contrib/ec2-testing/src/java/voldemort/utils/app/package.html new file mode 100644 index 0000000000..e81e47b06c --- /dev/null +++ b/contrib/ec2-testing/src/java/voldemort/utils/app/package.html @@ -0,0 +1,5 @@ + + + Classes dealing with starting / stopping / deploying Voldemort on EC2 + + \ No newline at end of file diff --git a/contrib/ec2-testing/src/java/voldemort/utils/impl/package.html b/contrib/ec2-testing/src/java/voldemort/utils/impl/package.html new file mode 100644 index 0000000000..8e6fbff847 --- /dev/null +++ b/contrib/ec2-testing/src/java/voldemort/utils/impl/package.html @@ -0,0 +1,5 @@ + + + Classes dealing with remote command execution / data copying on EC2 + + \ No newline at end of file diff --git a/contrib/ec2-testing/src/java/voldemort/utils/package.html b/contrib/ec2-testing/src/java/voldemort/utils/package.html new file mode 100644 index 0000000000..a875672e38 --- /dev/null +++ b/contrib/ec2-testing/src/java/voldemort/utils/package.html @@ -0,0 +1,5 @@ + + + Classes related to basic EC2 utils + + \ No newline at end of file diff --git a/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/benchmark/package.html b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/benchmark/package.html new file mode 100644 index 0000000000..062749d52c --- /dev/null +++ b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/benchmark/package.html @@ -0,0 +1,5 @@ + + + Classes dealing with Benchmarking generation of read-only stores. + + \ No newline at end of file diff --git a/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/checksum/package.html b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/checksum/package.html new file mode 100644 index 0000000000..f5f8a166b2 --- /dev/null +++ b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/checksum/package.html @@ -0,0 +1,5 @@ + + + Classes dealing with various checksum policies for read-only stores. + + \ No newline at end of file diff --git a/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/fetcher/package.html b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/fetcher/package.html new file mode 100644 index 0000000000..6421483877 --- /dev/null +++ b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/fetcher/package.html @@ -0,0 +1,5 @@ + + + Classes dealing with fetchers associated with HDFS + + \ No newline at end of file diff --git a/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/package.html b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/package.html new file mode 100644 index 0000000000..52dd0172cd --- /dev/null +++ b/contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/package.html @@ -0,0 +1,5 @@ + + + Hadoop code for generating read-only stores + + \ No newline at end of file diff --git a/contrib/krati/src/java/voldemort/store/krati/package.html b/contrib/krati/src/java/voldemort/store/krati/package.html new file mode 100644 index 0000000000..0c260623ca --- /dev/null +++ b/contrib/krati/src/java/voldemort/store/krati/package.html @@ -0,0 +1,5 @@ + + + Storage engine backed by Krati + + \ No newline at end of file diff --git a/docs/fun_projects.txt b/docs/fun_projects.txt index ad2b5f28cb..932f882ebc 100644 --- a/docs/fun_projects.txt +++ b/docs/fun_projects.txt @@ -1,19 +1,44 @@ -Here are a few technically interesting projects that are stand-alone enough -that someone can do them without having to learn the rest of the code - -1. Merkle tree log -We want to be able to quickly compare the contents of two key-value stores so we can replicate values when (1) a new server comes online or (2) a server is down -for an extended period of time or (3) we batch compute values offline. A merkle tree is an n-way tree of values where the -value stored at the leaf is the checksum of a value in the datastore, and parent nodes contain the checksum of all checksums. -This makes it possible to determine that two stores are identical (and computing the differing keys) in only a logarithmic number of comparisons. - -2. Future-based client -Create a storeclient or store implementation that returns Versioned objects that behave as a java.util.concurrent.Future. That is, the methods return immediately -but the returned Versioned may block when getObject() or getVersion() is called until the computation is complete. This makes it -easy to do many parallel fetches without the client needing to do any of the threadpooling. Can this be done using the existing threadpool? - -3. Non-blocking server & RoutingStore -Investigate the possibility of using java.nio for the SocketServer to potentially reduce the number of threads needed. This probably requires doing both -the router and the server at the same time. Probably a threadsafe state machine needs to be created for each request and incremented as responses come back -in. This probably won't make the network operations faster but will reduce the overhead of the threading involved in routing and bound the number of threads needed. -Apache Mina may be helpful in doing this. \ No newline at end of file +This is a list of fun project ideas that no one is currently working on. + +a) Publish/Subscribe API + +Storage systems have become much more specialized in recent years with each system providing expertise in certain areas—Hadoop and proprietary data warehouses provide batch processing capabilities, Search indexes provide support for complex ranked text queries, and a variety of distributed databases have sprung up. Voldemort is a specialized key-value system, but the same data stored in Voldemort may need to be indexed by search, churned over in Hadoop, or otherwise processed by another system. Each of these systems needs the ability to subscribe to the changes happening in Voldemort and get a stream of such changes that they can process in their own specialized way. + +Indeed even Voldemort nodes could subscribe to one another as a quick catch-up mechanism for recovering from failure. + +Amazon has implemented this functionality as a “Merkle tree” data structure in their Dynamo system which allows nodes to compare their contents quickly and catch up to differences they have missed, but this is not the only approach. It could be a simple secondary index that implements a node-specific logical counter that tracks modification number for each key. + +The api that would be provided would be something like getAllChangesSince(int changeNumber), and this api would provide the latest change for each key. + +b) Operational Interface + +One of the primary problems for a practical distributed system is knowing the state of the system. Voldemort has a rudimentary GUI that provides basic information. This project would be to make a first rate management GUI and corresponding control functionality to be able to know the performance and availability of each node in the system as well as perform more intense operations like starting / stopping nodes, restoring from replication, rebalancing, etc. + +c) Scala Voldemort Shell + +Voldemort comes with a very simple text shell. A better way to build such a thing is to fully integrate a language with an interpreter and provide a set of predefined administrative commands as functions in the shell. Scala has a flexible syntax and integrates easily with Java so it would be a good choice for such a shell. + +d) Support for LevelDB storage engine + +Since Voldemort supports a pluggable storage engine interface, we definitely want to try out other solutions. For example, we have a Krati based storage engine in contrib. Another storage engine which is picking up a momentum is Google’s LevelDB . The first phase of this project would require building JNA / JNI bindings for the storage engine followed by the integration with Voldemort. + +e) REST based API + +Besides the existing Ruby / Python clients having a REST based API would increase adoption amongst the web community. A good v1 could derive ideas from existing well know systems like Riak + +f) Memcache protocol support + +An easy project would be to provide the same API as Memcache. + +g) Duplex request support + +Preliminary work has been done to support duplexing the our socket requests. This would minimize the impact of network latency across data-centers. Some initial thoughts can be found here [ http://github.com/kirktrue/voldemort/wiki/Duplex-Request-Response-Communication ] + +h) Maven support + +We want to add the ability to push jars in a central Maven repository. + +i) Better configuration system + +The XML files can get really out of control once the cluster size increases. Migrating from XML to YAML would alleviate this problem a bit. +In the long term we would like to come up with a better configuration system ( Explore Zookeeper? ) diff --git a/docs/logical_arch.graffle b/docs/logical_arch.graffle index 13dbd9278c..4a616ff16d 100644 --- a/docs/logical_arch.graffle +++ b/docs/logical_arch.graffle @@ -1,20 +1,40 @@ - + ActiveLayerIndex 0 + ApplicationVersion + + com.omnigroup.OmniGraffle + 138.17.0.133677 + AutoAdjust - CanvasColor + BackgroundGraphic - w - 1 + Bounds + {{0, 0}, {1157.6, 754.8}} + Class + SolidGraphic + ID + 2 + Style + + shadow + + Draws + NO + + stroke + + Draws + NO + + CanvasOrigin {0, 0} - CanvasScale - 1 ColumnAlign 1 ColumnSpacing @@ -24,18 +44,20 @@ Creator Jay Kreps DisplayScale - 1 in = 1 in + 1 0/72 in = 1.0000 in GraphDocumentVersion - 5 + 6 GraphicsList Bounds - {{90.5, 244.5}, {81, 17}} + {{23, 265.53}, {70, 17}} Class ShapedGraphic FitText YES + Flow + Resize FontInfo Color @@ -49,16 +71,7 @@ 10 ID - 38 - Line - - ID - 37 - Position - 0.46448087692260742 - RotationType - 0 - + 39 Shape Rectangle Style @@ -77,46 +90,27 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural -\f0\fs28 \cf0 Responses} - - - - Class - LineGraphic - ID - 37 - Points - - {131, 83} - {131, 449} - - Style - - stroke - - GapRatio - 0.5 - HeadArrow - 0 - TailArrow - Arrow - Width - 4 - +\f0\fs28 \cf0 Requests} + VerticalPad + 0 + Wrap + NO Bounds - {{23, 245.091}, {70, 17}} + {{98.5, 265.852}, {81, 17}} Class ShapedGraphic FitText YES + Flow + Resize FontInfo Color @@ -130,13 +124,13 @@ 10 ID - 36 + 38 Line ID - 24 + 37 Position - 0.4453551173210144 + 0.47131147980690002 RotationType 0 @@ -158,12 +152,41 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural -\f0\fs28 \cf0 Requests} +\f0\fs28 \cf0 Responses} + VerticalPad + 0 + + Wrap + NO + + + Class + LineGraphic + ID + 37 + Points + + {139, 83} + {139, 489} + + Style + + stroke + + GapRatio + 0.5 + HeadArrow + 0 + TailArrow + Arrow + Width + 4 + @@ -173,8 +196,8 @@ 24 Points - {58, 90.5905} - {58, 456.591} + {63, 92} + {63, 489} Style @@ -193,11 +216,13 @@ Bounds - {{416.544, 374.361}, {18, 17}} + {{504.572, 388.801}, {18, 17}} Class ShapedGraphic FitText YES + Flow + Resize FontInfo Color @@ -239,13 +264,17 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\fs28 \cf0 ?} + VerticalPad + 0 + Wrap + NO Class @@ -254,9 +283,9 @@ 34 Points - {451.955, 357.595} - {430, 381} - {371, 396} + {561.613, 370.649} + {499, 404} + {442, 419} Style @@ -278,11 +307,13 @@ Bounds - {{406.503, 265.091}, {18, 17}} + {{510.298, 272.286}, {18, 17}} Class ShapedGraphic FitText YES + Flow + Resize FontInfo Color @@ -324,13 +355,17 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\fs28 \cf0 ?} + VerticalPad + 0 + Wrap + NO Class @@ -339,9 +374,9 @@ 22 Points - {444.303, 298.91} - {412, 272} - {361, 266} + {567.821, 312.157} + {506, 275} + {442, 270} Style @@ -363,7 +398,7 @@ Bounds - {{392, 299.23}, {175, 58}} + {{489, 312.414}, {255, 58}} Class ShapedGraphic ID @@ -404,19 +439,20 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\b\fs28 \cf0 Network Client & Server\ -(HTTP/Sockets/NIO)\ -(Optional)} +( HTTP / Sockets / NIO )} + VerticalPad + 0 Bounds - {{187, 83}, {184, 58}} + {{187, 83}, {255, 58}} Class ShapedGraphic ID @@ -457,17 +493,19 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\b\fs28 \cf0 Client API} + VerticalPad + 0 Bounds - {{187, 141}, {184, 58}} + {{187, 141}, {255, 58}} Class ShapedGraphic ID @@ -508,17 +546,19 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\b\fs28 \cf0 Conflict Resolution} + VerticalPad + 0 Bounds - {{187, 199}, {184, 58}} + {{187, 199}, {255, 58}} Class ShapedGraphic ID @@ -559,17 +599,19 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural -\f0\b\fs28 \cf0 Serialization} +\f0\b\fs28 \cf0 Serialization / Compression} + VerticalPad + 0 Bounds - {{187, 330}, {184, 58}} + {{187, 344}, {255, 58}} Class ShapedGraphic ID @@ -610,17 +652,20 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural -\f0\b\fs28 \cf0 Faiover (Hinted handoff)} +\f0\b\fs28 \cf0 Consistency mechanisms\ +( Read repair / Hinted handoff )} + VerticalPad + 0 Bounds - {{187, 272}, {184, 58}} + {{187, 286}, {255, 58}} Class ShapedGraphic ID @@ -661,17 +706,19 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural -\f0\b\fs28 \cf0 Routing & Read Repair} +\f0\b\fs28 \cf0 Routing} + VerticalPad + 0 Bounds - {{187, 402}, {184, 58}} + {{187, 431}, {255, 58}} Class ShapedGraphic ID @@ -712,19 +759,21 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\b\fs28 \cf0 Storage Engine\ -(BDB/MySQL/Memory +(BDB / MySQL / Memory / Read-only \fs20 )} + VerticalPad + 0 Bounds - {{169, 25}, {220, 29}} + {{204.5, 33}, {220, 29}} Class ShapedGraphic FitText @@ -763,12 +812,14 @@ Text Text - {\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;} + {\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540 +{\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural \f0\fs48 \cf0 Logical Architecture} + VerticalPad + 0 Wrap NO @@ -781,11 +832,9 @@ GuidesVisible YES HPages - 1 + 2 ImageCounter 1 - IsPalette - NO KeepToScale Layers @@ -802,80 +851,30 @@ LayoutInfo - + + Animate + NO + circoMinDist + 18 + circoSeparation + 0.0 + layoutEngine + dot + neatoSeparation + 0.0 + twopiSeparation + 0.0 + LinksVisible NO MagnetsVisible NO - MasterSheet - Master 1 MasterSheets - - - ActiveLayerIndex - 0 - AutoAdjust - - CanvasColor - - w - 1 - - CanvasOrigin - {0, 0} - CanvasScale - 1 - ColumnAlign - 1 - ColumnSpacing - 36 - DisplayScale - 1 in = 1 in - GraphicsList - - GridInfo - - HPages - 1 - IsPalette - NO - KeepToScale - - Layers - - - Lock - NO - Name - Layer 1 - Print - YES - View - YES - - - LayoutInfo - - Orientation - 2 - OutlineStyle - Basic - RowAlign - 1 - RowSpacing - 36 - SheetTitle - Master 1 - UniqueID - 1 - VPages - 1 - - + ModificationDate - 2008-08-04 13:00:56 -0700 + 2011-07-15 14:54:11 -0700 Modifier - Jay Kreps + Roshan Sumbaly NotesVisible NO Orientation @@ -891,12 +890,12 @@ NSBottomMargin float - 0 + 18.6 NSLeftMargin float - 0 + 16.6 NSPaperSize @@ -906,14 +905,1760 @@ NSRightMargin float - 0 + 16.6 NSTopMargin float - 0 + 18.6 + PrintOnePage + + QuickLookPreview + + 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 + 4PMd3gk9riK8O9ACmrq3qWJJtAl4MBrVcbR2NIB5FXN2fDEArAFjiBX0rtN+ATqItIlx + PzkQrHFmcNxvthaHggb4J+qH7lqU62Gj0CZvPADuTPPj++ZMNxEyi7IIBceARUymjpzY + Sc1jT7qXmeaD+ROD+uI12yEfn3QBc1ya5DfA0Hj/o1ocFsp7EJ7I7PnnsWk1UD+ttlid + YfetD22gRCwjuUNigOtYIYc8GMjPtO/Jbp4mbH79fAQOCjst3tyZOLLL0PSkU2JRdZbG + 089akQn4tx48UfTWB5xx3AD3W/qx+QAeSQ6XFOTQcYzGhioI4ELMJAMX+jUzU1GIP8a9 + e10dWxgK6a4h8me+JVsYcr4PqGoOu8nHwFgEx9gX5g/Td45XKPATW3i7lv+AYXJ4J80e + 7HdwO5z+2OAdkNg6xBKwo/fm6fX+9fDx07Dbz7h59X9CmwvyCmVuZHN0cmVhbQplbmRv + YmoKNiAwIG9iagoyODY1CmVuZG9iagozIDAgb2JqCjw8IC9UeXBlIC9QYWdlIC9QYXJl + bnQgNCAwIFIgL1Jlc291cmNlcyA3IDAgUiAvQ29udGVudHMgNSAwIFIgL01lZGlhQm94 + IFswIDAgMTE1Ny42IDc1NC44XQovQ3JvcEJveCBbMCAwIDExNTcuNiA3NTQuOF0gPj4K + ZW5kb2JqCjcgMCBvYmoKPDwgL1Byb2NTZXQgWyAvUERGIC9UZXh0IC9JbWFnZUIgL0lt + YWdlQyAvSW1hZ2VJIF0gL0NvbG9yU3BhY2UgPDwgL0NzMSA4IDAgUgovQ3MyIDIzIDAg + UiA+PiAvRm9udCA8PCAvRjIuMCAyNiAwIFIgL0YxLjAgMjQgMCBSID4+IC9YT2JqZWN0 + IDw8IC9JbTQgMTUgMCBSCi9JbTUgMTcgMCBSIC9JbTYgMTkgMCBSIC9JbTEgOSAwIFIg + L0ltMyAxMyAwIFIgL0ltMiAxMSAwIFIgL0ltNyAyMSAwIFIgPj4KL1NoYWRpbmcgPDwg + L1NoNCAyOSAwIFIgL1NoNSAzMCAwIFIgL1NoMiAyNyAwIFIgL1NoMyAyOCAwIFIgL1No + NiAzMSAwIFIgL1NoNwozMiAwIFIgL1NoMSAyNSAwIFIgPj4gPj4KZW5kb2JqCjI5IDAg + b2JqCjw8IC9Db2xvclNwYWNlIDggMCBSIC9TaGFkaW5nVHlwZSAzIC9Db29yZHMgWyAw + IDAgMCAwIDAgMTMxLjM1NTQgXSAvRG9tYWluClsgMCAxIF0gL0V4dGVuZCBbIGZhbHNl + IGZhbHNlIF0gL0Z1bmN0aW9uIDMzIDAgUiA+PgplbmRvYmoKMzAgMCBvYmoKPDwgL0Nv + bG9yU3BhY2UgOCAwIFIgL1NoYWRpbmdUeXBlIDMgL0Nvb3JkcyBbIDAgMCAwIDAgMCAx + MzEuMzU1NCBdIC9Eb21haW4KWyAwIDEgXSAvRXh0ZW5kIFsgZmFsc2UgZmFsc2UgXSAv + RnVuY3Rpb24gMzQgMCBSID4+CmVuZG9iagoyNyAwIG9iago8PCAvQ29sb3JTcGFjZSA4 + IDAgUiAvU2hhZGluZ1R5cGUgMyAvQ29vcmRzIFsgMCAwIDAgMCAwIDEzMS4zNTU0IF0g + L0RvbWFpbgpbIDAgMSBdIC9FeHRlbmQgWyBmYWxzZSBmYWxzZSBdIC9GdW5jdGlvbiAz + NSAwIFIgPj4KZW5kb2JqCjI4IDAgb2JqCjw8IC9Db2xvclNwYWNlIDggMCBSIC9TaGFk + aW5nVHlwZSAzIC9Db29yZHMgWyAwIDAgMCAwIDAgMTMxLjM1NTQgXSAvRG9tYWluClsg + MCAxIF0gL0V4dGVuZCBbIGZhbHNlIGZhbHNlIF0gL0Z1bmN0aW9uIDM2IDAgUiA+Pgpl + bmRvYmoKMzEgMCBvYmoKPDwgL0NvbG9yU3BhY2UgOCAwIFIgL1NoYWRpbmdUeXBlIDMg + L0Nvb3JkcyBbIDAgMCAwIDAgMCAxMzEuMzU1NCBdIC9Eb21haW4KWyAwIDEgXSAvRXh0 + ZW5kIFsgZmFsc2UgZmFsc2UgXSAvRnVuY3Rpb24gMzcgMCBSID4+CmVuZG9iagozMiAw + IG9iago8PCAvQ29sb3JTcGFjZSA4IDAgUiAvU2hhZGluZ1R5cGUgMyAvQ29vcmRzIFsg + MCAwIDAgMCAwIDEzMS4zNTU0IF0gL0RvbWFpbgpbIDAgMSBdIC9FeHRlbmQgWyBmYWxz + ZSBmYWxzZSBdIC9GdW5jdGlvbiAzOCAwIFIgPj4KZW5kb2JqCjI1IDAgb2JqCjw8IC9D + b2xvclNwYWNlIDggMCBSIC9TaGFkaW5nVHlwZSAzIC9Db29yZHMgWyAwIDAgMCAwIDAg + MTMxLjM1NTQgXSAvRG9tYWluClsgMCAxIF0gL0V4dGVuZCBbIGZhbHNlIGZhbHNlIF0g + L0Z1bmN0aW9uIDM5IDAgUiA+PgplbmRvYmoKMTUgMCBvYmoKPDwgL0xlbmd0aCAxNiAw + IFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA1NTQgL0hlaWdo + dCAxNjAgL0NvbG9yU3BhY2UKNDAgMCBSIC9TTWFzayA0MSAwIFIgL0JpdHNQZXJDb21w + b25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0AENAAAAwqD3 + T20ON4hAYcCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG/gYGDvwAAQpl + bmRzdHJlYW0KZW5kb2JqCjE2IDAgb2JqCjExODMKZW5kb2JqCjE3IDAgb2JqCjw8IC9M + ZW5ndGggMTggMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGgg + NTU0IC9IZWlnaHQgMTYwIC9Db2xvclNwYWNlCjQwIDAgUiAvU01hc2sgNDMgMCBSIC9C + aXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB + 7dABDQAAAMKg909tDjeIQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + Bv4GBg78AAEKZW5kc3RyZWFtCmVuZG9iagoxOCAwIG9iagoxMTgzCmVuZG9iagoxOSAw + IG9iago8PCAvTGVuZ3RoIDIwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1h + Z2UgL1dpZHRoIDU1NCAvSGVpZ2h0IDE2MCAvQ29sb3JTcGFjZQo0MCAwIFIgL1NNYXNr + IDQ1IDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+ + CnN0cmVhbQp4Ae3QAQ0AAADCoPdPbQ43iEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwb+BgYO/AABCmVuZHN0cmVhbQplbmRvYmoKMjAgMCBvYmoKMTE4Mwpl + bmRvYmoKOSAwIG9iago8PCAvTGVuZ3RoIDEwIDAgUiAvVHlwZSAvWE9iamVjdCAvU3Vi + dHlwZSAvSW1hZ2UgL1dpZHRoIDU1NCAvSGVpZ2h0IDE2MCAvQ29sb3JTcGFjZQo0MCAw + IFIgL1NNYXNrIDQ3IDAgUiAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRl + RGVjb2RlID4+CnN0cmVhbQp4Ae3QAQ0AAADCoPdPbQ43iEBhwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwb+BgYO/AABCmVuZHN0cmVhbQplbmRvYmoKMTAgMCBv + YmoKMTE4MwplbmRvYmoKMTMgMCBvYmoKPDwgL0xlbmd0aCAxNCAwIFIgL1R5cGUgL1hP + YmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA1NTQgL0hlaWdodCAxNjAgL0NvbG9y + U3BhY2UKNDAgMCBSIC9TTWFzayA0OSAwIFIgL0JpdHNQZXJDb21wb25lbnQgOCAvRmls + dGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt0AENAAAAwqD3T20ON4hAYcCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgw + YMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG + DBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCA + AQMGDBgwYMCAAQMGDBgwYMCAAQMGDBgwYMCAAQMG/gYGDvwAAQplbmRzdHJlYW0KZW5k + b2JqCjE0IDAgb2JqCjExODMKZW5kb2JqCjExIDAgb2JqCjw8IC9MZW5ndGggMTIgMCBS + IC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNTU0IC9IZWlnaHQg + MTYwIC9Db2xvclNwYWNlCjQwIDAgUiAvU01hc2sgNTEgMCBSIC9CaXRzUGVyQ29tcG9u + ZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7dABDQAAAMKg909t + DjeIQGHAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwY + MGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAED + BgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDA + gAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBgwYMGDAgAEDBv4GBg78AAEKZW5k + c3RyZWFtCmVuZG9iagoxMiAwIG9iagoxMTgzCmVuZG9iagoyMSAwIG9iago8PCAvTGVu + Z3RoIDIyIDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDU1 + NCAvSGVpZ2h0IDE2MCAvQ29sb3JTcGFjZQo0MCAwIFIgL1NNYXNrIDUzIDAgUiAvQml0 + c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae3Q + AQ0AAADCoPdPbQ43iEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYM + GDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIAB + AwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBg + wIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwb+ + BgYO/AABCmVuZHN0cmVhbQplbmRvYmoKMjIgMCBvYmoKMTE4MwplbmRvYmoKNDcgMCBv + YmoKPDwgL0xlbmd0aCA0OCAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdl + IC9XaWR0aCA1NTQgL0hlaWdodCAxNjAgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0Jp + dHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHt + mv1Tkmn3wCsVAQEReREBAwkJX0LMBF9yKWzNF7Z0F2O0KMXNifAlM6WxVXOZSFs1NScc + C9NBx3TMtnY1t5rnX/ue69buSu2u5nl++O7tOT84V3PpnXzOZ8451+114AAGEkACSAAJ + IAEkgASQABJAAkgACRw4cBBjHxD4L0wndA7REYPBWgJ0kg+RnH+fMtuSAJvY2DiMfUEg + NhbSTaT5DluoWgKSACAOJz6eux08DBYS+JDd+HgOBxIOulCyfEtlIZ5QmnDAER6PnwAh + EAiEGCwlAMklOebzeFxuPNhCyfL1LkR5AtUENCGSCIQiUaJYnITBagJicaJIJARh+Lxt + WUgTYqwrZIaFtsPhcvkJApEIFJEkS6UymVyuwGApAblcJpNKkyVJSWKRSJDA53I5UFdI + D2JQhTQe8CQePBGCJslSmUKRkpqaqlKr1RoMVhKA1KogxSkKhUyaDLIIwRVoQsSVL6uy + LQqXB54kSaRyhTJVrUnTanXp6XoM1hJIT9dptWkadapSIZdKksAV3nZZ+ZIqMKNARYGC + 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 + +G4t8AeQABJAAkgACSABJIAEkAASQAKsJPB/q2IDqgplbmRzdHJlYW0KZW5kb2JqCjQ4 + IDAgb2JqCjQ3NzcKZW5kb2JqCjUzIDAgb2JqCjw8IC9MZW5ndGggNTQgMCBSIC9UeXBl + IC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAvV2lkdGggNTU0IC9IZWlnaHQgMTYwIC9D + b2xvclNwYWNlCi9EZXZpY2VHcmF5IC9CaXRzUGVyQ29tcG9uZW50IDggL0ZpbHRlciAv + RmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zr9U5Jp98ArFQEBEXkRAQMJCV9CzARfcils + zRe2dBdjtCjFzYnwJTOlsVVzmUhbNTUnHAvTQcd0zLZ2Nbea51/7nuvW7krtruZ5fvju + 7Tk/OFdz6Z18zmfOOdftdeAABhJAAkgACSABJIAEkAASQAJIAAkcOHAQYx8Q+C9MJ3QO + 0RGDwVoCdJIPkZx/nzLbkgCb2Ng4jH1BIDYW0k2k+Q5bqFoCkgAgDic+nrsdPAwWEviQ + 3fh4DgcSDrpQsnxLZSGeUJpwwBEej58AIRAIhBgsJQDJJTnm83hcbjzYQsny9S5EeQLV + BDQhkgiEIlGiWJyEwWoCYnGiSCQEYfi8bVlIE2KsK2SGhbbD4XL5CQKRCBSRJEulMplc + rsBgKQG5XCaTSpMlSUlikUiQwOdyOVBXSA9iUIU0HvAkHjwRgibJUplCkZKamqpSq9Ua + DFYSgNSqIMUpCoVMmgyyCMEVaELElS+rsi0KlweeJEmkcoUyVa1J02p16el6DNYSSE/X + abVpGnWqUiGXSpLAFd52WfmSKjCjQEWBgiIQiSVShVKlOazV6w0ZxqMmkymTRBYGqwhQ + SYXkHjVmGPR67WGNSqmQSsQiAZQVUlW+NKtsi0IKCniiTtPqDUZTVnaO2ZxrsVjyMFhJ + AFKbazbnZGeZjAa9Nk0NrpCysq3KnqMK9B5SURKEiRJZiipNd8Royjbn5uWfsFpthUUf + ohiDJQQ+ZLSo0Ga1nsjPyzVnm4xHdGmqFJkkcUuVL4wqUFLg0EOJotRo9cbMY5bjBbai + klK7/bSDRBkG6whQiT1tt5eWFNkKjluOZRr1Wo1ySxVOHPSfPYoKKSkcLh8qilyp0RlM + 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 + 5ZXOczU/u1x1F9wYLCVwoc7l+rnmnLOy3GEvseWbszJAFJlEJODtXVLAFFJU+MJEiVyp + 0RlMOZZ8W3HpKceP5RWVVdXVTudPGCwk4HRWV1dVVpT/6DhVWmzLt+SYDDqNUi5JFPKp + krLzjPyhqED/AVWgqmj1xsxjluMFtqKSUrv9tINEGQbrCFCJPW23l5YU2QqOW45lGvVa + UlEShdB79pxSqPZzKDYufkuVFFWa7ojRlG3Ozcs/YbXaCos+RDEGSwh8yGhRoc1qPZGf + l2vONhmP6NJUKVuixMfBlLJXSaEmlS1VYKxVKNVpWr3BaMrKzjGbcy0WSx4GKwlAanPN + 5pzsLJPRoNemqZUKGGahooAoex18SPc5cBCGWqIKXyASS8AVleawVq83ZBiPmkymTBJZ + GKwiQCUVknvUmGHQ67WHNSrwRCIWCfjbouxdUkhRIapwuLwEoShJIpUrlKlqTZpWq0tP + 12OwlkB6uk6rTdOoU5UKuVRCCgoPZhSoKF/oPVRV2VIFygq4Ik5KlsoUipTU1FSVWq3W + YLCSAKRWBSlOUShk0uQkMXgCBeVrolBVZausgCsCEciSJEmWSmUyuVyBwVICcrlMJpUm + S5JAE5EAPNkuKAwVZXtWIarEceK5PH5CgkAoEiWKQRgMNhMQixNFIqEgIYHPI/Vkq/N8 + aUYhmlABc+2hmG1ZuDyiCwgjEAgxWEoAkktyzOfxuNuakAnlq54QWYgrW7LEcTjx8dzt + 4GGwkMCH7MbHc6CYQDUBTb7Rky1XiCxgS0wsdCKM/UAgFiQhloAm31RPqAZEfYEfoHQh + P0xJAw/CYCOBrQyTryTnHw347hX5cQy2E/huLfAHkAASQAJIAAkgASSABJAAEkACrCTw + f6tiA6oKZW5kc3RyZWFtCmVuZG9iago1NCAwIG9iago0Nzc3CmVuZG9iago0NSAwIG9i + ago8PCAvTGVuZ3RoIDQ2IDAgUiAvVHlwZSAvWE9iamVjdCAvU3VidHlwZSAvSW1hZ2Ug + L1dpZHRoIDU1NCAvSGVpZ2h0IDE2MCAvQ29sb3JTcGFjZQovRGV2aWNlR3JheSAvQml0 + c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2a + 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 + VSjVaVq9wWjKys4xm3MtFkseBisJQGpzzeac7CyT0aDXpqmVChhmoaKAKHsdfEj3OXAQ + hlqiCl8gEkvAFZXmsFavN2QYj5pMpkwSWRisIkAlFZJ71Jhh0Ou1hzUq8EQiFgn426Ls + XVJIUSGqcLi8BKEoSSKVK5Spak2aVqtLT9djsJZAerpOq03TqFOVCrlUQgoKD2YUqChf + 6D1UVdlSBcoKuCJOSpbKFIqU1NRUlVqt1mCwkgCkVgUpTlEoZNLkJDF4AgXla6JQVWWr + rIArAhHIkiRJlkplMrlcgcFSAnK5TCaVJkuSQBORADzZLigMFWV7ViGqxHHiuTx+QoJA + KBIlikEYDDYTEIsTRSKhICGBzyP1ZKvzfGlGIZpQAXPtoZhtWbg8ogsIIxAIMVhKAJJL + cszn8bjbmpAJ5aueEFmIK1uyxHE48fHc7eBhsJDAh+zGx3OgmEA1AU2+0ZMtV4gsYEtM + LHQijP1AIBYkIZaAJt9UT6gGRH2BH6B0IT9MSQMPwmAjga0Mk68k5x8N+O4V+XEMthP4 + bi3wB5AAEkACSAAJIAEkgASQABJAAqwk8H+rYgOqCmVuZHN0cmVhbQplbmRvYmoKNDYg + MCBvYmoKNDc3NwplbmRvYmoKNDkgMCBvYmoKPDwgL0xlbmd0aCA1MCAwIFIgL1R5cGUg + L1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9XaWR0aCA1NTQgL0hlaWdodCAxNjAgL0Nv + bG9yU3BhY2UKL0RldmljZUdyYXkgL0JpdHNQZXJDb21wb25lbnQgOCAvRmlsdGVyIC9G + bGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtmv1Tkmn3wCsVAQEReREBAwkJX0LMBF9yKWzN + F7Z0F2O0KMXNifAlM6WxVXOZSFs1NSccC9NBx3TMtnY1t5rnX/ue69buSu2u5nl++O7t + OT84V3PpnXzOZ8451+114AAGEkACSAAJIAEkgASQABJAAkgACRw4cBBjHxD4L0wndA7R + EYPBWgJ0kg+RnH+fMtuSAJvY2DiMfUEgNhbSTaT5DluoWgKSACAOJz6eux08DBYS+JDd + +HgOBxIOulCyfEtlIZ5QmnDAER6PnwAhEAiEGCwlAMklOebzeFxuPNhCyfL1LkR5AtUE + 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 + kkATkQA82S4oDBVle1YhqsRx4rk8fkKCQCgSJYpBGAw2ExCLE0UioSAhgc8j9WSr83xp + RiGaUAFz7aGYbVm4PKILCCMQCDFYSgCSS3LM5/G425qQCeWrnhBZiCtbssRxOPHx3O3g + YbCQwIfsxsdzoJhANQFNvtGTLVeILGBLTCx0Ioz9QCAWJCGWgCbfVE+oBkR9gR+gdCE/ + TEkDD8JgI4GtDJOvJOcfDfjuFflxDLYT+G4t8AeQABJAAkgACSABJIAEkAASQAKsJPB/ + q2IDqgplbmRzdHJlYW0KZW5kb2JqCjUwIDAgb2JqCjQ3NzcKZW5kb2JqCjQzIDAgb2Jq + Cjw8IC9MZW5ndGggNDQgMCBSIC9UeXBlIC9YT2JqZWN0IC9TdWJ0eXBlIC9JbWFnZSAv + V2lkdGggNTU0IC9IZWlnaHQgMTYwIC9Db2xvclNwYWNlCi9EZXZpY2VHcmF5IC9CaXRz + UGVyQ29tcG9uZW50IDggL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngB7Zr9 + U5Jp98ArFQEBEXkRAQMJCV9CzARfcilszRe2dBdjtCjFzYnwJTOlsVVzmUhbNTUnHAvT + Qcd0zLZ2Nbea51/7nuvW7krtruZ5fvju7Tk/OFdz6Z18zmfOOdftdeAABhJAAkgACSAB + JIAEkAASQAJIAAkcOHAQYx8Q+C9MJ3QO0RGDwVoCdJIPkZx/nzLbkgCb2Ng4jH1BIDYW + 0k2k+Q5bqFoCkgAgDic+nrsdPAwWEviQ3fh4DgcSDrpQsnxLZSGeUJpwwBEej58AIRAI + hBgsJQDJJTnm83hcbjzYQsny9S5EeQLVBDQhkgiEIlGiWJyEwWoCYnGiSCQEYfi8bVlI + E2KsK2SGhbbD4XL5CQKRCBSRJEulMplcrsBgKQG5XCaTSpMlSUlikUiQwOdyOVBXSA9i + UIU0HvAkHjwRgibJUplCkZKamqpSq9UaDFYSgNSqIMUpCoVMmgyyCMEVaELElS+rsi0K + lweeJEmkcoUyVa1J02p16el6DNYSSE/XabVpGnWqUiGXSpLAFd52WfmSKjCjQEWBgiIQ + iSVShVKlOazV6w0ZxqMmkymTRBYGqwhQSYXkHjVmGPR67WGNSqmQSsQiAZQVUlW+NKts + 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 + IG9iago0Nzc3CmVuZG9iago1MSAwIG9iago8PCAvTGVuZ3RoIDUyIDAgUiAvVHlwZSAv + WE9iamVjdCAvU3VidHlwZSAvSW1hZ2UgL1dpZHRoIDU1NCAvSGVpZ2h0IDE2MCAvQ29s + b3JTcGFjZQovRGV2aWNlR3JheSAvQml0c1BlckNvbXBvbmVudCA4IC9GaWx0ZXIgL0Zs + YXRlRGVjb2RlID4+CnN0cmVhbQp4Ae2a/VOSaffAKxUBARF5EQEDCQlfQswEX3IpbM0X + tnQXY7Qoxc2J8CUzpbFVc5lIWzU1JxwL00HHdMy2djW3mudf+57r1u5K7a7meX747u05 + PzhXc+mdfM5nzjnX7XXgAAYSQAJIAAkgASSABJAAEkACSAAJHDhwEGMfEPgvTCd0DtER + g8FaAnSSD5Gcf58y25IAm9jYOIx9QSA2FtJNpPkOW6haApIAIA4nPp67HTwMFhL4kN34 + eA4HEg66ULJ8S2UhnlCacMARHo+fACEQCIQYLCUAySU55vN4XG482ELJ8vUuRHkC1QQ0 + IZIIhCJRolichMFqAmJxokgkBGH4vG1ZSBNirCtkhoW2w+Fy+QkCkQgUkSRLpTKZXK7A + YCkBuVwmk0qTJUlJYpFIkMDncjlQV0gPYlCFNB7wJB48EYImyVKZQpGSmpqqUqvVGgxW + EoDUqiDFKQqFTJoMsgjBFWhCxJUvq7ItCpcHniRJpHKFMlWtSdNqdenpegzWEkhP12m1 + aRp1qlIhl0qSwBXedln5kiowo0BFgYIiEIklUoVSpTms1esNGcajJpMpk0QWBqsIUEmF + 5B41Zhj0eu1hjUqpkErEIgGUFVJVvjSrbItCCgp4ok7T6g1GU1Z2jtmca7FY8jBYSQBS + m2s252RnmYwGvTZNDa6QsrKtyp6jCvQeUlEShIkSWYoqTXfEaMo25+bln7BabYVFH6IY + gyUEPmS0qNBmtZ7Iz8s1Z5uMR3RpqhSZJHFLlS+MKlBS4NBDiaLUaPXGzGOW4wW2opJS + u/20g0QZBusIUIk9bbeXlhTZCo5bjmUa9VqNcksVThz0nz2KCikpHC4fKopcqdEZTDmW + fFtx6SnHj+UVlVXV1U7nTxgsJOB0VldXVVaU/+g4VVpsy7fkmAw6jVIOVYXP5cTuWVRI + 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 + TDmWfFtx6SnHj+UVlVXV1U7nTxgsJOB0VldXVVaU/+g4VVpsy7fkmAw6jVIuSRTyqZKy + 84z8oahA/wFVoKpo9cbMY5bjBbaiklK7/bSDRBkG6whQiT1tt5eWFNkKjluOZRr1WlJR + EoXQe/acUqj2cyg2Ln5LlRRVmu6I0ZRtzs3LP2G12gqLPkQxBksIfMhoUaHNaj2Rn5dr + zjYZj+jSVClbosTHwZSyV0mhJpUtVWCsVSjVaVq9wWjKys4xm3MtFkseBisJQGpzzeac + 7CyT0aDXpqmVChhmoaKAKHsdfEj3OXAQhlqiCl8gEkvAFZXmsFavN2QYj5pMpkwSWRis + IkAlFZJ71Jhh0Ou1hzUq8EQiFgn426LsXVJIUSGqcLi8BKEoSSKVK5Spak2aVqtLT9dj + sJZAerpOq03TqFOVCrlUQgoKD2YUqChf6D1UVdlSBcoKuCJOSpbKFIqU1NRUlVqt1mCw + kgCkVgUpTlEoZNLkJDF4AgXla6JQVWWrrIArAhHIkiRJlkplMrlcgcFSAnK5TCaVJkuS + QBORADzZLigMFWV7ViGqxHHiuTx+QoJAKBIlikEYDDYTEIsTRSKhICGBzyP1ZKvzfGlG + IZpQAXPtoZhtWbg8ogsIIxAIMVhKAJJLcszn8bjbmpAJ5aueEFmIK1uyxHE48fHc7eBh + sJDAh+zGx3OgmEA1AU2+0ZMtV4gsYEtMLHQijP1AIBYkIZaAJt9UT6gGRH2BH6B0IT9M + SQMPwmAjga0Mk68k5x8N+O4V+XEMthP4bi3wB5AAEkACSAAJIAEkgASQABJAAqwk8H+r + YgOqCmVuZHN0cmVhbQplbmRvYmoKNTIgMCBvYmoKNDc3NwplbmRvYmoKNDEgMCBvYmoK + PDwgL0xlbmd0aCA0MiAwIFIgL1R5cGUgL1hPYmplY3QgL1N1YnR5cGUgL0ltYWdlIC9X + aWR0aCA1NTQgL0hlaWdodCAxNjAgL0NvbG9yU3BhY2UKL0RldmljZUdyYXkgL0JpdHNQ + ZXJDb21wb25lbnQgOCAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAHtmv1T + kmn3wCsVAQEReREBAwkJX0LMBF9yKWzNF7Z0F2O0KMXNifAlM6WxVXOZSFs1NSccC9NB + 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 + AnTmnGnXzE7ktWZdP6J18GiF1mcbTQ1ayrI03+VprvCEWxTpJkxZBc7ZX9t4jwp7eJBP + 9he5JLzu36zMpVNdnCWa2NantOjqJjeQ72fMnj5yPa/3GbdnOGDlgJnvGwo4csq24jwX + qYnU2OPxk2TGV1QnH5PzkDznFQdlTN9+LnUiQa6lPTmZ65eaXdzbPjMxxDOSrFgzE53x + 3/zGLSRl3n3U3HUs/5tnbZFnGIUFARM27zY0JNGLGBrhwEUOGXpMKkxapV/QasLD5F+V + FhLlXRYVvVjhnhV/z3kUuFvGP4VYHHMN5Qia/k7/oi/rC/pd/fN8baG+4plzz5rGq2tf + GVdmltXIuEGNMr6sKYhvsNoOei1kaZ3iFfTklfWN4eoy9nxt2aPJHOJqfDXUpQhlasQ4 + 48muZfdFssU34edby/av6VH7fPZJTSXXsrp4Zin6fDZcDWv/s6tg0rKr8OSNkC48a6Hu + VQ+qfWqL2gpNPaa2q21qF9+OqgPlHcOclYkLrNtl9Sn2YGOa3spJV2aL4N/CL4b/pV5h + C9c0NPkPTbi5jGkJ3xHcNnCHlP/DX7MDDd4KZW5kc3RyZWFtCmVuZG9iago1NiAwIG9i + ago3OTIKZW5kb2JqCjggMCBvYmoKWyAvSUNDQmFzZWQgNTUgMCBSIF0KZW5kb2JqCjU3 + IDAgb2JqCjw8IC9MZW5ndGggNTggMCBSIC9OIDEgL0FsdGVybmF0ZSAvRGV2aWNlR3Jh + eSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGFUk9IFFEc/s02EoSIQYV4 + iHcKCZUprKyg2nZ1WZVtW5XSohhn37qjszPTm9k1xZMEXaI8dQ+iY3Ts0KGbl6LArEvX + IKkgCDx16PvN7OoohG95O9/7/f1+33tEbZ2m7zspQVRzQ5UrpaduTk2Lgx8pRR3UTlim + FfjpYnGMseu5kr+719Zn0tiy3se1dvv2PbWVZWAh6i22txD6IZFmAB+ZnyhlgLPAHZav + 2D4BPFgOrBrwI6IDD5q5MNPRnHSlsi2RU+aiKCqvYjtJrvv5uca+i7WJg/5cj2bWjr2z + 6qrRTNS090ShvA+uRBnPX1T2bDUUpw3jnEhDGinyrtXfK0zHEZErEEoGUjVkuZ9qTp11 + 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 + uoBYKF00XBxYwl36uiylXP8RfeX4k/xq9xq5OvL62Ya6ppTnXq26bfj2/c7R7rKeyD6b + AYVBtqHfw0ujpNfNbyom8qcyZ9Lmsucr3vcvbq3gVg0/31hr3djbUtgO3+nYo/llfVDx + j/4oQA2OARwQBvJAB1iBSyAC+vofgS4wB35C6p+EmcKCYDmw57AFODlcAm4Jj4Q/hI/C + 9xGCCFPEdUQdYhWJQ1oi05EkMloyA7J0srcoLpQ7qgYN0AboQvQWuRZ5Hvk2hQFFBSUl + 5SVKEpUsVQE1JfUV6o80NjTDtLq0XXRqdB30mvQDDKYM84w+GIDJZBJm6jpmf2wfe4dZ + nnmCJZQVx9rD5sfOxT7EEcUpx7nJ9QjnwS3IvcRTzGvPh+N7hy/idxUQE9gV7BbKOu52 + QkmYSXhNpEe0UCxY3FBCSBIG6d8onSsTftJBVldOWp5HgUERqbh/ak9pXxmhQqeKU5M6 + o6PuqHFNM1/rhfaiLvVZ2XOOeonn6/SnDA6MuI3VTTxM08yazVctWa30rKNtmm13Lkhf + 9LN/7LDqhHe2d8l3nXXn8nDyLL/0zVvVJ8V3wU/WPyVgPcj0cnuwTEhlmHB4xTXxiPoo + 1ehXUBxbi4u6xRz/OFEj6W2KS+pmekgmMis1G5dTfUeLOJcffBdbWH/P+j685MkD54c8 + 5cuPqh5HVhk/FaqF1809a2m82xzTcumFSfvpTnw3+uVyb1v/nVeBQ0bDEqOYsd3x+bcD + kw3TD2eJ75IXIj54LhmsiK1Sflr58nL9wWb8FmHbckd9V/Inzz7mN/mR/n/zJWgfAACj + p6nBre7h4+LtwK3hEUDwcgj5Y/9/PXl7BUH52Z+CgM7ULj5mJtAVDx0yrv5axv+yR6Cu + 6b8M9IAm0ADcQB14QLHJBXhDexQ3ZPGAdioC8ILuQv7md5AHQNEDkC4Lz7ZL74kbjzyy + /O8S6BIM5X4AqPsSQvw93NwDudWg7NZFhFvXx0lMhFtKQlIS/A/EuSmdCmVuZHN0cmVh + bQplbmRvYmoKNjAgMCBvYmoKMzYzMwplbmRvYmoKNDAgMCBvYmoKWyAvSUNDQmFzZWQg + NTkgMCBSIF0KZW5kb2JqCjQgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9NZWRpYUJveCBb + MCAwIDYxMiA3OTJdIC9Db3VudCAxIC9LaWRzIFsgMyAwIFIgXSA+PgplbmRvYmoKNjEg + MCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cgL091dGxpbmVzIDIgMCBSIC9QYWdlcyA0IDAg + UiAvVmVyc2lvbiAvMS40ID4+CmVuZG9iagozOSAwIG9iago8PCAvTGVuZ3RoIDYyIDAg + UiAvRnVuY3Rpb25UeXBlIDAgL1NpemUgWyAxMzY1IF0gL0JpdHNQZXJTYW1wbGUgOCAv + T3JkZXIgMQovRG9tYWluIFsgMCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvRW5j + b2RlIFsgMCAxMzY0IF0gL0RlY29kZSBbIDAgMSAwCjEgMCAxIF0gL0ZpbHRlciAvRmxh + dGVEZWNvZGUgPj4Kc3RyZWFtCngBlcJpUw5gGIbh//9LRESJZCtLqSwVylZ2lSUk8iz3 + dd2+mKHJO6/zmCPLsRx+JAt9PAt6Igs9moU+mQU9lYUeyzKWFT2dFT2TlR7Pik5kpc9m + pSezDuw6eeQ5V/q8Kz3lil5wpaddh23T/vOiG33Jjb7shl5xo6+60TNu6Kwbfc0Nve5G + 33Cjb7qhc25/7XMeft4dveVOL7jTi+7okjt9252+447edafvuaPL7oeqLw+7ov5/Y0W/ + ryrQ+wr6gYJ+qEDXFPS6An2koB8r6CcK9KmCfqagNxRHakMDb0r0cwl9IdEvJfqVhL6W + 6DcS/VZC30n0loRuS7B3hL+X0Q9h+mOY/hRGd8P05zD6JUx/DdN7YfRbmN4PD5j78Y/f + I+kfkfRBJPozki6RdI089Bcsh9kzCmVuZHN0cmVhbQplbmRvYmoKNjIgMCBvYmoKMzA4 + CmVuZG9iagozOCAwIG9iago8PCAvTGVuZ3RoIDYzIDAgUiAvRnVuY3Rpb25UeXBlIDAg + L1NpemUgWyAxMzY1IF0gL0JpdHNQZXJTYW1wbGUgOCAvT3JkZXIgMQovRG9tYWluIFsg + MCAxIF0gL1JhbmdlIFsgMCAxIDAgMSAwIDEgXSAvRW5jb2RlIFsgMCAxMzY0IF0gL0Rl + Y29kZSBbIDAgMSAwCjEgMCAxIF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFt + CngBlcKFdtpQAADQ//+WVbYqxQoUKQ7Fo5CEuBNDu5FBIRB799wE9CsR900CunkDe/sG + ueHbN3cSvo16l4QDp+A7v/cp+CxynwqeRu7dv9MI0D9pZD9zHf2T8f+QQS9n0YfQj1k0 + 7Dv2ePXpHQOYw55y2HPc+HNu/+VnHn+J9zWP+yzgr4GniULUj2nC++1jCrY4TR7OksVY + U8XZaWmWijFdmnkT6ZK7TKQDZspE9AqROZutEAHJbMX/+ycJNPdJelbJ3GUqV/XMV6nA + NSrvt1CjYq1Thfr8/4/6HHSxPi82AJYa9OUmXQpdbtJhW3T5aqVFu5lKK2qbqbg/2wzo + apvZ7/xkq52wtQ7rs8vWgte7bECu3nV/cXXvxhcHsMc1elwzOt/snbZ6/Gmfb8XY7vP+ + B3z7stAe7HfiHAqds92hAHYkfI1EoL2R6DkWe1H7Y/FY6o+9J1Lf72AixQpJg+MhJF2V + h1DYESwDHcPyZUQeHypjxOcEUcKiyuQqhCpRVQh1YyrkhjEVNIKpCB6zhuAa6nuqocGx + qRZxpmHe+EwHSOg4oU/Bzwh9n/x3ESdBLvxTCyIgSS2uGiTlPTfIs9TcAEsb87DmnPZJ + 0+YhY9IxMowZmDWZQ4thT1nWipWz2GOOs0DaHGfzPHCBt08FW4gqCrYoOIFFR7wqiU7c + kiO5Zck5u5Sl6Iq0VGSwqrz0VJaqsgqpKauI6krz1tVV8LWuemtrXVsvwBvael8PvzH0 + Q1Pf+FxszODWYhPd2FiHW8vY2qDNrQN+aW6X5m7finVl7fzbu1XAtb07+722Azrf6+ON + 8335L+Qt0kMKZW5kc3RyZWFtCmVuZG9iago2MyAwIG9iago2MTkKZW5kb2JqCjM3IDAg + b2JqCjw8IC9MZW5ndGggNjQgMCBSIC9GdW5jdGlvblR5cGUgMCAvU2l6ZSBbIDEzNjUg + XSAvQml0c1BlclNhbXBsZSA4IC9PcmRlciAxCi9Eb21haW4gWyAwIDEgXSAvUmFuZ2Ug + WyAwIDEgMCAxIDAgMSBdIC9FbmNvZGUgWyAwIDEzNjQgXSAvRGVjb2RlIFsgMCAxIDAK + MSAwIDEgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdwolymlAUBuD3 + f6M0aZM2aeIuKoriLoo7ivvKfzpmdEYsF+4933wUe6KQ8SeK/+B+prh/4pmkvlBCYvKF + Hv+kJO8vSrG/Uso//UpS3ygtMfNGj39ThvcPZXnfKRtUe6foH6TJzX2Q71/K8X5S7pPy + jF+UD1r4oogxKkjXY+QbJ503QXqCioxJKgqWkhQ2RSWVRoqu02SwZ8j4Xs6Q2iyVBStZ + CqtRJSwqmq+p4ToHkzcP87aah9oCquK1AoR11BTXdVwWuUuo322UoNBAQ7xpQLiMpuJW + GZcVbhOtu20TsqtoR+1UEbyGjnqrBqvO3YDl321AahPdqL0mArbQY7VbsNvcHdj+/Q6k + WuhLHFh43MWAt4chu43hf0c2ovcxkjju4/EAY94hJrwjTIJOR4g+xlSuM4bvBA7vFM4U + M0YHM8G5g7AzzKW7M/jO4fK6cF0sGBdYCC4XCLvEUuVqiesVVuxrrL6v11C7wVp8s4Hw + FhuV2y2ud9jy7rG93e2h9oCd+P4A4SP2ig9HXJ64zzjcPZ4h28Mx6snDrXfy7sI7KT7D + u6SQ/wAurJGcCmVuZHN0cmVhbQplbmRvYmoKNjQgMCBvYmoKNDI5CmVuZG9iagozNiAw + IG9iago8PCAvTGVuZ3RoIDY1IDAgUiAvRnVuY3Rpb25UeXBlIDAgL1NpemUgWyAxMzY1 + IF0gL0JpdHNQZXJTYW1wbGUgOCAvT3JkZXIgMQovRG9tYWluIFsgMCAxIF0gL1Jhbmdl + IFsgMCAxIDAgMSAwIDEgXSAvRW5jb2RlIFsgMCAxMzY0IF0gL0RlY29kZSBbIDAgMSAw + CjEgMCAxIF0gL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCngBncKHctowGADg + 93+elLQ0q1lNmzYpMWD2MGYZsCwvWZY8euHwxQQv/d99Zw39LPVLQwesNfTam2hUe0Pn + pSV0nvWrhGC/Seh9U3i9icq3UP2jUW8Z36EvWsZh27gQedk2KpWNy+NXsiEeX8n4Or2D + r6u96WCBXXyT/NHFsLdd/HkP35Y373oi++Zd8r5vAj70zYwD86Hs48AUPjQfh9ZP6Keh + lX1kPRX+NbIAf48t2OexXXRiP+f8M7Fh/05t2JepXVSxX7K+Kvar4gD+U5z3M+GNmVNe + dRon31QHUFKdfVdSXWkusDl3q164zdTWwoVtL9yPS7ddubx05SWpdEXkZGdFYLsr8vma + dCvsrYlYjfT2+xrZ9/qa2IHmZdx4g8LDjQe59UbQ462XpONt6o6OC092FFKnU1BFp0UR + VXLOEE36MyRQRb5qQM4NvyT251kX2AdcYv/Q9Jcmq35lsvIWW51cWwxWs9ihzTSRG5ul + 8o2d0+Gb1K3DYXcOP+ryXbW6ywUSricR4ccDRCo1SHDUC4wKsReIpQHeN2kAa9HgeGjR + 0PLL234onIU2Cx1Ql4W5eejmJzw8GRFe3gsiWBpEucOI5vfDCJCFEYtOxywqyaO4ZBzz + rEEcn/4PV95vYwplbmRzdHJlYW0KZW5kb2JqCjY1IDAgb2JqCjQ4MAplbmRvYmoKMzUg + MCBvYmoKPDwgL0xlbmd0aCA2NiAwIFIgL0Z1bmN0aW9uVHlwZSAwIC9TaXplIFsgMTM2 + NSBdIC9CaXRzUGVyU2FtcGxlIDggL09yZGVyIDEKL0RvbWFpbiBbIDAgMSBdIC9SYW5n + ZSBbIDAgMSAwIDEgMCAxIF0gL0VuY29kZSBbIDAgMTM2NCBdIC9EZWNvZGUgWyAwIDEg + MAoxIDAgMSBdIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4AX3Ch1sTZxwA + 4L/WVqrVYrXa2tpqXcVqtbUqe4cVCCSssCEhBAhhjxBW2Ov2ntHLc+fdl3w/3uclPl0j + vi69RiC/IUqBZd8S4OtEmbP8OoEsIsrtZHmRu6KIrPgOfoOscFbeIJE3yUrcqptk1ffw + W2SVs/oWmf82WV2w5jZp/QFeTNYUk7VuqrbYeYeqLVh3h7L+CL9L1d2l6rHvUfUFG+5R + 1p/g96mG+1Qj9gOqsaDvAWX/mfLh075f6CboQ7rJs/kh7f6Vbob+RrdAH9Etnq2PaPfv + dCv0D7oN+phu8/Q/pt1PaL+d8T9Btv/JXPUp0+7seMognzEduIFnTOA5/AUTcHa+YJAv + mU7crpdM11/wEqbLGSxhgiWs+xUbxA29YkN/w1+zodzu1yzmG7a7YM8b1voP/C3b85bt + xX7H9hbse8da/4Vyff9Z+7Hfc/3o8HvO/j8Xhn7gwh+4AeyP3AB68CPn/sQNQku5IWgZ + N+Q5XMa5y7lhK49ZwY9AK/kRz9FK3l3FjwLHqnlwDT/mOV7Du2v5ceBEHX/Ven7CGann + I/WCu0GI4EYbhGgj3CdEcyd9Qv4mYRI31iTEmuEtQix3qkXI3ypM4cZbhXgbVIz77dN+ + EbNdnC440y5aO+ABcSYgzmJ3irPoRKdo7xIT0KCYCIpz2CFxDp0MifZuMWmVMHukZI80 + j90rzaMXeiV3n7QA7ZcWoWFp0XMpLLkHpCXg8qAEHpKWPVeGZPewvAJcHZHBo/Kq59qo + 7B6T14Dr4/JVJ+T13I0JOX9E3sBNReRUFFtJRZXUpH1zUskfUzZx0zElPQWPK+ncrbiS + f1rZwt2eVrZn4LPKdu7OrIKZUHbQuwnFPqfszqn4SXU3qe5hz6t76My8al9QM9BFNbOo + 7mMvqfvogyXVvqweQFfUQ+iqeojUjlada9oR/HhdA29ox54nG5o7pZ0ATzc1cFo79TxL + a+4t7Qx4vq0B9fMd98WOjtzVL4CXe/pVM/plLpHR8+/rBC65r5MH8EOdzKUO9fxHOlWQ + PtKtx18a+CcGncucGPlPDaYge2pYz+DnBpvLnRuYFwaH5i8M+6XBQwmDJwwBmzQEtymQ + pvg1ZYpQ2pSgjCmhZca0s6YM5UwFypsKWuVNu2CqcE00cbOamNUkty5lkXJWBxpKFqxm + DaepZpHaZ1lvA0gKZW5kc3RyZWFtCmVuZG9iago2NiAwIG9iago4ODgKZW5kb2JqCjM0 + IDAgb2JqCjw8IC9MZW5ndGggNjcgMCBSIC9GdW5jdGlvblR5cGUgMCAvU2l6ZSBbIDEz + NjUgXSAvQml0c1BlclNhbXBsZSA4IC9PcmRlciAxCi9Eb21haW4gWyAwIDEgXSAvUmFu + Z2UgWyAwIDEgMCAxIDAgMSBdIC9FbmNvZGUgWyAwIDEzNjQgXSAvRGVjb2RlIFsgMCAx + IDAKMSAwIDEgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGdwoVy2zAA + AND//561a7u2K8RhZmZmtFjybrnkArVsSe9ewP4VcPkQsJVa9sPtR8s+Bo+W3t9BYPAp + CO6HwJPC5xDwGQbPbl/CQHsEvETAH9OvEXAaBa/K36LAawy8xaDr9xjUGIfv53/j0OxH + HH4kTH4moMsk/PT7lYT+U/Dr9ncKmg2koVkrDa00uswgS20wg7xmUVAylEV6cyiUQ2HT + kRw6zaOIzmgeSRdQVD5WQKqLKHY1XkSecbzoMlHEiZLJZAm7LOOk31QZ+6/g1I/pCjZZ + xRnT2Sq+rOGs2lwNe63jnGS+TvQ2SP640CBmiw3yf1N7qUnct0hJvtwiqtukfLXSJmar + HWK21iH3u6R2Smtd6XqX+uzR+o+NHjXZp03TrT69HNCW8vaASg9pW74zpBpHtHPeHVH9 + rDc6HrOe5v6YuZ+wvufBhCmdssHt4ZSZnLGR0fGM3Z+zscLJnPlcsInb6YJJ8ulCcsmn + Sz4zPV/y0xWfK1+suNc1X0gu11zjhi/PVxtudr3h663JzZa73PGNV7HZia3Kvdje3u2F + 2f1BmD0cxE1bHNTatvAKhC0JgNALBYACmkZQnCKBLh2EfGLkSGMHyxPsqCYOuUqJY5AR + h9Hjf7DIViAKZW5kc3RyZWFtCmVuZG9iago2NyAwIG9iago0NzYKZW5kb2JqCjMzIDAg + b2JqCjw8IC9MZW5ndGggNjggMCBSIC9GdW5jdGlvblR5cGUgMCAvU2l6ZSBbIDEzNjUg + XSAvQml0c1BlclNhbXBsZSA4IC9PcmRlciAxCi9Eb21haW4gWyAwIDEgXSAvUmFuZ2Ug + WyAwIDEgMCAxIDAgMSBdIC9FbmNvZGUgWyAwIDEzNjQgXSAvRGVjb2RlIFsgMCAxIDAK + MSAwIDEgXSAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeAGtwUUCggAAALD/ + /wy7W7DFDrD7Cx62BQGQcbJODsk7BaeIlJwyUnGqTg2pOw2k6bScNtJxukjP6TshEjkD + ZOiMnDEycabIzJk7MbJwlsjKWTsbZOvsnD1ycI5I4qTOCTk7F+Tq3Jw78nCeyMt5Ox/k + +58f7a80fAplbmRzdHJlYW0KZW5kb2JqCjY4IDAgb2JqCjEyMQplbmRvYmoKMiAwIG9i + ago8PCAvTGFzdCA2OSAwIFIgL0ZpcnN0IDcwIDAgUiA+PgplbmRvYmoKNzAgMCBvYmoK + PDwgL0NvdW50IDAgL0Rlc3QgWyAzIDAgUiAvWFlaIDAgNzU0LjggMCBdIC9UaXRsZSAo + Q2FudmFzIDEpID4+CmVuZG9iago2OSAwIG9iago8PCAvQ291bnQgMCAvRGVzdCBbIDMg + MCBSIC9YWVogMCA3NTQuOCAwIF0gL1RpdGxlIChDYW52YXMgMSkgPj4KZW5kb2JqCjcx + IDAgb2JqCjw8IC9MZW5ndGggNzIgMCBSIC9MZW5ndGgxIDE0MzQ4IC9GaWx0ZXIgL0Zs + YXRlRGVjb2RlID4+CnN0cmVhbQp4Ab17CXxURbZ31V17Tbo7vWfp7nQnnX1fISSdkI0l + 7EuCRBIgCAgIiCAwOAhoILgwjiwi89QRFVHnheBAIwOPx+CgIjMu+FBE0DeoKBMdfVFU + 6Nvfv7pDBnzzm8/f75tvclO36tZ66pxTp845VU0oIURHVhOeBGbMb1/4Sfr/uJHzOiHU + NGPpEvct1ekBpD8khL931sJb5r/R8elOQsTZhGjibpm3fNZrj+tNhMT+jJDkdbM72md+ + f85eR0gBuiAls5GhvlcuwncZvn2z5y+58xRvMON7Kr6D826b0f7qfx35HSGFyCM3z2+/ + c6HqIc1VfC/Bt3tB+/yOo+fMH+D7YXz7F952+xJxlHgXvtGG3LVwccfC0LgNswgpqgB8 + f0IexcP+dEhKkdQ/fEUrc4QXUE0k/7uFrFJrtOhOT0hMrMFoijNbrNf3aCN2hzM+ITGJ + uNyeZK+PpKT609IzSGbW9bX+f6Wz/+8di0eIUTxKssWtJFGoIYmEhM8gvM9iZXz4S/EN + ogmHwr18ETCWzML5K9RM/p3IZD+5iwjkLbKbqomX9NIC8h5NpBnkXaKQ98l/EyfZSB7H + u45cpN8SNfmMpqFOCVlD/o08Fl5IFpIqPBepSCykjHwWXhl+Jfw9qSFd5BiVaRxNDB8g + uaQTz3ayg+q46eE9xE5GkmXgxjXkVXIm3BP+HP2XkI+pkeYKg8MfEA5UcpJysoHsJvup + h3ppBr0p/DHy7YBxKtkdbgovRbsvUSuXjCIrMdpH1EVTaSbdTs/xveHV4QcwtwSUTSQz + 8Mwnd5NtZAd5IVJrupAgWtB/LRmBsgewDi6Sr8FU6bSG3sm9w3/O/1UYLGwPHwMcEzFe + G3mM8sCKj06kM+lC+gJ9kf6efsuVcu18Of+OsFB4ArBNJOvJE+QQOU7eJh+QS6SX/EBC + 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 + owq8RDcRc2tfQE1dAtG63nV8cZjmQOv7JPLupjkBnZ6oZ6ytcM1Yu7YxvVqN879SbBou + Wkd8kbi2x/ecK0gre3xeREOiEddTmogvElCX+lyh0umuq6VBFQ3Eu77z/dJ1GeFbX5Xr + G1++603Ue6O0wXWyGuU9rhMZQQ7Ra76gQAOxrld8d7t+W5ruerF0sKvHj7we155qRPtc + O0vvdj25LpLz64xI9IQvSLf3uB5n0T7XY+h/y9pIweZowzXRaOG6yEC37Y1EC/YGuef2 + ueb7Ul3T0ZAGtK5W3zzXVF+5a0J1kKb0uJpYs32ukf6TrhFs6B5XIDpQSbT3Yl8E4oLo + sFm+g6606AjJrHYgzuX2jXQlov+sx7e4snw3u6ozgnTX/sa0DF+jf0tJkPZFxmARAGXR + gmg0w3+IPgMKp9MpOHp9ZG9jOmCmm3pcaxFt39uYVpoS5C8GTK69/kb/OoQShBSEiUE6 + IZAlb5VnyhPlQjlTTpdTcUKQJMfLZpVJZVDFqHQqjUqF00HY2iqiMgfDHwYymZQwSwYW + SVhcuNkWSRvAtzTCvGB1HAZzYLegRO6xLq2yV5kqjeX1tX/n1RbJbKvN/NsflLeBPztN + 7N6CS87duxNbugtYIpzYMlD6/5boqEH7EeOW7x23/NKkyD15b11Hm7eurXvjUvycYfV0 + t3vPpeWsgN3Ybps+YzaL2zu6l3s7arsveWvde8ZF2v2oeBIrHuet3UMm1U1o3jMp0FHb + My4wjt2Db9k7pq4RKikGuTbWhoGxGuv+zlh1rLNGNtaYSLsfjTWKFY9hY41iY41iY40J + jImMlZlZN2d8Dfk/8kZPiQplbmRzdHJlYW0KZW5kb2JqCjcyIDAgb2JqCjk5OTIKZW5k + b2JqCjczIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3JpcHRvciAvQXNjZW50IDc3MCAv + Q2FwSGVpZ2h0IDY4NCAvRGVzY2VudCAtMjMwIC9GbGFncyAzMgovRm9udEJCb3ggWy01 + NSAtMjE4IDgyNiA3NDFdIC9Gb250TmFtZSAvWlpOSk9VK0hlbHZldGljYS1Cb2xkIC9J + dGFsaWNBbmdsZQowIC9TdGVtViAwIC9NYXhXaWR0aCAxNTAwIC9YSGVpZ2h0IDUxMyAv + Rm9udEZpbGUyIDcxIDAgUiA+PgplbmRvYmoKNzQgMCBvYmoKWyAyNzggMCAwIDAgMCAw + IDcyMiAwIDMzMyAzMzMgMCAwIDAgMzMzIDAgMjc4IDAgMCAwIDAgMCAwIDAgMCAwIDAg + MCAwIDAgMAowIDAgMCA3MjIgNzIyIDcyMiA3MjIgNjY3IDAgMCA3MjIgMjc4IDAgMCA2 + MTEgODMzIDcyMiA3NzggNjY3IDc3OCA3MjIgNjY3CjYxMSAwIDAgMCAwIDAgMCAwIDAg + MCAwIDAgMCA1NTYgMCA1NTYgNjExIDU1NiAzMzMgNjExIDYxMSAyNzggMCA1NTYgMjc4 + IDg4OQo2MTEgNjExIDYxMSAwIDM4OSA1NTYgMzMzIDYxMSA1NTYgNzc4IDAgNTU2IDUw + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwCjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAK + MCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + IDAgMCAwIDAgMCAwIDAgMCAwIDAgMAowIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDYx + MSBdCmVuZG9iagoyNiAwIG9iago8PCAvVHlwZSAvRm9udCAvU3VidHlwZSAvVHJ1ZVR5 + cGUgL0Jhc2VGb250IC9aWk5KT1UrSGVsdmV0aWNhLUJvbGQgL0ZvbnREZXNjcmlwdG9y + CjczIDAgUiAvV2lkdGhzIDc0IDAgUiAvRmlyc3RDaGFyIDMyIC9MYXN0Q2hhciAyMjMg + L0VuY29kaW5nIC9NYWNSb21hbkVuY29kaW5nCj4+CmVuZG9iago3NSAwIG9iago8PCAv + TGVuZ3RoIDc2IDAgUiAvTGVuZ3RoMSA5NzI0IC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+ + CnN0cmVhbQp4Ab1aCXhUVZY+9+21pqpS+5Kql5eqSmWpbBCICaQISQh7SBASNJgEAglC + GzFEcaGjYiMBEUUW0VZxgQCtFCFCAerQDIradosbLq3d2qKt/Zmxx8F2I1Vz3quQhh7H + 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 + E5jJHCWPK5mPHxIYgRJAMMcS7+PFEQFzjOwdQLYigJGDnBLjYuRxvMeUsx6PeJG1CTBK + gQE5jSjshgxJEYFCNoqSO2Ic3GbtLreXm8YbS6or/zevWSk57yti+/s9O/FEt+D7WXSP + pxGfKjGS8DSer4oK9//4da3ACm0V2dlT61Ye6O5cskh5epWq2prxBTa6rhufwntafb79 + SzqH35UDza0L2uW3v5a2aKfUVhldIlX69ncr7eTsC4oXycXdUuV+WFQ1u2H/okhbZX93 + pLtKfoI+0FqxvOmisdaOjLW84nvGqpA7Wy6P1aq0+5exmuTiVnmsJnmsJnms1kirMpYM + QVVHfcU1Xcid+DyLz6OZ9dHJs+Y14L8QGitjZKf8ZrsC/hvoGpLzCmVuZHN0cmVhbQpl + bmRvYmoKNzYgMCBvYmoKNjQ1NwplbmRvYmoKNzcgMCBvYmoKPDwgL1R5cGUgL0ZvbnRE + ZXNjcmlwdG9yIC9Bc2NlbnQgNzcwIC9DYXBIZWlnaHQgNjg0IC9EZXNjZW50IC0yMzAg + L0ZsYWdzIDMyCi9Gb250QkJveCBbMTEgLTIyMSA2ODMgNzI3XSAvRm9udE5hbWUgL1ZS + T0RLVCtIZWx2ZXRpY2EgL0l0YWxpY0FuZ2xlIDAgL1N0ZW1WCjAgL01heFdpZHRoIDE1 + MDAgL1hIZWlnaHQgNTEzIC9Gb250RmlsZTIgNzUgMCBSID4+CmVuZG9iago3OCAwIG9i + agpbIDI3OCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw + IDAgMCAwIDAgMCAwIDAgMCA1NTYgMCA2NjcKMCAwIDAgMCAwIDAgMCAwIDAgMCA1NTYg + MCAwIDAgMCAwIDcyMiAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTU2IDAgNTAw + CjAgNTU2IDAgNTU2IDU1NiAyMjIgMCAwIDIyMiAwIDU1NiA1NTYgNTU2IDU1NiAzMzMg + NTAwIDI3OCA1NTYgXQplbmRvYmoKMjQgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5 + cGUgL1RydWVUeXBlIC9CYXNlRm9udCAvVlJPREtUK0hlbHZldGljYSAvRm9udERlc2Ny + aXB0b3IKNzcgMCBSIC9XaWR0aHMgNzggMCBSIC9GaXJzdENoYXIgMzIgL0xhc3RDaGFy + IDExNyAvRW5jb2RpbmcgL01hY1JvbWFuRW5jb2RpbmcKPj4KZW5kb2JqCjEgMCBvYmoK + PDwgL1Byb2R1Y2VyIChNYWMgT1MgWCAxMC41LjggUXVhcnR6IFBERkNvbnRleHQpIC9D + cmVhdGlvbkRhdGUgKEQ6MjAxMTA3MTUyMTU0MTlaMDAnMDAnKQovTW9kRGF0ZSAoRDoy + MDExMDcxNTIxNTQxOVowMCcwMCcpID4+CmVuZG9iagp4cmVmCjAgNzkKMDAwMDAwMDAw + MCA2NTUzNSBmIAowMDAwMDc4MTI0IDAwMDAwIG4gCjAwMDAwNTk3MTUgMDAwMDAgbiAK + MDAwMDAwMjk4MSAwMDAwMCBuIAowMDAwMDU0NTg2IDAwMDAwIG4gCjAwMDAwMDAwMjIg + MDAwMDAgbiAKMDAwMDAwMjk2MSAwMDAwMCBuIAowMDAwMDAzMTE4IDAwMDAwIG4gCjAw + MDAwNDk4OTEgMDAwMDAgbiAKMDAwMDAwODYyNSAwMDAwMCBuIAowMDAwMDA5OTkwIDAw + MDAwIG4gCjAwMDAwMTEzOTggMDAwMDAgbiAKMDAwMDAxMjc2NCAwMDAwMCBuIAowMDAw + MDEwMDExIDAwMDAwIG4gCjAwMDAwMTEzNzcgMDAwMDAgbiAKMDAwMDAwNDQ2NCAwMDAw + MCBuIAowMDAwMDA1ODMwIDAwMDAwIG4gCjAwMDAwMDU4NTEgMDAwMDAgbiAKMDAwMDAw + NzIxNyAwMDAwMCBuIAowMDAwMDA3MjM4IDAwMDAwIG4gCjAwMDAwMDg2MDQgMDAwMDAg + biAKMDAwMDAxMjc4NSAwMDAwMCBuIAowMDAwMDE0MTUxIDAwMDAwIG4gCjAwMDAwNTA3 + NTUgMDAwMDAgbiAKMDAwMDA3Nzk0OSAwMDAwMCBuIAowMDAwMDA0MzIxIDAwMDAwIG4g + CjAwMDAwNzA3NDggMDAwMDAgbiAKMDAwMDAwMzc0OSAwMDAwMCBuIAowMDAwMDAzODky + IDAwMDAwIG4gCjAwMDAwMDM0NjMgMDAwMDAgbiAKMDAwMDAwMzYwNiAwMDAwMCBuIAow + MDAwMDA0MDM1IDAwMDAwIG4gCjAwMDAwMDQxNzggMDAwMDAgbiAKMDAwMDA1OTM1OSAw + MDAwMCBuIAowMDAwMDU4NjQ4IDAwMDAwIG4gCjAwMDAwNTc1MjUgMDAwMDAgbiAKMDAw + MDA1NjgxMCAwMDAwMCBuIAowMDAwMDU2MTQ2IDAwMDAwIG4gCjAwMDAwNTUyOTIgMDAw + MDAgbiAKMDAwMDA1NDc0OSAwMDAwMCBuIAowMDAwMDU0NTQ5IDAwMDAwIG4gCjAwMDAw + NDQwMDQgMDAwMDAgbiAKMDAwMDA0ODk1NSAwMDAwMCBuIAowMDAwMDM0MDYwIDAwMDAw + IG4gCjAwMDAwMzkwMTEgMDAwMDAgbiAKMDAwMDAyNDExNiAwMDAwMCBuIAowMDAwMDI5 + MDY3IDAwMDAwIG4gCjAwMDAwMTQxNzIgMDAwMDAgbiAKMDAwMDAxOTEyMyAwMDAwMCBu + IAowMDAwMDI5MDg4IDAwMDAwIG4gCjAwMDAwMzQwMzkgMDAwMDAgbiAKMDAwMDAzOTAz + MiAwMDAwMCBuIAowMDAwMDQzOTgzIDAwMDAwIG4gCjAwMDAwMTkxNDQgMDAwMDAgbiAK + MDAwMDAyNDA5NSAwMDAwMCBuIAowMDAwMDQ4OTc2IDAwMDAwIG4gCjAwMDAwNDk4NzEg + MDAwMDAgbiAKMDAwMDA0OTkyNyAwMDAwMCBuIAowMDAwMDUwNzM1IDAwMDAwIG4gCjAw + MDAwNTA3OTIgMDAwMDAgbiAKMDAwMDA1NDUyOCAwMDAwMCBuIAowMDAwMDU0NjY5IDAw + MDAwIG4gCjAwMDAwNTUyNzIgMDAwMDAgbiAKMDAwMDA1NjEyNiAwMDAwMCBuIAowMDAw + MDU2NzkwIDAwMDAwIG4gCjAwMDAwNTc1MDUgMDAwMDAgbiAKMDAwMDA1ODYyOCAwMDAw + MCBuIAowMDAwMDU5MzM5IDAwMDAwIG4gCjAwMDAwNTk2OTUgMDAwMDAgbiAKMDAwMDA1 + OTg0MyAwMDAwMCBuIAowMDAwMDU5NzYzIDAwMDAwIG4gCjAwMDAwNTk5MjMgMDAwMDAg + biAKMDAwMDA3MDAwNiAwMDAwMCBuIAowMDAwMDcwMDI3IDAwMDAwIG4gCjAwMDAwNzAy + NTQgMDAwMDAgbiAKMDAwMDA3MDkyOCAwMDAwMCBuIAowMDAwMDc3NDc1IDAwMDAwIG4g + CjAwMDAwNzc0OTYgMDAwMDAgbiAKMDAwMDA3NzcxNyAwMDAwMCBuIAp0cmFpbGVyCjw8 + IC9TaXplIDc5IC9Sb290IDYxIDAgUiAvSW5mbyAxIDAgUiAvSUQgWyA8NThiNDlhNWZj + Y2NkZGFiYjU1NDk1ZTVjOWJhNDA4YjY+Cjw1OGI0OWE1ZmNjY2RkYWJiNTU0OTVlNWM5 + YmE0MDhiNj4gXSA+PgpzdGFydHhyZWYKNzgyNjYKJSVFT0YKMSAwIG9iago8PC9BdXRo + b3IgKEpheSBLcmVwc1xuUm9zaGFuIFN1bWJhbHkpL0NyZWF0aW9uRGF0ZSAoRDoyMDA4 + MDgwNDE3NTEwMFopL0NyZWF0b3IgKE9tbmlHcmFmZmxlIDUuMi4zKS9Nb2REYXRlIChE + OjIwMTEwNzE1MjE1NDAwWikvUHJvZHVjZXIgKE1hYyBPUyBYIDEwLjUuOCBRdWFydHog + UERGQ29udGV4dCkvVGl0bGUgKGxvZ2ljYWxfYXJjaC5ncmFmZmxlKT4+CmVuZG9iagp4 + cmVmCjEgMQowMDAwMDgwMDA0IDAwMDAwIG4gCnRyYWlsZXIKPDwvSUQgWzw1OGI0OWE1 + ZmNjY2RkYWJiNTU0OTVlNWM5YmE0MDhiNj4gPDU4YjQ5YTVmY2NjZGRhYmI1NTQ5NWU1 + YzliYTQwOGI2Pl0gL0luZm8gMSAwIFIgL1ByZXYgNzgyNjYgL1Jvb3QgNjEgMCBSIC9T + aXplIDc5Pj4Kc3RhcnR4cmVmCjgwMjIyCiUlRU9GCg== + + QuickLookThumbnail + + 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 + CQAZACBhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFw + cGyUpnvZW7Sw/816oPK5vFX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5y + WFlaAAABLAAAABRnWFlaAAABQAAAABRiWFlaAAABVAAAABR3dHB0AAABaAAAABRjaGFk + AAABfAAAACxyVFJDAAABqAAAAA5nVFJDAAABuAAAAA5iVFJDAAAByAAAAA52Y2d0AAAB + 2AAABhJuZGluAAAH7AAABj5kZXNjAAAOLAAAAG1kc2NtAAAOnAAAAFhtbW9kAAAO9AAA + AChjcHJ0AAAPHAAAACRYWVogAAAAAAAAc60AADtMAAAB2lhZWiAAAAAAAABcWwAAs5AA + ABQmWFlaIAAAAAAAACbOAAARPgAAvSVYWVogAAAAAAAA81IAAQAAAAEWz3NmMzIAAAAA + AAEMQgAABd7///MmAAAHkgAA/ZH///ui///9owAAA9wAAMBsY3VydgAAAAAAAAABAc0A + AGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAdmNndAAAAAAAAAAAAAMBAAAC + AAABhQLzBHgGBgeECQYKiAwLDYwPFhCSEhYTlxUdFpgYDxl8GuAcRR2xHyEglCIEI2ok + wiYWJ18opSnoKyYsXC2TLsov/zE2MmwznzTQNgA3KzhTOXk6mzu7PNg99T8QQClBQkJY + Q21EgEWRRp5Hq0i1Sb1KxEvKTM5N0U7VT9lQ4VHqUvVT/1UJVhJXGFgeWSJaJFskXCRd + I14iXyNgJmEtYjdjQ2RPZVlmYmdqaHFpdWp7a31sf22BboRviHCRcZ1yrXPAdNJ143b0 + eAR5E3ohey58On1Efkx/U4BWgVaCU4NNhEWFO4YxhyWIGIkLif2K7ovejM2NvY6tj6CQ + l5GTkpKTlZSYlZuWnJeemJ2ZnJqbm5iclZ2Rno6fi6CKoYuijaORpJOll6aap5uonKmd + qp2rnKybrZmulK+NsIGxcrJes0e0L7UWtfy24rfIuK25kbp1u1m8PL0evgG+5b/JwLHB + ncKLw3vEbMVdxk7HPsgtyRzKCsr3y+TM0c29zqfPj9Bz0VTSMtMN0+XUvdWS1mfXPNgR + 2OXZuNqL217cMN0C3dTept944ErhHeHy4sfjnORw5UXmGebt58Holelp6jzrD+vi7LTt + hu5X7ybv8vC38XbyMPLl85f0SPT59ar2W/cN9774cPkh+dL6g/sz++T8k/1D/fL+of9Q + //8AAAFbAvMEWwXtB1YI0gpIC8cNQA69EDQRrRMkFKEWExeBGOcaRBucHPgeYB/KIS4i + iSPbJSgmaSemKOAqFitILHgtpC7OL/kxJTJPM3g0nzXENuU4BjkjOj47VjxqPX4+kD+g + QK9BvULJQ9JE2kXgRuZH6UjqSelK50vkTN9N2U7UT9BQz1HPUs9T0FTRVdFWz1fLWMdZ + wlq7W7Ncql2hXphfkmCOYY1ikGOTZJdlm2adZ55onmmdaptrmGyUbZBujG+LcItxkHKY + c6J0q3W0dr13xHjLedB61XvZfNt93H7bf9mA04HLgsGDtYSnhZmGiod6iGqJWIpGizOM + H40LjfeO5I/TkMWRu5K1k7CUrZWolqSXnpiYmZKaipuCnHmdcZ5pn2GgW6FXolWjVKRU + pVSmU6dRqE+pTKpJq0SsP605rjGvKLAbsQux+LLjs8u0srWZtn+3ZLhKuS66E7r2u9q8 + vb2gvoS/aMBQwTrCJ8MXxAjE+cXqxtvHy8i7yarKmcuHzHXNYs5PzzrQJNEK0e7Sz9Ot + 1IvVaNZE1yHX/djY2bPajtto3EHdG9303s3fp+CC4WDiP+Mf5ADk4eXB5qLngehg6T/q + Hur869rst+2U7nHvTPAl8P3xz/Ke82z0OPUE9c/2mfdj+C349/nA+on7Ufwa/OH9qf5x + /zj//wAAAUUCyAQfBYYG+QhRCboLIQyADeoPTBCwEhETeBTYFjgXmBj4GmQb3B1cHt8g + WiHHIykkgSXTJx8oZCmmKuUsIS1WLowvwDDyMiUzVjSFNbA22jgCOSc6SDtmPIM9nD60 + P8lA3EHtQvtECUUTRhxHIkgnSSpKLEsrTCpNJ04kTx9QHVEbUhxTHVQeVR5WHFcZWBZZ + EVoKWwJb+VzuXeRe21/UYM9hzWLNY85kz2XQZs9nzWjKacZqwWu7bLRtrW6mb6Fwn3Gg + cqNzqHSudbN2uHe7eL15vnq+e758u324frR/rIChgZOCgoNvhFuFRoYvhxiIAIjoic+K + toucjIGNZo5MjzOQHZEKkfuS75PklNmVzpbDl7eYqpmdmo+bgJxwnWCeT59AoDGhJaIc + oxOkC6UCpfqm8afnqNyp0qrFq7msrK2ero6vfLBnsU+yNLMYs/m02rW6tpm3eLhWuTS6 + Errvu828qr2HvmW/RMAlwQjB78LZw8TEr8WbxofHcchbyUXKLssXy//M5s3NzrPPl9B4 + 0VfSM9MO0+fUv9WW1m3XRNga2PDZxtqb23DcRd0a3fDexd+d4HfhU+Iy4xLj9OTX5bnm + m+d86F3pPuoe6v7r3uy97ZzufO9d8EDxJvIQ8vzz7PTb9cr2ufep+Jf5hfpz+2H8Tv06 + /if/E///AABuZGluAAAAAAAABjYAAKYXAABVzwAAS7kAAJ6xAAAmzAAAEGwAAFANAABU + OQACQAAAAiFHAAIXCgADAQAAAgAAAAEABQALABIAGwAlADEAPgBNAF0AbgCBAJUAqgDA + ANgA8QELASYBQwFgAX8BoAHCAeYCDAI0Al0ChgKxAtwDCAM1A2QDlQPJA/8ENwRyBK8E + 7QUuBXEFtwX+BkcGkQbeBysHegfLCB4IcwjKCSQJgAneCj8KogsIC3AL2gxGDLUNJQ2Y + Dg0OhQ7/D30P/RB/EQURjRIYEqUTNRPHFFsU7xWEFhkWsBdJF+QYghkjGcYabBsVG8Ec + bx0gHdIehR83H+kgmyFNIgEiuCNyJC4k7CWuJnEnOCgBKMwpmCplKzAr+izDLYsuVS8h + L+8wvzGRMmYzPTQWNPI10TazN5g4gjlxOmQ7XDxYPVc+WT9fQGZBcUJ/Q49Eo0W4Rs9H + 5Uj4SgdLFEwfTSxOOk9MUF9RdlKPU6pUyFXpVwxYMFlVWnpbnlzCXedfDmA2YWBijWO9 + ZO5mImdZaJFpzWsNbFNtoG72cFRxuHMfdIp193dneNl6T3vIfUN+woBDgcWDR4TFhj6H + tYkqiqGMGY2VjxOQlJIYk5+VKZa1mESZ2JtznRaexKB7ojqj/qXIp5WpZas5rRGu67DJ + sqq0jrZ1uF26RrwtvhW//8Hsw9zFz8fFybzLt821z7XRutPC1dDX69oc3Gnez+FG48Tm + Q+jD60btzfBZ8un1fvgY+rb9WP//AAAAAgAFAAsAEwAcACYAMwBBAFAAYQBzAIYAmwCx + AMgA4QD7ARYBMwFQAW8BkAGyAdYB/AIkAk4CeQKlAtEC/QMsA1wDjgPDA/oEMwRvBK0E + 7gUwBXUFvAYFBlAGngbtBz4HkAfkCDoIkgjsCUkJqAoJCm0K0ws8C6gMFgyGDPkNbw3m + DmAO3Q9dD98QZBDrEXYSAxKUEycTvRRWFPEVjhYrFskXaBgJGKsZUBn4GqMbUBwAHLMd + aR4iHt0fmiBYIRUh0iKOI0skCiTKJY0mUycbJ+YotCmEKlcrLCwDLNotsS6GL1owLjEE + MdwytjOSNHE1UjY2Nxw4BTjxOeA60jvJPMQ9xD7HP89A2UHmQvZECEUeRjdHUkhxSZFK + tEvVTPVOEk8sUEZRYFJ9U5tUvVXhVwdYMFlcWopbuVzqXhxfTWB9Ya1i3WQOZUFmd2ev + aOlqJmtmbKht7W82cIJx1HMsdIx18XddeMx6PnuzfSt+poAjgaSDJ4SthjWHvolGisqM + S43Jj0aQw5JDk8WVSZbQmFqZ55t1nQeem6AzodCjdKUgptSoj6pOrBCt1a+dsWizN7UI + tt24tbqPvGy+ScAkwfzD0sWox4DJW8s5zRrO/tDl0s/Uu9ar2J3alNyR3pfgq+LK5PLn + H+lQ64Xtvu/58jn0fPbC+Q37Wv2r//8AAAACAAYADAAVAB8AKwA4AEgAWQBrAH8AlQCs + AMQA3gD6ARYBNQFUAXUBmAG8AeECCAIwAlgCgAKpAtIC/AMnA1QDgwO1A+kEHwRYBJIE + zwUOBU8FkgXXBh4GaAazBwAHTwegB/IIRgicCPQJTwmrCgoKawrPCzYLngwKDHcM6A1b + DdAOSQ7ED0EPwhBFEMsRVBHgEm4TABOUFCsUxBVgFfwWmhc4F9gYehkfGccacRseG84c + gR03HfAerB9pICcg5SGjImAjHyPfJKElZiYuJvgnxSiVKWcqPCsUK+0sxy2gLngvUDAo + MQEx3DK5M5k0fDVhNkk3MzghORE6BDr8O/k8/D4DPw9AH0EyQkhDYkR+RZ1Gv0fkSQxK + NktiTIxNtU7aT/1RIFJDU2lUkVW7VulYGVlMWoJbu1z2XjNfcWCuYeljJGRgZZ1m3Wge + aWNqqmvzbUBuj2/hcTZyj3PudVR2wXg0ea17K3yrfi9/toFAgsyEW4Xth4GJF4qujESN + 149lkPCSeZQElZCXH5ixmkab3p14nxagtqJapAKlr6dkqSGq5qywroCwUrIotAK13re9 + uZ+7hL1rv1PBPcMkxQfG5sjAyprMdM5R0DDSE9P41eDXy9m426ndm9+O4X/jauVP5y7p + Curn7Mbup/CK8nD0WPZD+DH6IfwT/gj//wAAZGVzYwAAAAAAAAATTEVEIENpbmVtYSBE + aXNwbGF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1sdWMAAAAAAAAAAwAA + AAxlblVTAAAAJAAAADRmckZSAAAAJAAAADRpdElUAAAAJAAAADQATABFAEQAIABDAGkA + bgBlAG0AYQAgAEQAaQBzAHAAbABhAHltbW9kAAAAAAAABhAAAJI2ApddkseH1YAAAAAA + AAAAAAAAAAAAAAAAdGV4dAAAAABDb3B5cmlnaHQgQXBwbGUsIEluYy4sIDIwMTEA + ReadOnly NO RowAlign @@ -935,25 +2680,35 @@ WindowInfo CurrentSheet - 0 - DrawerOpen + 0 + ExpandedCanvases + + Frame + {{896, 247}, {931, 908}} + ListView - DrawerTab - Outline - DrawerWidth - 209 - FitInWindow + OutlineWidth + 142 + RightSidebar - Frame - {{326, 213}, {931, 908}} - ShowRuler + Sidebar - ShowStatusBar - + SidebarWidth + 138 VisibleRegion - {{-164, -13}, {916, 794}} + {{2, -14}, {931, 784}} Zoom - 1 + 1 + ZoomValues + + + Canvas 1 + 1 + 1 + + + saveQuickLookFiles + YES diff --git a/docs/logical_arch.png b/docs/logical_arch.png index e3215c7b5e..e36ce0d8c7 100644 Binary files a/docs/logical_arch.png and b/docs/logical_arch.png differ diff --git a/docs/perf/draw_graph.sh b/docs/perf/draw_graph.sh deleted file mode 100755 index e6a7ac6152..0000000000 --- a/docs/perf/draw_graph.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -R --vanilla < Annotations for exposing objects as JMX managed beans. The point of these is to be able to add declarative JMX management - without requiring java 1.6. + without requiring Java 1.6. \ No newline at end of file diff --git a/src/java/voldemort/annotations/package.html b/src/java/voldemort/annotations/package.html index bb8bcb3bb4..7155cb1571 100644 --- a/src/java/voldemort/annotations/package.html +++ b/src/java/voldemort/annotations/package.html @@ -1,5 +1,5 @@ - Misc. annotations. + Annotations used by Voldemort - \ No newline at end of file + diff --git a/src/java/voldemort/client/StoreClient.java b/src/java/voldemort/client/StoreClient.java index f0532a63a0..c199122409 100644 --- a/src/java/voldemort/client/StoreClient.java +++ b/src/java/voldemort/client/StoreClient.java @@ -125,8 +125,9 @@ public interface StoreClient { public Version put(K key, V value); /** - * Like {@link voldemort.store.StoreClient#put(K, V) put}, except that the - * given transforms are applied on the value before writing it to the store + * Like {@link voldemort.client.StoreClient #put(Object, Object)}, except + * that the given transforms are applied on the value before writing it to + * the store * * @param key the key * @param value the value @@ -143,7 +144,6 @@ public interface StoreClient { * @param key The key * @param versioned The value and its versioned * @throws ObsoleteVersionException - * @version version The version of the object */ public Version put(K key, Versioned versioned) throws ObsoleteVersionException; diff --git a/src/java/voldemort/client/package.html b/src/java/voldemort/client/package.html index eb87ca6779..59637b68ba 100644 --- a/src/java/voldemort/client/package.html +++ b/src/java/voldemort/client/package.html @@ -6,5 +6,9 @@ HttpStoreClientFactory and SocketStoreClientFactory both abstract away the threadpool and configuration that is shared between all the {@link voldemort.client.StoreClient StoreClients} that they will produce.

+ +

+ CachingStoreClientFactory is a wrapper around the other two factories to cache store-clients for stores which are used a lot. +

\ No newline at end of file diff --git a/src/java/voldemort/client/protocol/admin/AdminClient.java b/src/java/voldemort/client/protocol/admin/AdminClient.java index 7faa44bab9..2166d9a75e 100644 --- a/src/java/voldemort/client/protocol/admin/AdminClient.java +++ b/src/java/voldemort/client/protocol/admin/AdminClient.java @@ -422,10 +422,14 @@ public Iterator>> fetchEntries(int nodeId, * * @param nodeId Id of the node to fetch from * @param storeName Name of the store - * @param partitionList List of the partitions + * @param replicaToPartitionList Mapping of replica type to partition list * @param filter Custom filter implementation to filter out entries which * should not be fetched. * @param fetchMasterEntries Fetch an entry only if master replica + * @param initialCluster The cluster metadata to use while making the + * decision to fetch entries. This is important during rebalancing + * where-in we want to fetch keys using an older metadata compared to + * the new one. * @param skipRecords Number of records to skip * @return An iterator which allows entries to be streamed as they're being * iterated over. @@ -852,7 +856,7 @@ private HashMap> getReplicaToPartitionMap(int nodeId, * partitions from donorNode, merely copies them. *

* See - * {@link AdminClient#migratePartitions(int, int, String, HashMap, VoldemortFilter, Cluster)} + * {@link AdminClient#migratePartitions(int, int, String, HashMap, VoldemortFilter, Cluster, boolean)} * for more details. * * @@ -1535,7 +1539,7 @@ public void deleteStore(String storeName, int nodeId) { /** * Set cluster info for AdminClient to use. * - * @param cluster + * @param cluster Set the current cluster */ public void setAdminClientCluster(Cluster cluster) { this.currentCluster = cluster; @@ -1544,7 +1548,7 @@ public void setAdminClientCluster(Cluster cluster) { /** * Get the cluster info AdminClient is using. * - * @return + * @return Returns the current cluster being used by the admin client */ public Cluster getAdminClientCluster() { return currentCluster; @@ -1673,7 +1677,8 @@ public String swapStore(int nodeId, String storeName, String storeDir) { * * @param nodeId The id of the node on which the stores are present * @param storeNames List of all the store names - * @param Returns a map of store name to its corresponding RO storage format + * @return Returns a map of store name to its corresponding RO storage + * format */ public Map getROStorageFormat(int nodeId, List storeNames) { VAdminProto.GetROStorageFormatRequest.Builder getRORequest = VAdminProto.GetROStorageFormatRequest.newBuilder() @@ -1805,7 +1810,7 @@ public Map getROMaxVersion(int nodeId, List storeNames) { * where-in we find the max versions on each machine and then return the max * of all of them * - * @param storeName List of all read-only stores + * @param storeNames List of all read-only stores * @return A map of store-name to their corresponding max version id */ public Map getROMaxVersion(List storeNames) { @@ -2036,13 +2041,13 @@ public void fetchPartitionFiles(int nodeId, * @param transitionCluster Transition cluster * @param rebalancePartitionPlanList The list of rebalance partition info * plans - * @param completedNodeIds Set of node ids which have completed successfully * @param swapRO Boolean indicating if we need to swap RO stores * @param changeClusterMetadata Boolean indicating if we need to change * cluster metadata * @param changeRebalanceState Boolean indicating if we need to change * rebalancing state * @param rollback Do we want to do a rollback step in case of failures? + * @param failEarly Do we want to fail early while doing state change? */ public void rebalanceStateChange(Cluster existingCluster, Cluster transitionCluster, diff --git a/src/java/voldemort/client/protocol/admin/filter/package.html b/src/java/voldemort/client/protocol/admin/filter/package.html new file mode 100644 index 0000000000..d56a93b542 --- /dev/null +++ b/src/java/voldemort/client/protocol/admin/filter/package.html @@ -0,0 +1,5 @@ + + + Classes that deal with filters that can be used by our streaming API + + diff --git a/src/java/voldemort/client/protocol/admin/package.html b/src/java/voldemort/client/protocol/admin/package.html new file mode 100644 index 0000000000..0d0a0e1760 --- /dev/null +++ b/src/java/voldemort/client/protocol/admin/package.html @@ -0,0 +1,5 @@ + + + Classes that abstract admin based Voldemort requests. + + diff --git a/src/java/voldemort/client/protocol/pb/package.html b/src/java/voldemort/client/protocol/pb/package.html index a423b7d16d..f69ea3de28 100644 --- a/src/java/voldemort/client/protocol/pb/package.html +++ b/src/java/voldemort/client/protocol/pb/package.html @@ -2,7 +2,7 @@ A protocol buffers based client-side request format.

- Provides a protocol buffers based implementation of {@link voldemort.client.protocol.RequestFormat} + Provides a protocol buffers based implementation of {@link voldemort.client.protocol.RequestFormat}

\ No newline at end of file diff --git a/src/java/voldemort/client/protocol/vold/package.html b/src/java/voldemort/client/protocol/vold/package.html new file mode 100644 index 0000000000..a7e7fd17a5 --- /dev/null +++ b/src/java/voldemort/client/protocol/vold/package.html @@ -0,0 +1,5 @@ + + + Classes specific to our native Voldemort protocol. + + diff --git a/src/java/voldemort/client/rebalance/RebalanceClusterPlan.java b/src/java/voldemort/client/rebalance/RebalanceClusterPlan.java index 131e5fa29e..53ed36dcad 100644 --- a/src/java/voldemort/client/rebalance/RebalanceClusterPlan.java +++ b/src/java/voldemort/client/rebalance/RebalanceClusterPlan.java @@ -46,7 +46,7 @@ public class RebalanceClusterPlan { * * @param currentCluster The current cluster definition * @param targetCluster The target cluster definition - * @param storeDefList The list of store definitions to rebalance + * @param storeDefs The list of store definitions to rebalance * @param enabledDeletePartition Delete the RW partition on the donor side * after rebalance */ diff --git a/src/java/voldemort/client/rebalance/RebalanceController.java b/src/java/voldemort/client/rebalance/RebalanceController.java index bf908d1fd7..afe48daa46 100644 --- a/src/java/voldemort/client/rebalance/RebalanceController.java +++ b/src/java/voldemort/client/rebalance/RebalanceController.java @@ -99,7 +99,7 @@ public void rebalance(Cluster currentCluster, final Cluster targetCluster) { * Does basic verification of the metadata + server state. Finally starts * the rebalancing. * - * @param newCurrentCluster The cluster currently used on each node + * @param currentCluster The cluster currently used on each node * @param targetCluster The desired cluster after rebalance * @param storeDefs Stores to rebalance */ diff --git a/src/java/voldemort/client/rebalance/package.html b/src/java/voldemort/client/rebalance/package.html new file mode 100644 index 0000000000..33cbcbac8c --- /dev/null +++ b/src/java/voldemort/client/rebalance/package.html @@ -0,0 +1,9 @@ + + + All classes associated with the rebalance controller tool. + +

+ The main controller is {@link voldemort.client.rebalance.RebalanceController} +

+ + diff --git a/src/java/voldemort/cluster/failuredetector/FailureDetector.java b/src/java/voldemort/cluster/failuredetector/FailureDetector.java index 021bb48488..a656bfb02b 100644 --- a/src/java/voldemort/cluster/failuredetector/FailureDetector.java +++ b/src/java/voldemort/cluster/failuredetector/FailureDetector.java @@ -63,7 +63,7 @@ * recordException and recordSuccess should (not must) provide some input to the * internal algorithm. * - * @see RoutedStore + * @see voldemort.store.routed.RoutedStore */ public interface FailureDetector { diff --git a/src/java/voldemort/cluster/failuredetector/FailureDetectorConfig.java b/src/java/voldemort/cluster/failuredetector/FailureDetectorConfig.java index 735b0cd7e3..2853b46c45 100644 --- a/src/java/voldemort/cluster/failuredetector/FailureDetectorConfig.java +++ b/src/java/voldemort/cluster/failuredetector/FailureDetectorConfig.java @@ -99,7 +99,7 @@ public FailureDetectorConfig() { /** * Constructs a new FailureDetectorConfig from a server perspective (via * {@link VoldemortConfig}). - * + * *

* * Note: the {@link #setNodes(Collection)} and @@ -353,7 +353,7 @@ public long getThresholdInterval() { * Note: this is only used by the {@link ThresholdFailureDetector} * implementation. * - * @param Millisecond interval for the success ratio + * @param thresholdInterval Millisecond interval for the success ratio * * @exception IllegalArgumentException Thrown if the thresholdInterval * parameter is less than or equal to 0 @@ -404,7 +404,8 @@ public long getAsyncRecoveryInterval() { * {@link AsyncRecoveryFailureDetector} and {@link ThresholdFailureDetector} * implementations. * - * @param Number of milliseconds to wait between recovery attempts + * @param asyncRecoveryInterval Number of milliseconds to wait between + * recovery attempts * * @exception IllegalArgumentException Thrown if the thresholdInterval * parameter is less than or equal to 0 diff --git a/src/java/voldemort/cluster/failuredetector/package.html b/src/java/voldemort/cluster/failuredetector/package.html new file mode 100644 index 0000000000..cb44734dfd --- /dev/null +++ b/src/java/voldemort/cluster/failuredetector/package.html @@ -0,0 +1,9 @@ + + + Classes associated with client side failure detectors. + +

+ We currently support two types of failure detectors - {@link voldemort.cluster.failuredetector.BannagePeriodFailureDetector} and {@link voldemort.cluster.failuredetector.ThresholdFailureDetector} +

+ + \ No newline at end of file diff --git a/src/java/voldemort/package.html b/src/java/voldemort/package.html new file mode 100644 index 0000000000..69ff82d6c3 --- /dev/null +++ b/src/java/voldemort/package.html @@ -0,0 +1,5 @@ + + + The root package. Place for all shell tools. + + diff --git a/src/java/voldemort/routing/ZoneRoutingStrategy.java b/src/java/voldemort/routing/ZoneRoutingStrategy.java index fdb665e83f..b46bab40be 100644 --- a/src/java/voldemort/routing/ZoneRoutingStrategy.java +++ b/src/java/voldemort/routing/ZoneRoutingStrategy.java @@ -51,7 +51,7 @@ public ZoneRoutingStrategy(HashFunction hash, /** * Get the replication partitions list for the given partition. * - * @param partitionId + * @param index Partition id for which we are generating the preference list * @return The List of partitionId where this partition is replicated. */ @Override diff --git a/src/java/voldemort/routing/package.html b/src/java/voldemort/routing/package.html index 93fd2370ba..3bbd8918de 100644 --- a/src/java/voldemort/routing/package.html +++ b/src/java/voldemort/routing/package.html @@ -1,5 +1,9 @@ - Routing strategies for mapping requests into the Voldemort cluster. + Routing strategies for mapping requests into the Voldemort cluster. + +

+ Couple of implementations here - normal consistent hashing ( {@link voldemort.routing.ConsistentRoutingStrategy} ) and zone based routing ( {@link voldemort.routing.ZoneRoutingStrategy}) +

\ No newline at end of file diff --git a/src/java/voldemort/serialization/avro/AvroGenericSerializer.java b/src/java/voldemort/serialization/avro/AvroGenericSerializer.java index ca5c4fc8a8..a9a53c790b 100644 --- a/src/java/voldemort/serialization/avro/AvroGenericSerializer.java +++ b/src/java/voldemort/serialization/avro/AvroGenericSerializer.java @@ -35,9 +35,6 @@ * representation is best for applications which deal with dynamic data, whose * schemas are not known until runtime. * - * @see http - * ://hadoop.apache.org/avro/docs/current/api/java/org/apache/avro/generic - * /package-summary.html */ public class AvroGenericSerializer implements Serializer { diff --git a/src/java/voldemort/serialization/avro/AvroReflectiveSerializer.java b/src/java/voldemort/serialization/avro/AvroReflectiveSerializer.java index f32bfc1f86..9ea303a197 100644 --- a/src/java/voldemort/serialization/avro/AvroReflectiveSerializer.java +++ b/src/java/voldemort/serialization/avro/AvroReflectiveSerializer.java @@ -47,9 +47,6 @@ * For now we only support the class case. *

* - * @see http - * ://hadoop.apache.org/avro/docs/current/api/java/org/apache/avro/reflect - * /package-summary.html */ public class AvroReflectiveSerializer implements Serializer { diff --git a/src/java/voldemort/serialization/avro/AvroSpecificSerializer.java b/src/java/voldemort/serialization/avro/AvroSpecificSerializer.java index 7fd77ec69e..dd9a30f9f4 100644 --- a/src/java/voldemort/serialization/avro/AvroSpecificSerializer.java +++ b/src/java/voldemort/serialization/avro/AvroSpecificSerializer.java @@ -43,9 +43,6 @@ * recommended. *

* - * @see http - * ://avro.apache.org/docs/1.4.1/api/java/org/apache/avro/specific/package - * -summary.html */ public class AvroSpecificSerializer implements Serializer { diff --git a/src/java/voldemort/serialization/avro/package.html b/src/java/voldemort/serialization/avro/package.html new file mode 100644 index 0000000000..0ebae5a40d --- /dev/null +++ b/src/java/voldemort/serialization/avro/package.html @@ -0,0 +1,5 @@ + + + Classes associated with Avro specific serializers + + \ No newline at end of file diff --git a/src/java/voldemort/serialization/json/package.html b/src/java/voldemort/serialization/json/package.html new file mode 100644 index 0000000000..21f18892ae --- /dev/null +++ b/src/java/voldemort/serialization/json/package.html @@ -0,0 +1,5 @@ + + + Classes associated with our custom binary JSON serializers + + \ No newline at end of file diff --git a/src/java/voldemort/serialization/protobuf/package.html b/src/java/voldemort/serialization/protobuf/package.html new file mode 100644 index 0000000000..79c763c550 --- /dev/null +++ b/src/java/voldemort/serialization/protobuf/package.html @@ -0,0 +1,5 @@ + + + Classes associated with Protocol buffers serializers + + \ No newline at end of file diff --git a/src/java/voldemort/serialization/thrift/package.html b/src/java/voldemort/serialization/thrift/package.html new file mode 100644 index 0000000000..5d81430466 --- /dev/null +++ b/src/java/voldemort/serialization/thrift/package.html @@ -0,0 +1,5 @@ + + + Classes associated with Thrift serializers + + \ No newline at end of file diff --git a/src/java/voldemort/server/RequestRoutingType.java b/src/java/voldemort/server/RequestRoutingType.java index 8a262e0d13..a262a0004c 100644 --- a/src/java/voldemort/server/RequestRoutingType.java +++ b/src/java/voldemort/server/RequestRoutingType.java @@ -14,12 +14,12 @@ private RequestRoutingType(int routingType) { } /** - * ignore checks takes precedence over should_route and force it to be local + * Ignore checks takes precedence over should_route and force it to be local * store. * - * @param should_route - * @param ignore_checks - * @return + * @param should_route Requests which are forcefully routed + * @param ignore_checks Ignore the checks for metadata + * @return The enum corresponding to the flags */ public static RequestRoutingType getRequestRoutingType(boolean should_route, boolean ignore_checks) { @@ -40,9 +40,8 @@ public int getRoutingTypeCode() { * ignore checks takes precedence over should_route and force it to be local * store. * - * @param should_route - * @param ignore_checks - * @return + * @param routingCode The routing code + * @return The corresponding enum */ public static RequestRoutingType getRequestRoutingType(int routingCode) { switch(routingCode) { diff --git a/src/java/voldemort/server/gossip/package.html b/src/java/voldemort/server/gossip/package.html new file mode 100644 index 0000000000..25956ba4a9 --- /dev/null +++ b/src/java/voldemort/server/gossip/package.html @@ -0,0 +1,5 @@ + + + Classes associated with the Gossip feature. + + \ No newline at end of file diff --git a/src/java/voldemort/server/http/gui/package.html b/src/java/voldemort/server/http/gui/package.html new file mode 100644 index 0000000000..5b5006ec53 --- /dev/null +++ b/src/java/voldemort/server/http/gui/package.html @@ -0,0 +1,5 @@ + + + Simple GUI. Better version can be found in contrib/web-manager + + \ No newline at end of file diff --git a/src/java/voldemort/server/jmx/package.html b/src/java/voldemort/server/jmx/package.html new file mode 100644 index 0000000000..d2868e27fa --- /dev/null +++ b/src/java/voldemort/server/jmx/package.html @@ -0,0 +1,5 @@ + + + Service which deals with the JMX registration + + \ No newline at end of file diff --git a/src/java/voldemort/server/protocol/RequestHandlerFactory.java b/src/java/voldemort/server/protocol/RequestHandlerFactory.java index 63735dfb8e..697d69aca1 100644 --- a/src/java/voldemort/server/protocol/RequestHandlerFactory.java +++ b/src/java/voldemort/server/protocol/RequestHandlerFactory.java @@ -4,8 +4,7 @@ /** * A factory that gets the appropriate request handler for a given - * {@link voldemort.client.RequestFormatType}. - * + * {@link voldemort.client.protocol.RequestFormatType}. * */ public interface RequestHandlerFactory { diff --git a/src/java/voldemort/server/protocol/admin/package.html b/src/java/voldemort/server/protocol/admin/package.html new file mode 100644 index 0000000000..49e0be1150 --- /dev/null +++ b/src/java/voldemort/server/protocol/admin/package.html @@ -0,0 +1,5 @@ + + + Server side implementation of admin based requests + +}. \ No newline at end of file diff --git a/src/java/voldemort/server/protocol/pb/package.html b/src/java/voldemort/server/protocol/pb/package.html index 6260d56617..cee41b98bf 100644 --- a/src/java/voldemort/server/protocol/pb/package.html +++ b/src/java/voldemort/server/protocol/pb/package.html @@ -1,5 +1,5 @@ - A protocol buffers based @{link voldemort.server.protocol.RequestHandler + Server side handling of protocol buffer based requests }. \ No newline at end of file diff --git a/src/java/voldemort/server/protocol/vold/package.html b/src/java/voldemort/server/protocol/vold/package.html new file mode 100644 index 0000000000..8c0ac887db --- /dev/null +++ b/src/java/voldemort/server/protocol/vold/package.html @@ -0,0 +1,5 @@ + + + Server side handling of native Voldemort protocol requests + +}. \ No newline at end of file diff --git a/src/java/voldemort/server/rebalance/package.html b/src/java/voldemort/server/rebalance/package.html new file mode 100644 index 0000000000..d9d9e93c0e --- /dev/null +++ b/src/java/voldemort/server/rebalance/package.html @@ -0,0 +1,9 @@ + + + Classes dealing with rebalancing on the server side. + +

+ This includes the service dealing with rebalancing + state information +

+ +}. \ No newline at end of file diff --git a/src/java/voldemort/server/scheduler/package.html b/src/java/voldemort/server/scheduler/package.html new file mode 100644 index 0000000000..677704853a --- /dev/null +++ b/src/java/voldemort/server/scheduler/package.html @@ -0,0 +1,5 @@ + + + The scheduler service ( which runs a job every n minutes ) + The actual jobs as well. + + \ No newline at end of file diff --git a/src/java/voldemort/server/scheduler/slop/package.html b/src/java/voldemort/server/scheduler/slop/package.html new file mode 100644 index 0000000000..1a21fb0160 --- /dev/null +++ b/src/java/voldemort/server/scheduler/slop/package.html @@ -0,0 +1,9 @@ + + + The background jobs associated with the slop store. + +

+ This is used by the Hinted handoff feature. +

+ + \ No newline at end of file diff --git a/src/java/voldemort/server/socket/package.html b/src/java/voldemort/server/socket/package.html new file mode 100644 index 0000000000..a042f6afcb --- /dev/null +++ b/src/java/voldemort/server/socket/package.html @@ -0,0 +1,5 @@ + + + The services on the server side which handle normal + admin requests + + \ No newline at end of file diff --git a/src/java/voldemort/server/storage/package.html b/src/java/voldemort/server/storage/package.html new file mode 100644 index 0000000000..b5b256731d --- /dev/null +++ b/src/java/voldemort/server/storage/package.html @@ -0,0 +1,5 @@ + + + The storage service which handles instantiating all the stores and their corresponding engines. + + \ No newline at end of file diff --git a/src/java/voldemort/store/StoreUtils.java b/src/java/voldemort/store/StoreUtils.java index d1f55513cf..f3a7d96df9 100644 --- a/src/java/voldemort/store/StoreUtils.java +++ b/src/java/voldemort/store/StoreUtils.java @@ -41,8 +41,7 @@ import com.google.common.collect.Maps; /** - * Check that the given key is valid - * + * Group of store utilities * */ public class StoreUtils { @@ -109,7 +108,7 @@ public static HashMap newEmptyHashMap(Iterable iterable) { * This is typically used in finally blocks to prevent an exception thrown * during close from hiding an exception thrown inside the try. * - * @param stream the Closeable to close, may be null. + * @param c The Closeable to close, may be null. */ public static void close(Closeable c) { if(c != null) { @@ -127,7 +126,7 @@ public static void close(Closeable c) { * * @param key The key we are checking * @param routingStrategy The routing strategy - * @param currentNodeId Current node id + * @param currentNode Current node */ public static void assertValidMetadata(ByteArray key, RoutingStrategy routingStrategy, diff --git a/src/java/voldemort/store/compress/GzipCompressionStrategy.java b/src/java/voldemort/store/compress/GzipCompressionStrategy.java index e4f624a04e..28e706c805 100644 --- a/src/java/voldemort/store/compress/GzipCompressionStrategy.java +++ b/src/java/voldemort/store/compress/GzipCompressionStrategy.java @@ -9,9 +9,6 @@ /** * Implementation of CompressionStrategy for the gzip format. */ -/* - * In the future we may want to support different compression levels. - */ public class GzipCompressionStrategy extends StreamCompressionStrategy { @Override diff --git a/src/java/voldemort/store/compress/lzf/package.html b/src/java/voldemort/store/compress/lzf/package.html new file mode 100644 index 0000000000..622b973c5e --- /dev/null +++ b/src/java/voldemort/store/compress/lzf/package.html @@ -0,0 +1,5 @@ + + + Classes associated with LZF compression on storage side. + + \ No newline at end of file diff --git a/src/java/voldemort/store/compress/package.html b/src/java/voldemort/store/compress/package.html new file mode 100644 index 0000000000..5622578e34 --- /dev/null +++ b/src/java/voldemort/store/compress/package.html @@ -0,0 +1,5 @@ + + + Classes associated with compression on the server ( storage ) side. + + \ No newline at end of file diff --git a/src/java/voldemort/store/configuration/package.html b/src/java/voldemort/store/configuration/package.html index e3779c834d..a0d1141e1e 100644 --- a/src/java/voldemort/store/configuration/package.html +++ b/src/java/voldemort/store/configuration/package.html @@ -1,5 +1,5 @@ - A storage engine to persist metadata on a server. bootstraps files from filesystem and keep backups. + A storage engine to persist metadata on a server. Bootstraps files from filesystem and saves backups. \ No newline at end of file diff --git a/src/java/voldemort/store/gzip/package.html b/src/java/voldemort/store/gzip/package.html new file mode 100644 index 0000000000..b6072c6364 --- /dev/null +++ b/src/java/voldemort/store/gzip/package.html @@ -0,0 +1,5 @@ + + + Storage engine which gzips the content before delegating it down. + + \ No newline at end of file diff --git a/src/java/voldemort/store/http/package.html b/src/java/voldemort/store/http/package.html new file mode 100644 index 0000000000..ca0be20ae4 --- /dev/null +++ b/src/java/voldemort/store/http/package.html @@ -0,0 +1,5 @@ + + + HTTP based storage engine + + \ No newline at end of file diff --git a/src/java/voldemort/store/invalidmetadata/InvalidMetadataCheckingStore.java b/src/java/voldemort/store/invalidmetadata/InvalidMetadataCheckingStore.java index f8dc74b38d..c4d126f43e 100644 --- a/src/java/voldemort/store/invalidmetadata/InvalidMetadataCheckingStore.java +++ b/src/java/voldemort/store/invalidmetadata/InvalidMetadataCheckingStore.java @@ -48,10 +48,10 @@ public class InvalidMetadataCheckingStore extends DelegatingStore innerStore, diff --git a/src/java/voldemort/store/invalidmetadata/package.html b/src/java/voldemort/store/invalidmetadata/package.html new file mode 100644 index 0000000000..5cc17d5ff5 --- /dev/null +++ b/src/java/voldemort/store/invalidmetadata/package.html @@ -0,0 +1,5 @@ + + + Server side store which checks whether the tuples coming to this node are valid. If not, it throws a {@link voldemort.store.InvalidMetadataException} + + \ No newline at end of file diff --git a/src/java/voldemort/store/logging/package.html b/src/java/voldemort/store/logging/package.html new file mode 100644 index 0000000000..491986358b --- /dev/null +++ b/src/java/voldemort/store/logging/package.html @@ -0,0 +1,5 @@ + + + A wrapper store which deals with logging. + + \ No newline at end of file diff --git a/src/java/voldemort/store/metadata/package.html b/src/java/voldemort/store/metadata/package.html new file mode 100644 index 0000000000..6159cfa43e --- /dev/null +++ b/src/java/voldemort/store/metadata/package.html @@ -0,0 +1,5 @@ + + + Our in-memory metadata store on the server which is backed by the configuration files. + + \ No newline at end of file diff --git a/src/java/voldemort/store/nonblockingstore/package.html b/src/java/voldemort/store/nonblockingstore/package.html new file mode 100644 index 0000000000..1e8d0c1db4 --- /dev/null +++ b/src/java/voldemort/store/nonblockingstore/package.html @@ -0,0 +1,5 @@ + + + Non-blocking store which deals with async requests. Used on the client side. + + \ No newline at end of file diff --git a/src/java/voldemort/store/readonly/chunk/package.html b/src/java/voldemort/store/readonly/chunk/package.html new file mode 100644 index 0000000000..ee1d45f7c5 --- /dev/null +++ b/src/java/voldemort/store/readonly/chunk/package.html @@ -0,0 +1,5 @@ + + + Read-only store classes for understanding various format changes. + + \ No newline at end of file diff --git a/src/java/voldemort/store/readonly/package.html b/src/java/voldemort/store/readonly/package.html index 130c86e728..8e104dde94 100644 --- a/src/java/voldemort/store/readonly/package.html +++ b/src/java/voldemort/store/readonly/package.html @@ -1,5 +1,5 @@ - A storage engine that provides very efficient read-only access to large sorted files of data. + A storage engine that provides very efficient read-only access to large sorted files of data. \ No newline at end of file diff --git a/src/java/voldemort/store/readonly/swapper/AdminStoreSwapper.java b/src/java/voldemort/store/readonly/swapper/AdminStoreSwapper.java index 7ba42c65c1..51f41f1ff3 100644 --- a/src/java/voldemort/store/readonly/swapper/AdminStoreSwapper.java +++ b/src/java/voldemort/store/readonly/swapper/AdminStoreSwapper.java @@ -92,9 +92,9 @@ public void invokeRollback(final String storeName, final long pushVersion) { } @Override - protected List invokeFetch(final String storeName, - final String basePath, - final long pushVersion) { + public List invokeFetch(final String storeName, + final String basePath, + final long pushVersion) { // do fetch Map> fetchDirs = new HashMap>(); for(final Node node: cluster.getNodes()) { @@ -163,7 +163,7 @@ public String call() throws Exception { } @Override - protected void invokeSwap(final String storeName, final List fetchFiles) { + public void invokeSwap(final String storeName, final List fetchFiles) { // do swap Map previousDirs = new HashMap(); HashMap exceptions = Maps.newHashMap(); diff --git a/src/java/voldemort/store/readonly/swapper/HttpStoreSwapper.java b/src/java/voldemort/store/readonly/swapper/HttpStoreSwapper.java index d0ba6c18a6..5b1d06a00e 100644 --- a/src/java/voldemort/store/readonly/swapper/HttpStoreSwapper.java +++ b/src/java/voldemort/store/readonly/swapper/HttpStoreSwapper.java @@ -54,9 +54,9 @@ public HttpStoreSwapper(Cluster cluster, } @Override - protected List invokeFetch(final String storeName, - final String basePath, - final long pushVersion) { + public List invokeFetch(final String storeName, + final String basePath, + final long pushVersion) { // do fetch Map> fetchDirs = new HashMap>(); for(final Node node: cluster.getNodes()) { @@ -142,7 +142,7 @@ public String call() throws Exception { } @Override - protected void invokeSwap(final String storeName, final List fetchFiles) { + public void invokeSwap(final String storeName, final List fetchFiles) { // do swap in parallel Map previousDirs = new HashMap(); HashMap exceptions = Maps.newHashMap(); @@ -216,7 +216,7 @@ protected void invokeSwap(final String storeName, final List fetchFiles) } @Override - protected void invokeRollback(String storeName, final long pushVersion) { + public void invokeRollback(String storeName, final long pushVersion) { Exception exception = null; for(Node node: cluster.getNodes()) { try { diff --git a/src/java/voldemort/store/readonly/swapper/StoreSwapper.java b/src/java/voldemort/store/readonly/swapper/StoreSwapper.java index 2770b240cc..1e5c8c5f7b 100644 --- a/src/java/voldemort/store/readonly/swapper/StoreSwapper.java +++ b/src/java/voldemort/store/readonly/swapper/StoreSwapper.java @@ -52,11 +52,11 @@ public void swapStoreData(String storeName, String basePath, long pushVersion) { invokeSwap(storeName, fetched); } - protected abstract List invokeFetch(String storeName, String basePath, long pushVersion); + public abstract List invokeFetch(String storeName, String basePath, long pushVersion); - protected abstract void invokeSwap(String storeName, List fetchFiles); + public abstract void invokeSwap(String storeName, List fetchFiles); - protected abstract void invokeRollback(String storeName, long pushVersion); + public abstract void invokeRollback(String storeName, long pushVersion); public static void main(String[] args) throws Exception { OptionParser parser = new OptionParser(); diff --git a/src/java/voldemort/store/readonly/swapper/package.html b/src/java/voldemort/store/readonly/swapper/package.html new file mode 100644 index 0000000000..99fea36f5b --- /dev/null +++ b/src/java/voldemort/store/readonly/swapper/package.html @@ -0,0 +1,5 @@ + + + Classes used for fetching and swapping read-only stores. + + \ No newline at end of file diff --git a/src/java/voldemort/store/rebalancing/package.html b/src/java/voldemort/store/rebalancing/package.html new file mode 100644 index 0000000000..9b881ebd91 --- /dev/null +++ b/src/java/voldemort/store/rebalancing/package.html @@ -0,0 +1,5 @@ + + + Server side wrapper stores used for redirection during rebalancing. + + \ No newline at end of file diff --git a/src/java/voldemort/store/routed/NodeValue.java b/src/java/voldemort/store/routed/NodeValue.java index 45777ed7cd..01dda95a6a 100644 --- a/src/java/voldemort/store/routed/NodeValue.java +++ b/src/java/voldemort/store/routed/NodeValue.java @@ -31,7 +31,6 @@ * * @param The type of the key * @param The type of the value - * @param The type of transforms to be applied on * */ public final class NodeValue implements Serializable, Cloneable { diff --git a/src/java/voldemort/store/routed/Pipeline.java b/src/java/voldemort/store/routed/Pipeline.java index 2ea5b82e9d..255c682571 100644 --- a/src/java/voldemort/store/routed/Pipeline.java +++ b/src/java/voldemort/store/routed/Pipeline.java @@ -33,10 +33,9 @@ * {@link Action} is executed in response to the Pipeline receiving an event. * The majority of the events are self-initiated from within the Pipeline * itself. The only case thus-far where external entities create events are in - * response to asynchronous responses from servers ({@link AcknowledgeResponse}, - * for example). A {@link Response} instance is created on completion of an - * asynchronous request and is fed back into the Pipeline where an appropriate - * 'response handler' action is executed. + * response to asynchronous responses from servers. A {@link Response} instance + * is created on completion of an asynchronous request and is fed back into the + * Pipeline where an appropriate 'response handler' action is executed. * *

* @@ -124,9 +123,8 @@ public void addEventAction(Event event, Action action) { } /** - * Pipeline can't proceed further. If hinted handoff is enabled go to - * go to a state where it can be performed, otherwise go straight to - * error state. + * Pipeline can't proceed further. If hinted handoff is enabled go to go to + * a state where it can be performed, otherwise go straight to error state. */ public void abort() { @@ -187,7 +185,8 @@ public void execute() { } if(event == null) - throw new VoldemortException(operation.getSimpleName() + " returned a null event"); + throw new VoldemortException(operation.getSimpleName() + + " returned a null event"); if(event.equals(Event.ERROR)) { if(logger.isTraceEnabled()) @@ -209,7 +208,8 @@ public void execute() { if(logger.isTraceEnabled()) logger.trace(operation.getSimpleName() + " request, action " - + action.getClass().getSimpleName() + " to handle " + event + " event"); + + action.getClass().getSimpleName() + " to handle " + event + + " event"); action.execute(this); } diff --git a/src/java/voldemort/store/routed/PipelineData.java b/src/java/voldemort/store/routed/PipelineData.java index 97365d1eef..dc799addd3 100644 --- a/src/java/voldemort/store/routed/PipelineData.java +++ b/src/java/voldemort/store/routed/PipelineData.java @@ -22,6 +22,7 @@ import voldemort.VoldemortException; import voldemort.cluster.Node; +import voldemort.store.routed.Pipeline.Event; /** * PipelineData includes a common set of data that is used to represent the diff --git a/src/java/voldemort/store/routed/PutPipelineData.java b/src/java/voldemort/store/routed/PutPipelineData.java index 1e36ce5c3e..5f119a9e5f 100644 --- a/src/java/voldemort/store/routed/PutPipelineData.java +++ b/src/java/voldemort/store/routed/PutPipelineData.java @@ -81,7 +81,7 @@ public void setVersionedCopy(Versioned versionedCopy) { /** * Set start time to perform timeout correctly * - * @param nanoTime + * @param startTimeNs */ public void setStartTimeNs(long startTimeNs) { this.startTimeNs = startTimeNs; @@ -90,7 +90,6 @@ public void setStartTimeNs(long startTimeNs) { /** * Get start time to perform timeout correctly * - * @param nanoTime */ public long getStartTimeNs() { return this.startTimeNs; diff --git a/src/java/voldemort/store/routed/Response.java b/src/java/voldemort/store/routed/Response.java index e6c7ad56d5..1e433212db 100644 --- a/src/java/voldemort/store/routed/Response.java +++ b/src/java/voldemort/store/routed/Response.java @@ -37,7 +37,7 @@ * {@link NonblockingStore} will invoke the {@link NonblockingStoreCallback} * instances's requestComplete method which will in turn package up * the data in a Response object that is sent to the {@link Pipeline} via an - * {@link Event#RESPONSE_RECEIVED} event. + * {@link Event#RESPONSES_RECEIVED} event. * *

* @@ -54,7 +54,6 @@ * @param Type for the key used in the request * @param Type for the value returned by the call * - * @see BasicResponseCallback * @see NonblockingStore * @see NonblockingStoreCallback * @see Pipeline diff --git a/src/java/voldemort/store/routed/ThreadPoolRoutedStore.java b/src/java/voldemort/store/routed/ThreadPoolRoutedStore.java index 3d874404b2..9fec120cd2 100644 --- a/src/java/voldemort/store/routed/ThreadPoolRoutedStore.java +++ b/src/java/voldemort/store/routed/ThreadPoolRoutedStore.java @@ -89,12 +89,12 @@ public List execute(Store store, * * @param name The name of the store * @param innerStores The mapping of node to client - * @param routingStrategy The strategy for choosing a node given a key - * @param requiredReads The minimum number of reads that must complete - * before the operation will return - * @param requiredWrites The minimum number of writes that must complete - * before the operation will return + * @param cluster The cluster metadata + * @param storeDef The store definition * @param numberOfThreads The number of threads in the threadpool + * @param repairReads Do we want to do read repairs? + * @param timeoutMs The timeout in ms + * @param failureDetector The failure detector implementation */ public ThreadPoolRoutedStore(String name, Map> innerStores, @@ -120,12 +120,13 @@ public ThreadPoolRoutedStore(String name, * * @param name The name of the store * @param innerStores The mapping of node to client - * @param routingStrategy The strategy for choosing a node given a key - * @param requiredReads The minimum number of reads that must complete - * before the operation will return - * @param requiredWrites The minimum number of writes that must complete - * before the operation will return + * @param cluster The cluster metadata + * @param storeDef The store definition + * @param repairReads Do we want to do read repairs? * @param threadPool The threadpool to use + * @param timeoutMs The timeout in ms + * @param failureDetector The failure detector implementation + * @param time Time instance */ public ThreadPoolRoutedStore(String name, Map> innerStores, diff --git a/src/java/voldemort/store/routed/action/Action.java b/src/java/voldemort/store/routed/action/Action.java index b483ff7a98..a235f48d1c 100644 --- a/src/java/voldemort/store/routed/action/Action.java +++ b/src/java/voldemort/store/routed/action/Action.java @@ -31,9 +31,9 @@ *

* * Actions are mapped to events by the {@link Pipeline} via the - * {@link Pipeline#setEventActions(java.util.Map)} method. + * {@link Pipeline#addEventAction(Event, Action)} method. * - * @see Pipeline#setEventActions(java.util.Map) + * @see Pipeline#addEventAction(Event, Action) */ public interface Action { diff --git a/src/java/voldemort/store/routed/action/package.html b/src/java/voldemort/store/routed/action/package.html new file mode 100644 index 0000000000..9e92b5ae44 --- /dev/null +++ b/src/java/voldemort/store/routed/action/package.html @@ -0,0 +1,5 @@ + + + Classes representing various states for the state based routing stores. + + \ No newline at end of file diff --git a/src/java/voldemort/store/slop/strategy/package.html b/src/java/voldemort/store/slop/strategy/package.html new file mode 100644 index 0000000000..ba3f20a649 --- /dev/null +++ b/src/java/voldemort/store/slop/strategy/package.html @@ -0,0 +1,5 @@ + + + Bunch of different ways in which we would store failed requests for the Hinted handoff feature. + + \ No newline at end of file diff --git a/src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java b/src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java index 22ed7da065..7cd0b448ee 100644 --- a/src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java +++ b/src/java/voldemort/store/socket/clientrequest/ClientRequestExecutorPool.java @@ -144,7 +144,7 @@ private void updateStats(long checkoutTimeNs) { * Check the socket back into the pool. * * @param destination The socket destination of the socket - * @param socket The socket to check back in + * @param clientRequestExecutor The request executor wrapper */ public void checkin(SocketDestination destination, ClientRequestExecutor clientRequestExecutor) { try { diff --git a/src/java/voldemort/store/socket/clientrequest/package.html b/src/java/voldemort/store/socket/clientrequest/package.html new file mode 100644 index 0000000000..4a9308b1a4 --- /dev/null +++ b/src/java/voldemort/store/socket/clientrequest/package.html @@ -0,0 +1,5 @@ + + + More classes related to how to parse client requests + + \ No newline at end of file diff --git a/src/java/voldemort/store/stats/package.html b/src/java/voldemort/store/stats/package.html new file mode 100644 index 0000000000..d12dc6e364 --- /dev/null +++ b/src/java/voldemort/store/stats/package.html @@ -0,0 +1,5 @@ + + + Store wrappers which deal with statistics + + \ No newline at end of file diff --git a/src/java/voldemort/store/views/package.html b/src/java/voldemort/store/views/package.html new file mode 100644 index 0000000000..dbc478df87 --- /dev/null +++ b/src/java/voldemort/store/views/package.html @@ -0,0 +1,5 @@ + + + Classes related to Views and server side transforms + + \ No newline at end of file diff --git a/src/java/voldemort/utils/ByteUtils.java b/src/java/voldemort/utils/ByteUtils.java index 54ad6d1e9b..c58fc47680 100644 --- a/src/java/voldemort/utils/ByteUtils.java +++ b/src/java/voldemort/utils/ByteUtils.java @@ -422,7 +422,7 @@ public static int compare(byte[] b1, byte[] b2) { * * @param b1 The first array * @param b2 The second array - * @param from The offset in b2 from which to compare + * @param offset The offset in b2 from which to compare * @param to The least offset in b2 which we don't compare * @return -1 if b1 < b2, 1 if b1 > b2, and 0 if they are equal */ diff --git a/src/java/voldemort/utils/Entropy.java b/src/java/voldemort/utils/Entropy.java index 506a6c6ec7..091637f684 100644 --- a/src/java/voldemort/utils/Entropy.java +++ b/src/java/voldemort/utils/Entropy.java @@ -41,7 +41,6 @@ public class Entropy { * Entropy constructor. Uses DEFAULT_NUM_KEYS number of keys * * @param nodeId Node id. If -1, goes over all of them - * @param numThreads Number of threads */ public Entropy(int nodeId) { this.nodeId = nodeId; diff --git a/src/java/voldemort/utils/NetworkClassLoader.java b/src/java/voldemort/utils/NetworkClassLoader.java index ce26c74180..c24cfe443d 100644 --- a/src/java/voldemort/utils/NetworkClassLoader.java +++ b/src/java/voldemort/utils/NetworkClassLoader.java @@ -53,8 +53,8 @@ public Class loadClass(String className, byte[] classBuffer, int offset, int * call {@link ClassLoader#getResource(String)} internally to find the class * file and then dump the bytes[] * - * @param cl - * @return + * @param cl The class + * @return Byte representation of the class * @throws IOException */ public byte[] dumpClass(Class cl) throws IOException { diff --git a/src/java/voldemort/utils/RebalanceUtils.java b/src/java/voldemort/utils/RebalanceUtils.java index efe40874cb..f37f17a174 100644 --- a/src/java/voldemort/utils/RebalanceUtils.java +++ b/src/java/voldemort/utils/RebalanceUtils.java @@ -442,7 +442,7 @@ public static boolean checkKeyBelongsToPartition(int nodeId, /** * Check the execution state of the server by checking the state of - * {@link MetadataStore.VoldemortState}
+ * {@link VoldemortState}
* * This function checks if the nodes are all in normal state ( * {@link VoldemortState#NORMAL_SERVER}). diff --git a/src/java/voldemort/utils/package.html b/src/java/voldemort/utils/package.html index 3022b2062c..d9cc9fb93d 100644 --- a/src/java/voldemort/utils/package.html +++ b/src/java/voldemort/utils/package.html @@ -1,5 +1,5 @@ - Helper functions. + Basic helper functions. \ No newline at end of file diff --git a/src/java/voldemort/utils/pool/package.html b/src/java/voldemort/utils/pool/package.html new file mode 100644 index 0000000000..91f016d3b6 --- /dev/null +++ b/src/java/voldemort/utils/pool/package.html @@ -0,0 +1,5 @@ + + + Resource pool implementation which works! Used on the client side for storing the pool of connections. + + \ No newline at end of file diff --git a/src/java/voldemort/versioning/ChainedResolver.java b/src/java/voldemort/versioning/ChainedResolver.java index b8e2cbd796..87cfbc30c8 100644 --- a/src/java/voldemort/versioning/ChainedResolver.java +++ b/src/java/voldemort/versioning/ChainedResolver.java @@ -50,12 +50,14 @@ public List resolveConflicts(List items) { @Override public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if(this == o) + return true; + if(o == null || getClass() != o.getClass()) + return false; ChainedResolver that = (ChainedResolver) o; - if (resolvers != null ? !resolvers.equals(that.resolvers) : that.resolvers != null) + if(resolvers != null ? !resolvers.equals(that.resolvers) : that.resolvers != null) return false; return true; diff --git a/src/java/voldemort/xml/package.html b/src/java/voldemort/xml/package.html new file mode 100644 index 0000000000..e07b364349 --- /dev/null +++ b/src/java/voldemort/xml/package.html @@ -0,0 +1,5 @@ + + + Classes related to parsing our metadata ( cluster + store definition ) + + \ No newline at end of file