int set_const(int p,double lat0,double lat1,double lat2,double lon0);
int axy_ll_e(double x,double y,double *lat,double *lon);
int all_xy_e(double *x,double *y,double lat,double lon);
int Font[128][25]=
{
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
       0,  0,  0, 56, 56, 56,  0,  0,  0,  0,  0,  0,
     390,975,975,455,195,130,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     204,204,204,204,204,1023,1023,204,204,204,204,204,1023,
     1023,204,204,204,204,204,  0,  0,  0,  0,  0,  0,
     204,204,252,510,975,972,972,460,252,252,252,206,207,
     207,975,510,252,204,204,  0,  0,  0,  0,  0,  0,
     511,1023,819,819,822,486,204, 24, 48, 48, 96, 96,204,
     222,435,435,819,798,780,  0,  0,  0,  0,  0,  0,
     192,480,816,816,816,816,816,480,192,480,480,816,816,
     795,795,783,782,510,231,  0,  0,  0,  0,  0,  0,
      96,240,240,112, 48, 32,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       8, 48, 96,192,192,192,192,192,192,192,192,192,192,
     192,192,192, 96, 48,  8,  0,  0,  0,  0,  0,  0,
      64, 48, 24, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 24, 48, 64,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,204,204,120,120,1023,1023,120,120,204,
     204,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0, 48, 48, 48,510,510, 48, 48, 48,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 96,240,240,112, 48, 32,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       3,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96, 96,
     192,192,384,384,768,768,  0,  0,  0,  0,  0,  0,
     120,510,390,771,771,771,771,771,771,771,771,771,771,
     771,771,771,390,510,120,  0,  0,  0,  0,  0,  0,
      48,112,240,432, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,  3,  6, 12, 24, 48, 96,192,384,
     384,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     120,510,903,771,  3,  3,  3,  6, 12, 56, 12,  6,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
      12, 28, 28, 60, 60,108,108,204,204,396,396,1023,1023,
      12, 12, 12, 12, 12, 12,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,888,1022,775,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,768,888,1022,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96,
      96, 96,192,192,192,192,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,903,510,510,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,771,899,511,127,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       1,  3,  7, 14, 28, 56,112,224,448,896,448,224,112,
      56, 28, 14,  7,  3,  1,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,510,510,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     512,768,896,448,224,112, 56, 28, 14,  7, 14, 28, 56,
     112,224,448,896,768,512,  0,  0,  0,  0,  0,  0,
     120,510,775,903,391, 14, 28, 56, 48, 48, 48, 48, 48,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,252,510,771,827,843,843,822,768,508,
     252,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,771,771,771,771,1023,1023,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,782,1016,1016,782,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     252,510,903,771,768,768,768,768,768,768,768,768,768,
     768,768,771,903,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,771,771,771,771,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     120,510,771,771,768,768,768,768,768,768,783,783,771,
     771,771,771,771,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,1023,1023,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     252,252, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
       3,  3,771,775,510,252,  0,  0,  0,  0,  0,  0,
     771,771,771,771,774,780,792,816,864,960,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     768,768,768,768,768,768,768,768,768,768,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     771,903,903,975,975,891,891,819,819,771,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,899,963,963,963,867,867,867,819,819,819,795,795,
     795,783,783,783,775,771,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,774,771,771,771,771,774,1022,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,819,795,780,502, 99,  0,  0,  0,  0,  0,  0,
     1016,1022,771,771,771,771,771,775,1022,1016,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,896,504,126,  7,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,390,204,120, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,819,819,819,
     510,510,510,204,204,204,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,390,204,120, 48,120,204,390,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,390,204,120, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 96, 96,192,
     192,384,384,768,1023,1023,  0,  0,  0,  0,  0,  0,
     252,252,192,192,192,192,192,192,192,192,192,192,192,
     192,192,192,192,252,252,  0,  0,  0,  0,  0,  0,
     768,768,384,384,192,192, 96, 96, 48, 48, 48, 24, 24,
      12, 12,  6,  6,  3,  3,  0,  0,  0,  0,  0,  0,
     252,252, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 12,252,252,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     384,192, 96, 48, 24, 12,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,243,507,775,771,771,
     771,771,771,775,507,243,  0,  0,  0,  0,  0,  0,
     896,768,768,768,768,768,768,768,824,894,899,771,771,
     771,771,771,899,894,824,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,768,
     768,768,768,903,510,120,  0,  0,  0,  0,  0,  0,
       7,  3,  3,  3,  3,  3,  3,  3,115,507,911,771,771,
     771,771,771,911,507,115,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,771,1023,
     768,768,768,771,510,252,  0,  0,  0,  0,  0,  0,
      28,126,195,195,192,192,192,192,1008,1008,192,192,192,
     192,192,192,192,192,192,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,115,507,783,771,771,
     771,771,771,911,507,115,  3,  3,771,390,252,120,
     768,768,768,768,768,768,768,768,824,894,903,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 48, 48,  0,  0,240,240, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 12, 12,  0,  0, 63, 63, 12, 12, 12,
      12, 12, 12, 12, 12, 12, 12, 12, 12,780,408,240,
     768,768,768,768,768,782,792,816,864,960,896,896,960,
     864,816,792,780,774,771,  0,  0,  0,  0,  0,  0,
     240,112, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,510,510,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,876,951,819,819,819,
     819,819,819,819,819,819,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,828,894,963,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,252,510,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,899,771,771,
     771,771,771,903,894,824,768,768,768,768,768,896,
       0,  0,  0,  0,  0,  0,  0,  0,118,510,774,774,774,
     774,774,774,774,510,118,  6,  6,  6,  6,  6, 31,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,903,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,480,
     120, 30,  3,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,192,192,192,192,192,1016,1016,192,192,192,
     192,192,195,195,126, 24,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,390,390,
     204,204,120,120, 48, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,819,
     819,819,819,819,438,204,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,204,120,
      48,120,204,390,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,771,511,127,  3,  3,  3,903,510,120,
       0,  0,  0,  0,  0,  0,  0,  0,1023,1023,  6, 12, 24,
      48, 96,192,384,1023,1023,  0,  0,  0,  0,  0,  0,
      30, 62, 48, 48, 48, 48, 48, 48,224,960,224, 48, 48,
      48, 48, 48, 48, 62, 30,  0,  0,  0,  0,  0,  0,
      48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     480,496, 48, 48, 48, 48, 48, 48, 28,  7, 28, 48, 48,
      48, 48, 48, 48,496,480,  0,  0,  0,  0,  0,  0,
     480,1011,831, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};
#define MAX_NUM 1000
#define S_SIZE 40

struct file_id
{
	char name[S_SIZE];
	long size;
	unsigned date,time;
};
extern struct file_id GF_File[MAX_NUM];
int load_names(char *);
int process_image(int filenum);
long set_time(long delay);
int scale_rgb(int r,int g,int b);
char change_range(int *img,int *c,int *speed);
int plot_Range(int xc,int yc,int *c,int on);
char set_point(float *point,float *speed);
int set_Range(float *point,int *c);
int load_Fhist(char *type,int *c);
int plot_image(int img,int xc,int yc,int base,int color);
int print_range(int r,int g,int b,float *point,int iop);
int scale(int img);
int make_cmg_image(int r,int g,int b,int sample,char *name);
int load_quick_color_image(int r,int g,int b);
int plot_full_qc_image(int sample,int r,int g,int b,int qr,int qg,int qb);
int scroll_any_list(int xc,int yc,int xs,int ys,
		char *string[],int num,char *out_string,
		int menu,int cursor,int box,int highlight,int base);
int histo(int xc,int yc,int xs,int ys,
		int bxc,int byc,int bxs,int bys,int val,int img);
int add_disk_path(char *string);
int open_image(FILE *fp,int filenum);
int rescale_image(void);
int shade(int img,int scale);
int plot_vectors(void);
int graph_locate(int *x,int *y,int *speed);
int get_xy(int *x,int *y,int *speed,int *imgx,int *imgy);
int video_off(void);
int pixel_locate(int *x,int *y,int *speed,int img);
double clat(double x,double y);
double clon(double x,double y);
double cy(double lat,double lon);
double cx(double lat,double lon);
int change_color(void);
int load_image(int filenum);
int screen_mm(void);
int plot_sub_image(FILE *fp,int sample,int filenum);
int plot_full_image(FILE *fp,int sample,int filenum);
int limit_area_fixed(int *xc,int *yc,int *xs,int *ys,int *speed,int *sample);
int read_lbl(char *label,int filenum);
int xy_ll(double x,double y,double *lat,double *lon);
int ll_xy(double *x,double *y,double lat,double lon);
int copy_hdr(int d,int s);
int set_lut(char type,char *filename);
int do_menu_buff(char *menu[],int num,int xc,int yc,
		int start,int back,int words,int boxs,int font[128][25]);
int save_sub_mem(int xc,int yc,int xs,int ys);
int recall_sub_mem(int xc,int yc,int xs,int ys);
char fsplit(char *instring,char *path,char *name,char *type);
FILE *open_to_write_text(char *name);
FILE *open_to_read_text(char *name);
FILE *open_to_write_binary(char *name);
FILE *open_to_read_binary(char *name);
int MapFont[128][25]=
{
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
       0,  0,  0, 56, 56, 56,  0,  0,  0,  0,  0,  0,
     204,204,204,204,204,204,204,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     1020,1020,192,192,192,192,192,192,252,254,195,195,195,
     254,248,216,204,198,195,  0,  0,  0,  0,  0,  0,
     1016,1022,819,819,819,819,819,819,819,1022,1016,816,816,
     816,816,816,816,1008,1008,  0,  0,  0,  0,  0,  0,
     120,252,390,390,390,390,252,120,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     192,480,816,816,816,816,816,480,192,480,480,816,816,
     795,795,783,782,510,231,  0,  0,  0,  0,  0,  0,
      96,240,240,112, 48, 32,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      28, 54, 99,192,192,192,192,192,192,1016,1016,192,192,
     192,192,192, 99, 54, 28,  0,  0,  0,  0,  0,  0,
      64, 48, 24, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 24, 48, 64,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,204,204,120,120,1023,1023,120,120,204,
     204,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0, 48, 48, 48,510,510, 48, 48, 48,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 96,240,240,112, 48, 32,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       3,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96, 96,
     192,192,384,384,768,768,  0,  0,  0,  0,  0,  0,
     120,510,390,771,771,771,771,771,771,771,771,771,771,
     771,771,771,390,510,120,  0,  0,  0,  0,  0,  0,
      48,112,240,432, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,  3,  6, 12, 24, 48, 96,192,384,
     384,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     120,510,903,771,  3,  3,  3,  6, 12, 56, 12,  6,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
      12, 28, 28, 60, 60,108,108,204,204,396,396,1023,1023,
      12, 12, 12, 12, 12, 12,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,888,1022,775,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,768,888,1022,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96,
      96, 96,192,192,192,192,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,903,510,510,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,771,899,511,127,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       1,  3,  7, 14, 28, 56,112,224,448,896,448,224,112,
      56, 28, 14,  7,  3,  1,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,510,510,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     512,768,896,448,224,112, 56, 28, 14,  7, 14, 28, 56,
     112,224,448,896,768,512,  0,  0,  0,  0,  0,  0,
     120,510,775,903,391, 14, 28, 56, 48, 48, 48, 48, 48,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,252,510,771,827,843,843,822,768,508,
     252,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,771,771,771,771,1023,1023,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,782,1016,1016,782,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     252,510,903,771,768,768,768,768,768,768,768,768,768,
     768,768,771,903,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,771,771,771,771,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     120,510,771,771,768,768,768,768,768,768,783,783,771,
     771,771,771,771,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,1023,1023,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     252,252, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
       3,  3,771,775,510,252,  0,  0,  0,  0,  0,  0,
     771,771,771,771,774,780,792,816,864,960,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     768,768,768,768,768,768,768,768,768,768,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     771,903,903,975,975,891,891,819,819,771,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,899,963,963,963,867,867,867,819,819,819,795,795,
     795,783,783,783,775,771,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,774,771,771,771,771,774,1022,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,819,795,780,502, 99,  0,  0,  0,  0,  0,  0,
     1016,1022,771,771,771,771,771,775,1022,1016,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,896,504,126,  7,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,390,204,120, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,819,819,819,
     510,510,510,204,204,204,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,390,204,120, 48,120,204,390,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,390,204,120, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 96, 96,192,
     192,384,384,768,1023,1023,  0,  0,  0,  0,  0,  0,
     252,252,192,192,192,192,192,192,192,192,192,192,192,
     192,192,192,192,252,252,  0,  0,  0,  0,  0,  0,
     768,768,384,384,192,192, 96, 96, 48, 48, 48, 24, 24,
      12, 12,  6,  6,  3,  3,  0,  0,  0,  0,  0,  0,
     252,252, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 12,252,252,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     384,192, 96, 48, 24, 12,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,243,507,775,771,771,
     771,771,771,775,507,243,  0,  0,  0,  0,  0,  0,
     896,768,768,768,768,768,768,768,824,894,899,771,771,
     771,771,771,899,894,824,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,768,
     768,768,768,903,510,120,  0,  0,  0,  0,  0,  0,
       7,  3,  3,  3,  3,  3,  3,  3,115,507,911,771,771,
     771,771,771,911,507,115,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,771,1023,
     768,768,768,771,510,252,  0,  0,  0,  0,  0,  0,
      28,126,195,195,192,192,192,192,1008,1008,192,192,192,
     192,192,192,192,192,192,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,115,507,783,771,771,
     771,771,771,911,507,115,  3,  3,771,390,252,120,
     768,768,768,768,768,768,768,768,824,894,903,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 48, 48,  0,  0,240,240, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 12, 12,  0,  0, 63, 63, 12, 12, 12,
      12, 12, 12, 12, 12, 12, 12, 12, 12,780,408,240,
     768,768,768,768,768,782,792,816,864,960,896,896,960,
     864,816,792,780,774,771,  0,  0,  0,  0,  0,  0,
     240,112, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,510,510,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,876,951,819,819,819,
     819,819,819,819,819,819,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,828,894,963,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,252,510,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,899,771,771,
     771,771,771,903,894,824,768,768,768,768,768,896,
       0,  0,  0,  0,  0,  0,  0,  0,118,510,774,774,774,
     774,774,774,774,510,118,  6,  6,  6,  6,  6, 31,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,903,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,480,
     120, 30,  3,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,192,192,192,192,192,1016,1016,192,192,192,
     192,192,195,195,126, 24,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,390,390,
     204,204,120,120, 48, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,819,
     819,819,819,819,438,204,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,204,120,
      48,120,204,390,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,771,511,127,  3,  3,  3,903,510,120,
       0,  0,  0,  0,  0,  0,  0,  0,1023,1023,  6, 12, 24,
      48, 96,192,384,1023,1023,  0,  0,  0,  0,  0,  0,
      30, 62, 48, 48, 48, 48, 48, 48,224,960,224, 48, 48,
      48, 48, 48, 48, 62, 30,  0,  0,  0,  0,  0,  0,
      48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     480,496, 48, 48, 48, 48, 48, 48, 28,  7, 28, 48, 48,
      48, 48, 48, 48,496,480,  0,  0,  0,  0,  0,  0,
     480,1011,831, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};
int MapFont[128][25]=
{
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
       0,  0,  0, 56, 56, 56,  0,  0,  0,  0,  0,  0,
     975,975,975,975,195,195,390,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     1020,1020,192,192,192,192,192,248,252,195,195,195,252,
     248,240,216,204,198,195,  0,  0,  0,  0,  0,  0,
     1016,1020,803,803,803,803,803,803,828,824,800,800,800,
     800,800,800,800,992,992,  0,  0,  0,  0,  0,  0,
     511,1023,819,819,822,486,204, 24, 48, 48, 96, 96,204,
     222,435,435,819,798,780,  0,  0,  0,  0,  0,  0,
     192,480,816,816,816,816,816,480,192,480,480,816,816,
     795,795,783,782,510,231,  0,  0,  0,  0,  0,  0,
      48,120,120, 56, 24, 16,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      60,126,195,192,192,192,192,192,192,1016,1016,192,192,
     192,192,192,195,126, 60,  0,  0,  0,  0,  0,  0,
      64, 48, 24, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 24, 48, 64,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,204,204,120,120,1023,1023,120,120,204,
     204,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0, 48, 48, 48,510,510, 48, 48, 48,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 48,120,120, 56, 24, 16,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       3,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96, 96,
     192,192,384,384,768,768,  0,  0,  0,  0,  0,  0,
     120,510,390,771,771,771,771,771,771,771,771,771,771,
     771,771,771,390,510,120,  0,  0,  0,  0,  0,  0,
      48,112,240,432, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,  3,  6, 12, 24, 48, 96,192,384,
     384,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     120,510,903,771,  3,  3,  3,  6, 12, 56, 12,  6,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
      12, 28, 28, 60, 60,108,108,204,204,396,396,1023,1023,
      12, 12, 12, 12, 12, 12,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,888,1022,775,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,768,888,1022,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 48, 48, 96,
      96, 96,192,192,192,192,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,903,510,510,903,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     120,510,903,771,771,771,771,771,899,511,127,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,112,112,112,  0,  0,  0,112,112,
     112, 48, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       1,  3,  7, 14, 28, 56,112,224,448,896,448,224,112,
      56, 28, 14,  7,  3,  1,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,510,510,  0,  0,  0,510,510,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     512,768,896,448,224,112, 56, 28, 14,  7, 14, 28, 56,
     112,224,448,896,768,512,  0,  0,  0,  0,  0,  0,
     120,510,775,903,391, 14, 28, 56, 48, 48, 48, 48, 48,
       0,  0, 48,120,120, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,252,510,771,827,843,843,822,768,508,
     252,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,771,771,771,771,1023,1023,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,782,1016,1016,782,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     252,510,903,771,768,768,768,768,768,768,768,768,768,
     768,768,771,903,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,775,771,771,771,771,771,771,771,771,771,771,
     771,771,771,775,1022,1016,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     1023,1023,768,768,768,768,768,768,1016,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     120,510,771,771,768,768,768,768,768,768,783,783,771,
     771,771,771,771,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,1023,1023,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     252,252, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,  3,
       3,  3,771,775,510,252,  0,  0,  0,  0,  0,  0,
     771,771,771,771,774,780,792,816,864,960,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     768,768,768,768,768,768,768,768,768,768,768,768,768,
     768,768,768,768,1023,1023,  0,  0,  0,  0,  0,  0,
     771,903,903,975,975,891,891,819,819,771,771,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,899,963,963,963,867,867,867,819,819,819,795,795,
     795,783,783,783,775,771,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
     1016,1022,774,771,771,771,771,774,1022,1016,768,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
     252,510,771,771,771,771,771,771,771,771,771,771,771,
     771,819,795,780,502, 99,  0,  0,  0,  0,  0,  0,
     1016,1022,771,771,771,771,771,775,1022,1016,864,816,792,
     780,774,771,771,771,771,  0,  0,  0,  0,  0,  0,
     120,510,903,771,768,768,768,896,504,126,  7,  3,  3,
       3,  3,771,903,510,120,  0,  0,  0,  0,  0,  0,
     1023,1023, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,771,771,771,771,771,
     771,771,390,204,120, 48,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,771,770,771,819,819,819,
     510,510,510,204,204,204,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,390,204,120, 48,120,204,390,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
     771,771,771,771,771,771,771,390,204,120, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     1023,1023,  3,  6,  6, 12, 12, 24, 24, 48, 96, 96,192,
     192,384,384,768,1023,1023,  0,  0,  0,  0,  0,  0,
     252,252,192,192,192,192,192,192,192,192,192,192,192,
     192,192,192,192,252,252,  0,  0,  0,  0,  0,  0,
     768,768,384,384,192,192, 96, 96, 48, 48, 48, 24, 24,
      12, 12,  6,  6,  3,  3,  0,  0,  0,  0,  0,  0,
     252,252, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
      12, 12, 12, 12,252,252,  0,  0,  0,  0,  0,  0,
      48,120,204,390,771,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     384,192, 96, 48, 24, 12,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,243,507,775,771,771,
     771,771,771,775,507,243,  0,  0,  0,  0,  0,  0,
     896,768,768,768,768,768,768,768,824,894,899,771,771,
     771,771,771,899,894,824,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,768,
     768,768,768,903,510,120,  0,  0,  0,  0,  0,  0,
       7,  3,  3,  3,  3,  3,  3,  3,115,507,911,771,771,
     771,771,771,911,507,115,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,771,1023,
     768,768,768,771,510,252,  0,  0,  0,  0,  0,  0,
      28,126,195,195,192,192,192,192,1008,1008,192,192,192,
     192,192,192,192,192,192,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,115,507,783,771,771,
     771,771,771,911,507,115,  3,  3,771,390,252,120,
     768,768,768,768,768,768,768,768,824,894,903,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 48, 48,  0,  0,240,240, 48, 48, 48,
      48, 48, 48, 48,252,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0, 12, 12,  0,  0, 63, 63, 12, 12, 12,
      12, 12, 12, 12, 12, 12, 12, 12, 12,780,408,240,
     768,768,768,768,768,782,792,816,864,960,896,896,960,
     864,816,792,780,774,771,  0,  0,  0,  0,  0,  0,
     240,112, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48,510,510,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,876,951,819,819,819,
     819,819,819,819,819,819,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,828,894,963,771,771,
     771,771,771,771,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,252,510,771,771,771,
     771,771,771,771,510,252,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,899,771,771,
     771,771,771,903,894,824,768,768,768,768,768,896,
       0,  0,  0,  0,  0,  0,  0,  0,118,510,774,774,774,
     774,774,774,774,510,118,  6,  6,  6,  6,  6, 31,
       0,  0,  0,  0,  0,  0,  0,  0,824,894,903,768,768,
     768,768,768,768,768,768,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,120,510,903,768,480,
     120, 30,  3,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,192,192,192,192,192,1016,1016,192,192,192,
     192,192,195,195,126, 24,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,903,510,120,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,390,390,
     204,204,120,120, 48, 48,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,819,
     819,819,819,819,438,204,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,390,204,120,
      48,120,204,390,771,771,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,771,771,771,771,771,
     771,771,771,771,511,127,  3,  3,  3,903,510,120,
       0,  0,  0,  0,  0,  0,  0,  0,1023,1023,  6, 12, 24,
      48, 96,192,384,1023,1023,  0,  0,  0,  0,  0,  0,
      30, 62, 48, 48, 48, 48, 48, 48,224,960,224, 48, 48,
      48, 48, 48, 48, 62, 30,  0,  0,  0,  0,  0,  0,
      48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
      48, 48, 48, 48, 48, 48,  0,  0,  0,  0,  0,  0,
     480,496, 48, 48, 48, 48, 48, 48, 28,  7, 28, 48, 48,
      48, 48, 48, 48,496,480,  0,  0,  0,  0,  0,  0,
     480,1011,831, 30,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};
#define LEFT_BUTTON  0
#define RIGHT_BUTTON 1
#define BUTTON_DOWN  0
#define BUTTON_UP    1
#define MAX_ITEM 10

extern unsigned char MouseBuffer[100];
extern unsigned char *MenuBuffer[160];
extern int MouseMove;
struct menu_item
{
	char *item,ret,status;
};
struct menu
{
	char *bar,bar_return,status;
	int num_entry;
	struct menu_item menu[MAX_ITEM];
};
int mouse_initialize(int sensitivity);
unsigned  mouse_information(int *right,int *left,int *row,int *col);
void  mouse_move_cursor(int row,int col);
void  mouse_times_pressed(int mouse_button,int *num_times,int *row,int *col);
void  mouse_times_released(int mouse_button,int *num_times,int *row,int *col);
void  mouse_horizontal_range(int left,int right);
void  mouse_vertical_range(int top,int bottom);

void  mouse_get_button(int *right,int *left);
int   mouse_get_point(int *right,int *left,int *row,int *col,int button_up);
char tmouse_menu(struct menu *m,int back_color,int off_color,int on_color,
		int ret_inactive,
		int ret_left,int ret_right,int ret_top,int ret_bottom,
		int ret_row,int ret_col,int *start_row,int *start_col,
		int ret_mousemove,int cursor,int button_up);
char  mouse_menu(struct menu *m,int back_color,int off_color,int on_color,
		int ret_inactive,
		int ret_left,int ret_right,int ret_top,int ret_bottom,
		int ret_row,int ret_col,int *start_row,int *start_col,
		int ret_mousemove,int cursor,int button_up);
int MouseMove;
int Mouse=0;
void  mouse_information(int *right,int *left,int *row,int *col){};
void  tmouse_information(int *right,int *left,int *row,int *col){};
void  mouse_move_cursor(int row,int col){};
void  tmouse_move_cursor(int row,int col){};
void  mouse_horizontal_range(int left,int right){};
void  tmouse_horizontal_range(int left,int right){};
void  mouse_vertical_range(int top,int bottom){};
void  tmouse_vertical_range(int top,int bottom){};
void mouse_show_cursor(void){};
void tmouse_show_cursor(void){};
void mouse_hide_cursor(void){};
void tmouse_hide_cursor(void){};

#define NUM_PROJ 18

struct projection
{
	char name[80];
	char id;
};
extern struct projection Proj[NUM_PROJ];
struct control
{
	char proj;
	int pnum;
	double lon_0,lon_1,lon_2,lon_p;
	double lat_0,lat_1,lat_2,lat_p;
	double pixsize,scale;
	double x0,y0;
	double c,C,F,H,k,k0,k1,k2,n,P,rho_0;
	double omega; /* elevation (tilt of surface plane) */
	double gamma; /* azimuth (east of north) */
	double horiz; /* radius of horizon arc */
};

int auto_set_constants(struct control *cc);
int xy2ll(double x,double y,double *lat,double *lon,struct control cc);
int ll2xy(double lat,double lon,double *x,double *y,struct control cc);
int get_constants(struct control *cc,char string[][80],int *nums);
int choose_projection(struct control *cc,char *string);
int dms(double ddeg,double *deg,double *min,double *sec);


#define NUM_PROJ 18

struct projection
{
	char name[80];
	char id;
};
extern struct projection Proj[NUM_PROJ];
struct control
{
	char proj;
	int pnum;
	double lon_0,lon_1,lon_2,lon_p;
	double lat_0,lat_1,lat_2,lat_p;
	double pixsize,scale;
	double x0,y0;
	double c,C,F,H,k,k0,k1,k2,n,P,rho_0;
	double omega; /* elevation (tilt of surface plane) */
	double gamma; /* azimuth (east of north) */
	double horiz; /* radius of horizon arc */
};

int auto_set_constants(struct control *cc);
int xy2ll(double x,double y,double *lat,double *lon,struct control cc);
int ll2xy(double lat,double lon,double *x,double *y,struct control cc);
int get_constants(struct control *cc,char string[][80],int *nums);
int choose_projection(struct control *cc,char *string);
int dms(double ddeg,double *deg,double *min,double *sec);


#define NUM_VAR 10
#define MAXDO 1000
#define PAUSE printf("HIT ANY KEY TO CONTINUE.\n");getch()
#define MAX 100

int raster_prevue(FILE *fppmp);
int ihs2rgb(struct Color *lut,float i,int h,float s);
int get_color(char *name);
int plot_line(char *name,int color);
int plot_line_pattern(char *name,FILE *fppmp);
int screen_limits(void);
int screen_xy2ll(int sx,int sy, double *lat,double *lon);
int screen_ll2xy( double lat,double lon,int *sx,int *sy);
int fill_in(char *filename);
int auto_fill_in(int val,int todo[][MAXDO],int cx,int cy);
int purge(int fillval,int todo[][MAXDO],int on);
int check_point(int x,int y,int fillval,int on,int todo[][MAXDO]);
int read_pmp(FILE *fp,struct control *cc,struct map *mm);
FILE *read_mode(char *name);
int plot_screen(FILE *fppmp,FILE *fprmp,char iop);
int raster_final(FILE *fppmp,char *name);
int save_screen(FILE *fprmp);
int get_screen(FILE *fprmp);
long fix_fill(void);
long remove_contacts(int color,int *change);
int delete_contacts(FILE *fprmp);
int complete_fill(FILE *fprmp,char *name);
int rough_raster(FILE *fprmp,FILE *fppmp);
int find_area(char *name);
int image_xy2ll(int ix,int iy, double *lat,double *lon);
int image_ll2xy( double lat,double lon,int *ix,int *iy);
long check_screen(int val,int *row,int *col);
int make_map(void);
int edit_map(void);
int plot_blb(FILE *fpblb,int size,char mode);
long find_closest(FILE *fpblb,int col,int row);
int add_contacts(FILE *fprmp);
int mark_color(int iop,int *row,int *col,int size,
		FILE *fpblb,FILE *fprmp);
int message(char *string,int box,int text,int xc,int yc);
int unmessage(char *string,int box,int text,int xc,int yc);
int plot_final_screen(FILE *fppmp);
int line_color(char *cname);
int graph_plot(char *type_plot);
int free_G(int row);
long plotln_pat1(int hue,int x1,int y1,int x2,int y2,
		int row,int col,int hot,long lnum,char *pat[],int iop);
long plotln_pat2(int hue,int x1,int y1,int x2,int y2,int x3,int y3,
		int row,int col,int hot,long lnum,char *pat[],int iop);
int edit_fill_mark(FILE *fprmp);
int edit_fill_change(FILE *fprmp);
int final_key(void);
int print_key_screen(int yc,int xc,int row,int col,
		FILE *fppmp,FILE *fpkmp,int backcolor,int boxwide);
save_key_screen(FILE *fpkmp,int row,int col,int ix0,int iy0);
int make_pmp(void);
int plot_graticule(FILE *fppmp,char *string);
int error(char *text);
int deg2char(char *string,int itype,double ddeg);
int check_id(char *ll,int itype,double lat,double lon,int ys,
	int iy,int iyo,int ix,int ixo,int ixml,int ixmr,int iymt,int iymb,int wide);
int remove_dupes(int high);
#define ON  1
#define OFF 0

void spline(float x[],float y[],int n,float yp1,float ypn,float y2[],float u[]);
void splint(float xa[],float ya[],float y2a[],int n,float x,float *y);
int dsplint(float xa[],float ya[],float y2a[],int n,float x,float *y,
		float *dist,float dely);

extern float UScale;		/* spline flexibility -- 0=linear 1=cubic spline */
extern int IsoV;			/* limits violations to limits of isopleths if ON */
extern int Extrapolate; /* if OFF sets Y to end point value */
struct board
{
	int row,col,color;
}B_Id;
char VideoType='X';
struct   Color 
{ 
	unsigned char  r, g, b; 
}Lut[256];
void 				box(int,int,int,int,int,int);		/* draws a box */
void 				cursor(int,int,int,int,int);	/* plots a cursor */
void 				decode_font(int [128][25]);		/* reads 'font.hex' */
int 				do_menu(char *[],int,int,int,int,int,int,int,int [128][25]); 
int 				file_r(char *); 	/* opens a file to read from */
int 				file_w(char *); 	/* opens a file to write to */
int 				fillin(int,int,int,int,int,int);
char 				get_ans(unsigned char *,char *,char *,int,int,int,int,int,int,
						int[128][25],int);
char 				getpad(int *,int *,int *,int *,int);
int 				get_fil(int,int,int,char *);
unsigned char 	getpt(int,int,int);			/* returns the value of a pixel */
void 				getrow(int,unsigned int,unsigned int,unsigned int,
						unsigned char far *);
int 				get_string(char *,unsigned char *,char *,char *,
						int,int,int,int,int,int,int [128][25],int);
void 				help(int);
int 				limit_area(int *,int *,int *,int *,int *,int,int,
						unsigned char *);
int 				limit_area_all(int *,int *,int *,int *,int *,
						int,int,int,unsigned char *,int,int,int);
int 				list_dir(char *,char *);
void 				list_error(int);
void 				move_image();
int 				paint(int,int);
void 				paint_box(int,int,unsigned char *,int,int,int,int);
void 				paintcol(int,unsigned int,unsigned int,unsigned int,int);
void 				pix_val(int,int);
void 				plot_font_h(int,int,int,char *,int,int [128][25]);	
void 				plot_font_v(int,int,int,char *,int,int [128][25]);
void 				plotln(int,int,int,int,int,int);
int 				plotpt(int,int,int,int);		/* plots the value of a pixel */
int 				plotrow(int,int,int,int,unsigned char *);
int 				plotsym( int , int , int , int , int , int );
int 				read_fil(int *,int *, int *);
void 				recall_sub(int,int,int,int,FILE *);
void 				save_box(int,int,unsigned char *,int,int,int,int);
void 				save_sub(int,int,int,int,FILE *);
void 				set_files(void);
void 				tbox(int,int,int,int,int,unsigned char *);
int 				tbox_val(int,int,int,int,int,
						unsigned char *,int,int,int);
int 				tcursor(int,int,int,int,unsigned char *);
int 				t_do_menu(char [][2][50],int,int,int,int,int,
						int,int,int [128][25],int *); 
int 				tplotln_inv_dot(int,int,int,int,int,
						unsigned char *,int);
int 				tplotln_inv_dot();
void 				unbox(int,int,int,int,int,unsigned char *);
void 				uncursor(int,int,int,int,unsigned char *);
int 				unplotln(int,int,int,int,int,unsigned char *);
void 				unsave_box(int,int,unsigned char *,int,int,int,int);

