@SuppressWarnings("unchecked")
	protected void UnZip() throws PrivilegedActionException {
		String szZipFilePath;
		String szExtractPath;
		String path = (String) AccessController
				.doPrivileged(new PrivilegedExceptionAction<Object>() {
					public Object run() throws Exception {
						return Util.getWorkingDirectory() + File.separator;
					}
				});
		int i;

		szZipFilePath = path + "bin" + File.separator + "client.zip";

		File f = new File(szZipFilePath);
		if (!f.exists()) {
			System.out.println("\nNot found: " + szZipFilePath);
		}

		if (f.isDirectory()) {
			System.out.println("\nNot file: " + szZipFilePath);
		}

		System.out.println("Enter path to extract files: ");
		szExtractPath = path;

		File f1 = new File(szExtractPath);
		if (!f1.exists()) {
			System.out.println("\nNot found: " + szExtractPath);
		}

		if (!f1.isDirectory()) {
			System.out.println("\nNot directory: " + szExtractPath);
		}

		ZipFile zf;
		@SuppressWarnings("rawtypes")
		Vector zipEntries = new Vector();

		try {
			zf = new ZipFile(szZipFilePath);
			@SuppressWarnings("rawtypes")
			Enumeration en = zf.entries();

			while (en.hasMoreElements()) {
				zipEntries.addElement((ZipEntry) en.nextElement());
			}

			for (i = 0; i < zipEntries.size(); i++) {
				ZipEntry ze = (ZipEntry) zipEntries.elementAt(i);

				extractFromZip(szZipFilePath, szExtractPath, ze.getName(), zf,
						ze);
			}

			zf.close();
			System.out.println("Done!");
		} catch (Exception ex) {
			System.out.println(ex.toString());
		}
		f.delete();
	}