anchor.diff:      Pod partner;
       int timeout = 100;
       bool shield = false;
  +    int shieldTimeout = 0;
  +    int checked = 0;
  +    bool boostUsed = false;
   
       Pod(int id, num x, num y,
           num vx, num vy, this.angle, this.nextCP) :
  
positive.code: void main() {
      List inputs;
      int laps = int.parse(stdin.readLineSync());
      stderr.writeln("Laps $laps");
      int cpCount = int.parse(stdin.readLineSync());
  
      for(int i = 0; i < cpCount; i++){
          inputs = stdin.readLineSync().split(' ');
  
negative.code:     }
  
      void bounceWithCheckpoint(Checkpoint u){
          if(u.id == this.nextCP){
              this.nextCP =
              (this.nextCP + 1) % cpCount;
              this.timeout = 100;
              this.partner.timeout = 100;
              this.checked += 1;
          }
  
      }
      
      void apply(Move move){
          //apply the angle change and thrust, but don't move
          num a = move.angle;
          if(a < -18){
              a = -18;
          }
          if(a > 18){
              a = 18;
          }
          
          this.angle += a;
  
          // The % operator is slow. If we can avoid it, it's better.
          if (this.angle >= 360.0) {
              this.angle = this.angle - 360.0;
          } else if (this.angle < 0.0) {
              this.angle += 360.0;
          }
          
          if(move.thrust >= 0){
              this.boost(move.thrust);
          } else if (!shield) {
              this.activateShield();
          }
      }
      
      void output(Move move) {
          num a = angle + move.angle;
      
          if (a >= 360.0) {
              a = a - 360.0;
          } else if (a < 0.0) {
              a += 360.0;
          }
      
          // Look for a point corresponding to the angle we want
          // Multiply by 10000.0 to limit rounding errors
          a = a * PI / 180.0;
          num px = this.x + cos(a) * 10000.0;
          num py = this.y + sin(a) * 10000.0;
  
          if (move.shield) {
              print("${px.round()} ${py.round()} SHIELD");
              activateShield();
          } else {
              print("${px.round()} ${py.round()} ${move.thrust}");
          }
      }
      
      num score() {
          return checked*50000 - this.distance(checkpoints[this.nextCP]);
      }    
  }
  
  class Checkpoint extends Unit {
      Checkpoint(num id, num x, num y) : super(id, x, y, 0, 0){
          radius = 100;
      }
  
      int get hashCode {
  