import java.io.*;
import java.util.*;

// テストドライバ
public class Main {
	public static void main(String[] args) throws Exception {
		// マップを100個チェーンする
		HashMap root = new HashMap();
		HashMap tmp1 = root;
		HashMap tmp2 = null;
		for (int i = 0; i < 100; i++) {
			tmp2 = new HashMap();
			tmp1.put(Integer.toString(i), tmp2);
			tmp1 = tmp2;
		}
		// 最後の1つに文字列をマップ
		tmp1.put("Finish", "ゴール");

		// 根っこからグラフ全体をシリアライズ
		String str = ObjectSerializer.changeObj2Str(root);

		// 参照を切ってガーベージコレクションする
		root = null;
		tmp1 = null;
		tmp2 = null;
		System.gc();

		// 復元
		tmp1 = (HashMap)ObjectSerializer.changeStr2Obj(str);

		// 根っこからゴールまでチェーンをたどる
		for (int i = 0; i < 100; i++) {
			tmp1 = (HashMap)tmp1.get(Integer.toString(i));
		}

		// ゴールまで辿り着いたかどうか
		System.out.println(tmp1.get("Finish"));
	}
}

