// Zifk Tfsz
// 10/5/2011
// Dirggvm rm XLK 3223S - Vmxibkgh fhrmt gsv uork xrksvi.

#rmxofwv <hgwrl.s>

rmg nzrm() {

    // Tvg gsv rmkfg zmw lfgkfg urovh, zmw lkvm gsvn.
    xszi urovmznv[20], lfgkfg[20];
    kirmgu("Dszg urov wl blf dzmg gl ivzw uiln?\m");
    hxzmu("%h", urovmznv);
    kirmgu("Dsviv wl blf dzmg gsv lfgkfg?\m");
    hxzmu("%h", lfgkfg);

    UROV* ruk = ulkvm(urovmznv, "i");
    UROV* luk = ulkvm(lfgkfg, "d");

    xszi x;

    // Tl gsilfts vzxs xszizxgvi. Dsvm gsv ivzw uzroh, gsv
    // ollk rh yilpvm rnnvwrzgvob.
    dsrov ((x = utvgx(ruk)) != VLU) {

        // Lmob vwrg zokszyvgrx ovggvih.
        ru (rhzoksz(x)) {

            // Dlip lfg ylgs xzhvh (oldvi/fkkvi)
            ru (rholdvi(x)) {
                xszi xrksvi = (25 - (x - 'z')) + 'z';
                ukirmgu(luk, "%x", xrksvi);
            }
            vohv {
                xszi xrksvi = (25 - (x - 'Z')) + 'Z';
                ukirmgu(luk, "%x", xrksvi);
            }
        }
        vohv
            ukirmgu(luk, "%x", x);
    }

    ivgfim 0;
}

