QgF3      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred+k  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghidfeacb`_^]\[ZYg :;<=>EXWVUTSRQPONMLKJIHGFCDAB?@h$9876543210/.-,+*)('&%#"!    #"! $9876543210/.-,+*)('&%:;<=>?@ABCDEXWVUTSRQPONMLKJIHGFYZ[\]^_`acbdfegh Safe-Inferred+iErrors that occur between the client and server in communicating. These are unexpected exceptions, such as network failures or garbage data.kjExceptions that may be thrown by Memcache. These are expected error codes returned by a memcached server.tcConvert a status to an error. Note, not all status's are errors and so this is a partial function!ulConvert a status to an exception. Note, not all status's are errors and so this is not a complete function!vCThrow an IncorrectResponse exception for a wrong received response.ijklmnopqrstuvijklmnopqrstuvksrqponmltuvijijksrqponmltuvNonew$Serialize a request to a ByteString.x,Serialize a request to a ByteString Builder.y)Deserialize a Response from a ByteString.zDeserialize a Response.{'Deserialize a Header from a ByteString.|Deserialize a Header.}.Deserialize a Response body from a ByteString.~Deserialize a Response body.9Deserialize the body of a Response that contains nothing.@Deserialize the body of a Get Response (Extras [flags] & Value).GDeserialize the body of a GetK Response (Extras [flags] & Key & Value).>Deserialize the body of a Incr/Decr Response (Value [Word64]).UDeserialize the body of a general response that just has a value (no key or extras).VDeserialize the body of a general response that just has a key and value (no extras).#Deserialize a Response status code.dCheck the length of a header field is as expected, throwing a ProtocolError exception if it is not.wxyz{|}~wxyz{|}~xwzy|{~}wxyz{|}~NoneA memcached server connection."Create a new memcached connection.HSend and receive a single request/response pair to the memcached server.9Run a function with access to an server socket for using  and .'Send a request to the memcached server.gRetrieve a single response from the memcached server. TODO: read into buffer to minimize read syscallsqClose the server connection. If you perform another operation after this, the connection will be re-established.   NonePassword for authentication.Username for authentication.,Perform SASL authentication with the server."Perform SASL PLAIN authentication.List available SASL authentication methods. We could call this but as we only support PLAIN as does the memcached server, we simply assume PLAIN authentication is supprted and try that.NoneM*StatResults are a list of key-value pairs.NoneMA memcached cluster.;Establish a new connection to a group of memcached servers.Figure out which server to talk to for this key. I.e., the distribution method. We use consistent hashing based on the CHORD approach.URun a memcache operation against a server that maps to the key given in the cluster.BRun a memcache operation against any single server in the cluster.<Run a memcache operation against all servers in the cluster.XRun a memcache operation against a particular server, handling any failures that occur. NoneVersion returns the version string of the memcached cluster. We just query one server and assume all servers in the cluster are the same version.        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEEFFGGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~memcache-0.0.1Database.Memcache.TypesDatabase.Memcache.ErrorsDatabase.Memcache.WireDatabase.Memcache.ServerDatabase.Memcache.SASLDatabase.Memcache.ProtocolDatabase.Memcache.ClusterDatabase.Memcache.ClientIncorrectResponseincrespMessage increspActual ProtocolErrorprotocolMessageprotocolHeaderprotocolParamsHeaderopkeyLenextraLenstatusbodyLenopaquecasResponseResresOp resStatus resOpaqueresCasStatusSaslAuthContinue SaslAuthFailErrOutOfMemoryErrUnknownCommandErrValueNonNumericErrItemNotStoredErrInvalidArgsErrValueTooLarge ErrKeyExistsErrKeyNotFoundNoError OpResponse ResSASLStep ResSASLStart ResSASLListResQuitResStat ResVersionResNoopResFlushResGATKResGATResTouch ResPrepend ResAppend ResDecrement ResIncrement ResDelete ResReplaceResAddResSetResGetKResGetRequestReqreqOp reqOpaquereqCasSETouchSEIncrSESet OpRequest ReqSASLStep ReqSASLStart ReqSASLListReqQuitReqStat ReqVersionReqNoopReqFlushReqGATReqTouch ReqPrepend ReqAppend ReqDecrement ReqIncrement ReqDelete ReqReplaceReqAddReqSetReqGetVersionFlags ExpirationDeltaInitialExtrasValueKeyK IncludeKeyNoKeyQQuietLoudmEMCACHE_HEADER_SIZEemptyReq ClientErrorNotEnoughBytes MemcacheErrorMemErrOutOfMemoryMemErrUnknownCmdMemErrValueNonNumericMemErrStoreFailedMemErrInvalidArgsMemErrValueTooLargeMemErrKeyExists MemErrNoKey statusToError throwStatusthrowIncorrectRes szRequest' szRequest dzResponse' dzResponse dzHeader'dzHeaderdzBody'dzBodyServersidfailed newServersendRecv withSocketsendrecvclosePasswordUsername authenticate StatResultsgetgattouchsetset'addreplacedelete increment decrementappendprependflushnoopversionstatsquitClusterOptionsoptsCmdFailureoptsServerFailureoptsServerRetriesdefaultOptionsnewMemcacheClusterkeyedOpanyOpallOp$fExceptionIncorrectResponse$fExceptionProtocolError$fExceptionClientError$fExceptionMemcacheErrordzGenericResponse dzGetResponsedzGetKResponsedzNumericResponsedzValueResponsedzKeyValueResponsedzStatus chkLengthgetCodeKeyValuepool_addr_portsSTRIPES sCONNECTIONS sKEEPALIVE $fOrdServer $fEqServer saslAuthPlain saslListMechsgetServerForKeyserverOp FailureMode FailToError FailToBackup FailSilentserverscmdFailureMode_serverFailureMode serverRetrieskeyedOp'