Answer to ping requests
[?]
Mar 9, 2019, 6:42 AM
TPVUBB3FQ5HT2M2QHDMGKUEV2C6VIDMZDS3BA6LAITU2BIQDIN5QCDependencies
- [2]
FCPF2FV6Break connection on iq error - [3]
OGMBXBKPMove online to XmppConnection - [4]
L3D22A5JPrepare to check incoming presence - [5]
IK3YDPTYUpdate deps - [6]
ALP2YJIURename XmppState to XmppProcessState - [7]
AYQZ2UIAUpdate deps - [8]
DISBBP3IUpdate dependencies - [9]
VS6AHRWIMove XMPP to separate dir - [10]
ZI4GJ72VAdd message to xmpp command - [11]
2VZBEEXAMessages fixed - [12]
37OMJ4CKSend MUC message - [13]
BWDUANCVSecond part of processing result is only about stop_future - [14]
5OBTKGDLUpdate deps - [15]
77USPY5ISending messages works! - [16]
RGOSS73UConvert self-presence to xmpp_parser's type - [17]
X6L47BHQUse different structure for established xmpp connection - [18]
ACXUIS63Update dependecies - [19]
5GINRCKLSend ping XEP-0199 - [20]
5IKA4GO7Rename xmpp client field from "inner" to "client" - [21]
XGP44R5HRework stopping xmpp connection - [22]
HU3NZX5ZProcess self-presence via new processing code - [23]
QTCUURXNAdd additional requirement for command stream - [24]
J7VX56FWToDo - [25]
FV6BJ5K6Send self-presence and store account info in Rc so it willbe used in some future in parallel - [26]
AA2ZWGRLEnter to MUC - [27]
QYY3KRGLUse failure instead Box<dyn Error> - [28]
FWJDW3G5Allow process xmpp incoming stanzas with futures - [29]
OANBCLN5Move xmpp client into XmppState - [30]
YZVEEOYTUpdate dependencies - [31]
5Y6YJ6UHAdd shutdown function to make actions before offline - [32]
V5HDBSZMUse jid for receiver address - [33]
EOHEZXX3Move request processing to structure - [34]
OB3HA2MDUse Client::new_with_jid to parse jid only once - [35]
VW7NVWAGLeave MUC properly - [36]
NDDQQP2PUpdate deps - [37]
WBU7UOQWRead chatroom from config - [38]
EBETRYK7Add counter for id. Check for jid in roster - [39]
XOAM22TTSimplify xmpp incoming stanzas processing without futures - [40]
UMTLHH77Process commands in the separate function - [*]
FVVPKFTLInitial commit - [*]
HKSQO7JZEnable hyper http server and configuration
Change contents
- edit in src/xmpp/stanzas.rs at line 4
use xmpp_parsers::ping::Ping; - edit in src/xmpp/stanzas.rs at line 60
presence.into()}pub fn make_muc_message(to: xmpp_parsers::Jid, text: String) -> Element {let mut message = Message::new(Some(to.into_bare_jid()));message.bodies.insert(String::new(), Body(text));message.type_ = MessageType::Groupchat;message.into()}pub fn make_muc_presence_leave(from: xmpp_parsers::Jid, to: xmpp_parsers::Jid) -> Element {let mut presence = Presence::new(PresenceType::Unavailable);presence.from = Some(from);presence.to = Some(to); - edit in src/xmpp/stanzas.rs at line 76[3.33]
pub fn make_ping(id: &str, from: xmpp_parsers::Jid) -> Element {let mut ping = Iq::from_get(Ping);ping.id = Some(id.to_string());ping.to = Some(from.clone().into_domain_jid());ping.from = Some(from);ping.into()}pub fn make_pong(id: Option<String>,from: xmpp_parsers::Jid,to: Option<xmpp_parsers::Jid>,) -> Element {let mut pong = Iq::from_result(None as Option<Roster>);pong.id = id;pong.from = Some(from);pong.to = to;pong.into()} - edit in src/xmpp/mod.rs at line 30
/// muc id to muc jidmucs: HashMap<String, xmpp_parsers::Jid>, - replacement in src/xmpp/mod.rs at line 150
fn xmpp_processing(mut self,event: &Event,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {/// Returns false on error to disconnectfn xmpp_processing(&mut self, event: &Event) -> bool { - replacement in src/xmpp/mod.rs at line 158[3.4751]→[3.3164:3255](∅→∅),[3.3255]→[3.4842:4888](∅→∅),[3.495]→[3.4842:4888](∅→∅),[3.4842]→[3.4842:4888](∅→∅)
if let Some(iq) = stanza.try_into().ok() as Option<xmpp_parsers::iq::Iq> {if let Some(id) = iq.id {if let Some(iq) = stanza.clone().try_into().ok() as Option<xmpp_parsers::iq::Iq> {if let Some(id) = iq.id.clone() { - edit in src/xmpp/mod.rs at line 212
xmpp_parsers::iq::IqType::Get(element) => {if let Some(_ping) =element.try_into().ok() as Option<xmpp_parsers::ping::Ping>{let pong = stanzas::make_pong(iq.id,self.state.client.jid.clone(),iq.from,);self.state.data.send_queue.push_back(pong);}} - edit in src/xmpp/mod.rs at line 226
} else if let Some(_presence) =stanza.try_into().ok() as Option<xmpp_parsers::presence::Presence>{// to do something with presence - replacement in src/xmpp/mod.rs at line 231
future::ok(self)true - replacement in src/xmpp/mod.rs at line 233
Event::Online => future::ok(self),Event::Online => true, - replacement in src/xmpp/mod.rs at line 236
future::err(self.account)false - replacement in src/xmpp/mod.rs at line 328
let xmpp = XmppConnection {let mut xmpp = XmppConnection { - replacement in src/xmpp/mod.rs at line 332
Box::new(xmpp.xmpp_processing(&event).then(|r| match r {Ok(mut xmpp) => {match stop_condition(&mut xmpp, event) {Ok(true) => future::ok(future::Loop::Break((xmpp,Ok(Either::A(b)),))),Ok(false) => {future::ok(future::Loop::Continue((xmpp,b,stop_condition,)))}Err(_e) => future::err((xmpp.account,Ok(Either::A(b)),)),if xmpp.xmpp_processing(&event) {match stop_condition(&mut xmpp, event) {Ok(true) => future::ok(future::Loop::Break((xmpp,Ok(Either::A(b)),))),Ok(false) => future::ok(future::Loop::Continue((xmpp,b,stop_condition,))),Err(_e) => {future::err((xmpp.account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 348
Err(account) => {future::err((account, Ok(Either::A(b))))}}))as Box<dyn Future<Item = _, Error = _>>} else {future::err((xmpp.account, Ok(Either::A(b))))} - replacement in src/xmpp/mod.rs at line 352
Box::new(future::err((account, Ok(Either::A(b)))))future::err((account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 356
Box::new(if let Some(client) = a.into_inner() {if let Some(client) = a.into_inner() { - replacement in src/xmpp/mod.rs at line 366
})} - replacement in src/xmpp/mod.rs at line 370
Box::new(future::err((account, Ok(Either::A(b)))))future::err((account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 373
Box::new(if let Some(client) = a.into_inner() {if let Some(client) = a.into_inner() { - replacement in src/xmpp/mod.rs at line 383
})} - edit in src/xmpp/mod.rs at line 619
}XmppCommand::Chatroom { muc_id, message } => {if let Some(muc) = self.state.data.mucs.get(&muc_id) {self.state.data.send_queue.push_back(stanzas::make_muc_message(muc.clone(), message));} else {error!("Not found MUC {}", muc_id);} - edit in src/xmpp/mod.rs at line 630
XmppCommand::Ping => {self.state.data.counter += 1;let id_ping = format!("id_ping{}", self.state.data.counter);let ping = stanzas::make_ping(&id_ping, self.state.client.jid.clone());self.state.data.send_queue.push_back(ping);} - replacement in src/xmpp/mod.rs at line 639
fn enter_mucs<F, E>(self,_stop_future: F,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>whereF: Future<Error = E> + 'static,E: Into<failure::Error> + 'static,{fn shutdown(self) -> impl Future<Item = (), Error = failure::Error> {info!("Shutdown connection"); - edit in src/xmpp/mod.rs at line 642
let account2 = account.clone();let account3 = account.clone(); - replacement in src/xmpp/mod.rs at line 643
account.chatroomsstate.data.mucs - replacement in src/xmpp/mod.rs at line 650
.fold(state, move |XmppState { client, mut data }, muc_jid| {data.counter += 1;let id_muc_presence = format!("id_muc_presence{}", data.counter);.fold(state, move |XmppState { client, data }, muc_jid| { - replacement in src/xmpp/mod.rs at line 652[2.1823]→[2.1823:1916](∅→∅),[3.1199]→[3.13233:13234](∅→∅),[2.1916]→[3.13233:13234](∅→∅),[3.13233]→[3.13233:13234](∅→∅),[3.13234]→[2.1917:1982](∅→∅)
stanzas::make_muc_presence(&id_muc_presence, account2.jid.clone(), muc_jid);info!("Sending muc presence... {:?}", muc_presence);stanzas::make_muc_presence_leave(account.jid.clone(), muc_jid.clone()); - replacement in src/xmpp/mod.rs at line 654[3.13300]→[2.1983:2028](∅→∅),[3.1319]→[3.13345:13346](∅→∅),[2.2028]→[3.13345:13346](∅→∅),[3.13345]→[3.13345:13346](∅→∅)
let account4 = account2.clone();info!("Sending muc leave presence... {:?}", muc_presence); - replacement in src/xmpp/mod.rs at line 660
account4e - replacement in src/xmpp/mod.rs at line 664
.map(|state| XmppConnection {account: account3,state,}).map(|_| ())}fn enter_mucs<F, E>(self,_stop_future: F,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>whereF: Future<Error = E> + 'static,E: Into<failure::Error> + 'static,{let XmppConnection { account, state } = self;let account2 = account.clone();let account3 = account.clone();stream::iter_ok(account.chatrooms.clone()).fold(state, move |XmppState { client, mut data }, muc_jid| {data.counter += 1;let id_muc_presence = format!("id_muc_presence{}", data.counter);let muc_presence = stanzas::make_muc_presence(&id_muc_presence,account2.jid.clone(),muc_jid.1.clone(),);info!("Sending muc presence... {:?}", muc_presence);let account4 = account2.clone();use tokio::prelude::Sink;client.send(Packet::Stanza(muc_presence)).map_err(|e| {error!("Error on send muc presence: {}", e);account4}).and_then(|client| {data.mucs.insert(muc_jid.0, muc_jid.1);future::ok(XmppState { client, data })})}).map(|state| XmppConnection {account: account3,state,}) - edit in src/xmpp/mod.rs at line 719
Chatroom {muc_id: String,message: String,},Ping, - replacement in src/xmpp/mod.rs at line 773
future::err(format_err!("Command receiver is gone"))error!("Command receiver is gone");future::ok(future::Loop::Break(Some(conn))) - replacement in src/xmpp/mod.rs at line 787
future::ok(future::Loop::Break(()))future::ok(future::Loop::Break(Some(conn))) - replacement in src/xmpp/mod.rs at line 790
Err(_) => future::err(format_err!("Command receiver is broken")),Err(_) => {error!("Command receiver is broken");future::ok(future::Loop::Break(Some(conn)))} - replacement in src/xmpp/mod.rs at line 816
future::ok(future::Loop::Break(()))future::ok(future::Loop::Break(None)) - edit in src/xmpp/mod.rs at line 824
.and_then(|opt_conn| {if let Some(conn) = opt_conn {Box::new(conn.shutdown()) as Box<dyn Future<Item = (), Error = _>>} else {Box::new(future::ok(()))}}) - edit in src/main.rs at line 37
fn body_to_string(req: Request<Body>) -> impl Future<Item = String, Error = failure::Error> {req.into_body().map_err(std::convert::Into::into).fold(String::new(), |mut acc, ch| {std::str::from_utf8(&*ch).map(|s| {acc.push_str(s);acc})})} - replacement in src/main.rs at line 66
.map_err(|e| e.into()).and_then(|s| {std::str::FromStr::from_str(s).map_err(|e: xmpp_parsers::JidParseError| e.into())}).map_err(std::convert::Into::into).and_then(|s| std::str::FromStr::from_str(s).map_err(std::convert::Into::into)) - replacement in src/main.rs at line 71
match xmpp_to_res {Err(err) => {let xmpp_muc_opt = req.headers().get("X-XMPP-Muc").map(|h| h.to_str().map(std::string::ToString::to_string));match (xmpp_muc_opt, xmpp_to_res) {(None, Err(err)) => { - replacement in src/main.rs at line 83
.map_err(|e| e.into()),.map_err(std::convert::Into::into), - replacement in src/main.rs at line 86
Ok(xmpp_to) => {(None, Ok(xmpp_to)) => { - replacement in src/main.rs at line 89
Box::new(req.into_body().map_err(|e| e.into()).fold(String::new(), |mut acc, ch| {std::str::from_utf8(&*ch).map(|s| {acc.push_str(s);acc})}).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chat { xmpp_to, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted"),)),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(|e| e.into()),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(|e| e.into()),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}}),) as Box<dyn Future<Item = _, Error = _> + Send + 'static>Box::new(body_to_string(req).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chat { xmpp_to, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted",))),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(std::convert::Into::into),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(std::convert::Into::into),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}})) as Box<dyn Future<Item = _, Error = _> + Send + 'static>}(Some(Ok(muc_id)), _) => {info!("Got MUC request. Reading body...");let cmd_send = self.cmd_send.clone();Box::new(body_to_string(req).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chatroom { muc_id, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted",))),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(std::convert::Into::into),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(std::convert::Into::into),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}})) as Box<dyn Future<Item = _, Error = _> + Send + 'static>}(Some(Err(err)), _) => {warn!("Unknown MUC destination: {}", err);Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Unknown MUC destination: {}", err))).map_err(std::convert::Into::into),)) as Box<dyn Future<Item = _, Error = _> + Send + 'static> - replacement in src/main.rs at line 229
.serve(MakeServiceCmd { cmd_send }).serve(MakeServiceCmd {cmd_send: cmd_send.clone(),}) - edit in src/main.rs at line 237
if let Some(ping) = config.account.ping {let ping = tokio::timer::Interval::new_interval(std::time::Duration::from_secs(ping));rt.spawn(ping.map_err(|e| {error!("Ping error: {}", e);}).for_each(move |_| {cmd_send.clone().send(XmppCommand::Ping).map_err(|e| {error!("Ping command error: {}", e);}).map(|_| ())}).select(ctrl_c.clone().map(|_| ()).map_err(|e| error!("ping server error: {}", e)),).map(|_| ()).map_err(|_| ()),);} - edit in src/config.rs at line 0[43.1396][43.1397]
use std::collections::HashMap; - edit in src/config.rs at line 10[43.1549][43.1549]
#[serde(default, deserialize_with = "deserialize_jid_map")]pub chatrooms: HashMap<String, xmpp_parsers::Jid>,pub ping: Option<u64>, - edit in src/config.rs at line 39[3.19119][43.1943]
}fn deserialize_jid_map<'de, D>(deserializer: D,) -> Result<HashMap<String, xmpp_parsers::Jid>, D::Error>whereD: serde::Deserializer<'de>,{use serde::Deserialize;let s = HashMap::<String, String>::deserialize(deserializer)?;let size = s.len();s.into_iter().map(|(k, v)| (k, std::str::FromStr::from_str(&v))).take_while(|(_k, r)| r.is_ok()).fold(Ok(HashMap::with_capacity(size)), |res, (k, r)| match res {Ok(mut res) => match r {Ok(v) => {res.insert(k, v);Ok(res)}Err(e) => Err(e),},Err(e) => Err(e),}).map_err(serde::de::Error::custom) - edit in README.md at line 0[42.76]
### XMPP client daemon#### Sending messages```curl http://localhost:8083/ -H "X-XMPP-To: some@domain.org" -d "Test"```#### Sending messages to MUC```curl http://localhost:8083/ -H "X-XMPP-Muc: smac" -d "Test"``` - edit in Cargo.lock at line 0
# This file is automatically @generated by Cargo.# It is not intended for manual editing. - replacement in Cargo.lock at line 7
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 12
version = "0.6.9"version = "0.6.10" - replacement in Cargo.lock at line 15
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 44
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 56
version = "0.3.13"version = "0.3.14" - replacement in Cargo.lock at line 62
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 72
"cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 102
version = "0.7.2"version = "0.7.0" - replacement in Cargo.lock at line 145
version = "1.0.29"version = "1.0.30" - replacement in Cargo.lock at line 191
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 199
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 203[2.6480]→[2.6480:7532](∅→∅),[3.5022]→[3.21506:21521](∅→∅),[2.7532]→[3.21506:21521](∅→∅),[3.1814]→[3.21506:21521](∅→∅),[3.21506]→[3.21506:21521](∅→∅)
name = "crossbeam"version = "0.6.0"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",][[package]]name = "crossbeam-channel"version = "0.3.8"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",][[package]] - replacement in Cargo.lock at line 204
version = "0.6.3"version = "0.7.1" - replacement in Cargo.lock at line 219
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 222
][[package]]name = "crossbeam-queue"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 238
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 270
version = "0.8.15"version = "0.8.17" - replacement in Cargo.lock at line 284
"regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 293
"backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 301
"backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 312
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 364
"new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 378
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 398
"http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 403
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 420
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 426
version = "0.1.15"version = "0.1.16" - replacement in Cargo.lock at line 449
version = "0.12.23"version = "0.12.25" - replacement in Cargo.lock at line 456
"http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 462
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 464
"tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 466
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 469
"tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 494
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 541
version = "1.2.0"version = "1.3.0" - replacement in Cargo.lock at line 551
version = "0.2.48"version = "0.2.49" - replacement in Cargo.lock at line 596
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 611
version = "2.1.3"version = "2.2.0" - edit in Cargo.lock at line 613
dependencies = ["cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 626
"quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)","quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 639
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 653
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 673
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 676
"openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)","openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 678
"openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)","schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)","schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 682
"tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)","tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 691
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 697
version = "1.0.1"version = "1.0.3" - edit in Cargo.lock at line 699
dependencies = ["unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 720
version = "1.9.0"version = "1.10.0" - replacement in Cargo.lock at line 723
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 733
version = "0.10.16"version = "0.10.19" - replacement in Cargo.lock at line 739
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 751
version = "0.9.40"version = "0.9.42" - replacement in Cargo.lock at line 754
"cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 757
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 783
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 786
"smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 863
version = "0.13.2"version = "0.13.3" - replacement in Cargo.lock at line 866
"encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)","encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 869
"memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 892
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 903
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 910
"rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)","rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 958
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 970
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 978
version = "0.1.1"version = "0.1.2" - replacement in Cargo.lock at line 981
"rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)","autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)","rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1016
version = "1.1.0"version = "1.1.2" - replacement in Cargo.lock at line 1019
"aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)","aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1084
version = "0.1.14"version = "0.1.15" - replacement in Cargo.lock at line 1087
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1103
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1114
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1137
"hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)","hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1140
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1153
version = "1.0.87"version = "1.0.89" - replacement in Cargo.lock at line 1158
version = "1.0.87"version = "1.0.89" - replacement in Cargo.lock at line 1163
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1168
version = "1.0.38"version = "1.0.39" - replacement in Cargo.lock at line 1173
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1181
"block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1192
"block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1203
"block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1212
version = "0.1.7"version = "0.1.8" - replacement in Cargo.lock at line 1216
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1231
version = "0.6.8"version = "0.6.9" - edit in Cargo.lock at line 1233
dependencies = ["unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 1240
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1260
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1264
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1308
version = "0.15.26"version = "0.15.27" - replacement in Cargo.lock at line 1331
"syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1337
version = "3.0.6"version = "3.0.7" - replacement in Cargo.lock at line 1341
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1371
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1389
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1397
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1404
version = "0.1.15"version = "0.1.16" - replacement in Cargo.lock at line 1410
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1412
"tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)","tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1414
"tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)","tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1419
"tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1440
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1445
version = "0.1.4"version = "0.1.5" - replacement in Cargo.lock at line 1463
version = "0.1.5"version = "0.1.6" - replacement in Cargo.lock at line 1467
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1473
version = "0.1.11"version = "0.1.12" - replacement in Cargo.lock at line 1483
version = "0.1.8"version = "0.1.9" - replacement in Cargo.lock at line 1488
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1491
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1495
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1505
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1508
"signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1510
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1517
version = "0.1.1"version = "0.1.3" - edit in Cargo.lock at line 1520
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1533
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1539
version = "0.1.11"version = "0.1.12" - replacement in Cargo.lock at line 1542
"crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1547
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1571
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1584
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1596
"libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1601
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1615
"quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)","quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1617
"tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1619
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1632
"serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1644
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1647
"smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1650
"tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1667
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1671
"smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1712
"smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 1731
name = "unreachable"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",][[package]] - edit in Cargo.lock at line 1758
source = "registry+https://github.com/rust-lang/crates.io-index"[[package]]name = "void"version = "1.0.2" - replacement in Cargo.lock at line 1876
"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e""checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" - replacement in Cargo.lock at line 1882
"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5""checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4" - replacement in Cargo.lock at line 1887
"checksum block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "509de513cca6d92b6aacf9c61acfe7eaa160837323a81068d690cc1f8e5740da""checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d" - replacement in Cargo.lock at line 1893
"checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e""checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92" - replacement in Cargo.lock at line 1900
"checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94""checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b""checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13""checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" - edit in Cargo.lock at line 1902
"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" - replacement in Cargo.lock at line 1907
"checksum encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fd251508d65030820f3a4317af2248180db337fdb25d89967956242580277813""checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" - replacement in Cargo.lock at line 1926
"checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5""checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a" - replacement in Cargo.lock at line 1929
"checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46""checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896" - replacement in Cargo.lock at line 1938
"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1""checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" - replacement in Cargo.lock at line 1940
"checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047""checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e" - replacement in Cargo.lock at line 1948
"checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8""checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" - replacement in Cargo.lock at line 1956
"checksum new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cdc457076c78ab54d5e0d6fa7c47981757f1e34dc39ff92787f217dede586c4""checksum new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30" - replacement in Cargo.lock at line 1960
"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238""checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" - replacement in Cargo.lock at line 1962
"checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9""checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d" - replacement in Cargo.lock at line 1964
"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6""checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e" - replacement in Cargo.lock at line 1978
"checksum quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98d8d2d671bd29c6122a98b45ce3106391e89ba378f731274de677f1eff06e5f""checksum quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "22fcc48ecef4609b243e8c01ff4695d08ee0fc9d5bdbc54630e1a5fe8bb40953" - replacement in Cargo.lock at line 1990
"checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05""checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" - replacement in Cargo.lock at line 1995
"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f""checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f" - replacement in Cargo.lock at line 2003
"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56""checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" - replacement in Cargo.lock at line 2009
"checksum serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "2e20fde37801e83c891a2dc4ebd3b81f0da4d1fb67a9e0a2a3b921e2536a58ee""checksum serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "633e97856567e518b59ffb2ad7c7a4fd4c5d91d9c7f32dd38a27b2bf7e8114ea""checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9""checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560""checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c""checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" - replacement in Cargo.lock at line 2015
"checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4""checksum signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "97a47ae722318beceb0294e6f3d601205a1e6abaa4437d9d33e3a212233e3021" - replacement in Cargo.lock at line 2018
"checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15""checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" - replacement in Cargo.lock at line 2028
"checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9""checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec" - replacement in Cargo.lock at line 2031
"checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff""checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" - replacement in Cargo.lock at line 2038
"checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c""checksum tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcaabb3cec70485d0df6e9454fe514393ad1c4070dee8915f11041e95630b230" - replacement in Cargo.lock at line 2041
"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6""checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3" - replacement in Cargo.lock at line 2043
"checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d""checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f""checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f""checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af""checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926""checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" - replacement in Cargo.lock at line 2047
"checksum tokio-sync 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3742b64166c1ee9121f1921aea5a726098458926a6b732d906ef23b1f3ef6f4f""checksum tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf2b9dac2a0509b5cfd1df5aa25eafacb616a42a491a13604d6bbeab4486363" - replacement in Cargo.lock at line 2049
"checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb""checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801" - edit in Cargo.lock at line 2067
"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" - edit in Cargo.lock at line 2072
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"