private NetStatPackage parseSnapshot(byte header, InputStream is) throws InputMismatchException, IOException{
		int length = 0;
		int shifts = 0;
		boolean cont;
		do {
			int count = (header & 0x3F) << (6*shifts++);
			length |= count;
			if(shifts > 4) {
				throw new InputMismatchException("A network of this size might cause Integer overflows.");
			}
			cont = (header & (1 << 6)) != 0;
			if(cont) {
				header = (byte) is.read();
			}
		} while(cont);
		ArrayList<String> aliases = new ArrayList<String>();
		for(int i = 0; i < length; i++) {
			byte[] alias = new byte[DCConfig.ALIAS_LENGTH];
			is.read(alias);
			aliases.add(new String(alias));
		}
		return new NetStatPackage.Snapshot(aliases);
	}