anchor.diff:    @ApiMethod(method:'POST', path:'export') 
     Future<KeyContainer> export(PadSaveObject data){
       GaeExportRecord record = new GaeExportRecord.FromDSO(data);
  -    sha1SetUUID(record);
  +    record.UUID = _computeSHA1(record);
       db.dbService.commit(inserts: [record])
         .catchError((e) {
         _logger.severe("Error while recording export ${e}");
  
positive.code:     this.epochTime = new DateTime.now().millisecondsSinceEpoch;
    }
  
    List<int> GZIPencode(String input) => io.GZIP.encode(convert.UTF8.encode(input));
    
    GaeExportRecord.FromData(String dart, String html, String css, {String UUID}) {
      this.dart = GZIPencode(dart);
      this.html = GZIPencode(html);
      this.css = GZIPencode(css);;
      this.UUID = UUID;
      this.epochTime = new DateTime.now().millisecondsSinceEpoch;
    }
    
    GaeExportRecord.FromDSO(PadSaveObject pso) {
      this.dart = GZIPencode(pso.dart);
      this.html = GZIPencode(pso.html);
      this.css = GZIPencode(pso.css);
      this.UUID = pso.UUID;
      this.epochTime = new DateTime.now().millisecondsSinceEpoch;
    }
    
    String GZIPdecode(List<int> input) => convert.UTF8.decode(io.GZIP.decode(input));
    String get getDart => GZIPdecode(this.dart);
    String get getHtml => GZIPdecode(this.html);
    String get getCss => GZIPdecode(this.css);
  }
  
  class PadSaveObject {
  
negative.code:   }
  }
  
  String _computeSHA1(GaeExportRecord record) {
    crypto.SHA1 sha1 = new crypto.SHA1();
    convert.Utf8Encoder utf8 = new convert.Utf8Encoder();
    sha1.add(utf8.convert("blob  'n ${record.getDart} ${record.getHtml} ${record.getCss}"));
    return crypto.CryptoUtils.bytesToHex(sha1.close());
  }
  
  List<int> _gzipEncode(String input) => io.GZIP.encode(convert.UTF8.encode(input));
  String _gzipDecode(List<int> input) => convert.UTF8.decode(io.GZIP.decode(input));
  