  # Rule: surround types1 types2 distance presence error 
  if(m/^\s*(surround)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $text=$6;
    print "  $1 $vl2 $vl3 $4 $5 \"$6 [erase $l2][erase $l3]\"\n";
  }

  # Rule: widespacing types1 wwidth types2 distance flavor error 
  if(m/^\s*(widespacing)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl4=$4;
    my $l4=join " ",allLayers($vl4);
    my $text=$7;
    print "  $1 $vl2 $3 $vl4 $5 $6 \"$7 [erase $l2][erase $l4]\"\n";
  }

  # Rule: spacing types1 types2 distance adjacency error 
  if(m/^\s*(spacing)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $text=$6;
    print "  $1 $vl2 $vl3 $4 $5 \"$6 [erase $l2][erase $l3]\"\n";
  }

  # Rule: width type-list width error 
  if(m/^\s*(width)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: overhang types1 types2 distance error
  if(m/^\s*(overhang)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $text=$5;
    print "  $1 $vl2 $vl3 $4 \"$5 [erase $l2][erase $l3]\"\n";
  }

  # Rule: extend types1 types2 distance error  
  if(m/^\s*(extend)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $text=$5;
    print "  $1 $vl2 $vl3 $4 \"$5 [erase $l2][erase $l3]\"\n";
  }

  # Rule: rect_only types error
  if(m/^\s*(rect_only)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$3;
    print "  $1 $vl2 \"$3 [erase $l2]\"\n";
  }

  # Rule: angles types allowed why 
  if(m/^\s*(angles)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: edge types1 types2 d OKTypes cornerTypes cornerDist error  
  if(m/^\s*(edge)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $vl5=$5;
    my $l5=join " ",allLayers($vl5);
    my $text=$8;
    print "  $1 $vl2 $vl3 $4 $vl5 $6 $7 \"$8 [erase $l2][erase $l3][erase $l5]\"\n";
  }

  # Rule: edge types1 types2 d OKTypes cornerTypes cornerDist error plane 
  if(m/^\s*(edge)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s+(\S+)\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $vl5=$5;
    my $l5=join " ",allLayers($vl5);
    my $text=$8;
    print "  $1 $vl2 $vl3 $4 $vl5 $6 $7 \"$8 [erase $l2][erase $l3][erase $l5]\"$9 \n";
  }

  # Rule: edge4way types1 types2 d OKTypes cornerTypes cornerDist error  
  if(m/^\s*(edge4way)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $vl5=$5;
    my $l5=join " ",allLayers($vl5);
    my $text=$8;
    print "  $1 $vl2 $vl3 $4 $vl5 $6 $7 \"$8 [erase $l2][erase $l3][erase $l5]\"\n";
  }

  # Rule: edge4way types1 types2 d OKTypes cornerTypes cornerDist error plane 
  if(m/^\s*(edge4way)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s+(\S+)\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $vl5=$5;
    my $l5=join " ",allLayers($vl5);
    my $text=$8;
    print "  $1 $vl2 $vl3 $4 $vl5 $6 $7 \"$8 [erase $l2][erase $l3][erase $l5]\"$9 \n";
  }

  # Rule: exact_overlap type-list
  if(m/^\s*(exact_overlap)\s+(\S+)\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    print "  $1 $vl2 \n";
  }

  # Rule: no_overlap type-list1 type-list2
  if(m/^\s*(no_overlap)\s+(\S+)\s+(\S+)\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    print "  $1 $vl2 $vl3 \n";
  }

  # Rule: off_grid types pitch why 
  if(m/^\s*(off_grid)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: area types minarea minedge why
  if(m/^\s*(area)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$5;
    print "  $1 $vl2 $3 $4 \"$5 [erase $l2]\"\n";
  }

  # Rule: maxwidth layers mwidth  why 
  if(m/^\s*(maxwidth)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: maxwidth layers mwidth bends why 
  if(m/^\s*(maxwidth)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$5;
    print "  $1 $vl2 $3 $4 \"$5 [erase $l2]\"\n";
  }

  # Rule: cifwidth layer width why
  if(m/^\s*(cifwidth)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: cifspacing layer1 layer2 separation adjacency why 
  if(m/^\s*(cifspacing)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $vl3=$3;
    my $l3=join " ",allLayers($vl3);
    my $text=$6;
    print "  $1 $vl2 $vl3 $4 $5 \"$6 [erase $l2][erase $l3]\"\n";
  }

  # Rule: cifarea layer minarea minedge why 
  if(m/^\s*(cifarea)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$5;
    print "  $1 $vl2 $3 $4 \"$5 [erase $l2]\"\n";
  }

  # Rule: cifmaxwidth layer mwidth  why
  if(m/^\s*(cifmaxwidth)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$4;
    print "  $1 $vl2 $3 \"$4 [erase $l2]\"\n";
  }

  # Rule: cifmaxwidth layer mwidth bends why
  if(m/^\s*(cifmaxwidth)\s+(\S+)\s+(\S+)\s+(\S+)\s+"([^"]*)"\s*$/)
  {
    print " # ORIGINAL RULE:$oneline\n";
    my $vl2=$2;
    my $l2=join " ",allLayers($vl2);
    my $text=$5;
    print "  $1 $vl2 $3 $4 \"$5 [erase $l2]\"\n";
  }

