text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/websecurityscanner/v1/scan_run_warning_trace.proto

package com.google.cloud.websecurityscanner.v1;

/**
 *
 *
 *

 * Output only.
 * Defines a warning trace message for ScanRun. Warning traces provide customers
 * with useful information that helps make the scanning process more effective.
 *

 *
 * Protobuf type {@code google.cloud.websecurityscanner.v1.ScanRunWarningTrace}
 */
public final class ScanRunWarningTrace extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.cloud.websecurityscanner.v1.ScanRunWarningTrace)
    ScanRunWarningTraceOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use ScanRunWarningTrace.newBuilder() to construct.
  private ScanRunWarningTrace(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private ScanRunWarningTrace() {
    code_ = 0;
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
    return new ScanRunWarningTrace();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceProto
        .internal_static_google_cloud_websecurityscanner_v1_ScanRunWarningTrace_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceProto
        .internal_static_google_cloud_websecurityscanner_v1_ScanRunWarningTrace_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.class,
            com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Builder.class);
  }

  /**
   *
   *
   *

   * Output only.
   * Defines a warning message code.
   * Next id: 6
   *

   *
   * Protobuf enum {@code google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code}
   */
  public enum Code implements com.google.protobuf.ProtocolMessageEnum {
    /**
     *
     *
     *

     * Default value is never used.
     *

     *
     * CODE_UNSPECIFIED = 0;
     */
    CODE_UNSPECIFIED(0),
    /**
     *
     *
     *

     * Indicates that a scan discovered an unexpectedly low number of URLs. This
     * is sometimes caused by complex navigation features or by using a single
     * URL for numerous pages.
     *

     *
     * INSUFFICIENT_CRAWL_RESULTS = 1;
     */
    INSUFFICIENT_CRAWL_RESULTS(1),
    /**
     *
     *
     *

     * Indicates that a scan discovered too many URLs to test, or excessive
     * redundant URLs.
     *

     *
     * TOO_MANY_CRAWL_RESULTS = 2;
     */
    TOO_MANY_CRAWL_RESULTS(2),
    /**
     *
     *
     *

     * Indicates that too many tests have been generated for the scan. Customer
     * should try reducing the number of starting URLs, increasing the QPS rate,
     * or narrowing down the scope of the scan using the excluded patterns.
     *

     *
     * TOO_MANY_FUZZ_TASKS = 3;
     */
    TOO_MANY_FUZZ_TASKS(3),
    /**
     *
     *
     *

     * Indicates that a scan is blocked by IAP.
     *

     *
     * BLOCKED_BY_IAP = 4;
     */
    BLOCKED_BY_IAP(4),
    /**
     *
     *
     *

     * Indicates that no seeds is found for a scan
     *

     *
     * NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN = 5;
     */
    NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN(5),
    UNRECOGNIZED(-1),
    ;

    /**
     *
     *
     *

     * Default value is never used.
     *

     *
     * CODE_UNSPECIFIED = 0;
     */
    public static final int CODE_UNSPECIFIED_VALUE = 0;
    /**
     *
     *
     *

     * Indicates that a scan discovered an unexpectedly low number of URLs. This
     * is sometimes caused by complex navigation features or by using a single
     * URL for numerous pages.
     *

     *
     * INSUFFICIENT_CRAWL_RESULTS = 1;
     */
    public static final int INSUFFICIENT_CRAWL_RESULTS_VALUE = 1;
    /**
     *
     *
     *

     * Indicates that a scan discovered too many URLs to test, or excessive
     * redundant URLs.
     *

     *
     * TOO_MANY_CRAWL_RESULTS = 2;
     */
    public static final int TOO_MANY_CRAWL_RESULTS_VALUE = 2;
    /**
     *
     *
     *

     * Indicates that too many tests have been generated for the scan. Customer
     * should try reducing the number of starting URLs, increasing the QPS rate,
     * or narrowing down the scope of the scan using the excluded patterns.
     *

     *
     * TOO_MANY_FUZZ_TASKS = 3;
     */
    public static final int TOO_MANY_FUZZ_TASKS_VALUE = 3;
    /**
     *
     *
     *

     * Indicates that a scan is blocked by IAP.
     *

     *
     * BLOCKED_BY_IAP = 4;
     */
    public static final int BLOCKED_BY_IAP_VALUE = 4;
    /**
     *
     *
     *

     * Indicates that no seeds is found for a scan
     *

     *
     * NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN = 5;
     */
    public static final int NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN_VALUE = 5;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static Code valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static Code forNumber(int value) {
      switch (value) {
        case 0:
          return CODE_UNSPECIFIED;
        case 1:
          return INSUFFICIENT_CRAWL_RESULTS;
        case 2:
          return TOO_MANY_CRAWL_RESULTS;
        case 3:
          return TOO_MANY_FUZZ_TASKS;
        case 4:
          return BLOCKED_BY_IAP;
        case 5:
          return NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap() {
          public Code findValueByNumber(int number) {
            return Code.forNumber(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.getDescriptor()
          .getEnumTypes()
          .get(0);
    }

    private static final Code[] VALUES = values();

    public static Code valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private Code(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code)
  }

  public static final int CODE_FIELD_NUMBER = 1;
  private int code_;
  /**
   *
   *
   *

   * Output only. Indicates the warning code.
   *

   *
   * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
   *
   * @return The enum numeric value on the wire for code.
   */
  @java.lang.Override
  public int getCodeValue() {
    return code_;
  }
  /**
   *
   *
   *

   * Output only. Indicates the warning code.
   *

   *
   * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
   *
   * @return The code.
   */
  @java.lang.Override
  public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code getCode() {
    @SuppressWarnings("deprecation")
    com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code result =
        com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.valueOf(code_);
    return result == null
        ? com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.UNRECOGNIZED
        : result;
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (code_
        != com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.CODE_UNSPECIFIED
            .getNumber()) {
      output.writeEnum(1, code_);
    }
    getUnknownFields().writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (code_
        != com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.CODE_UNSPECIFIED
            .getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, code_);
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace)) {
      return super.equals(obj);
    }
    com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace other =
        (com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace) obj;

    if (code_ != other.code_) return false;
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + CODE_FIELD_NUMBER;
    hash = (53 * hash) + code_;
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseDelimitedFrom(
      java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseDelimitedFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   *

   * Output only.
   * Defines a warning trace message for ScanRun. Warning traces provide customers
   * with useful information that helps make the scanning process more effective.
   *

   *
   * Protobuf type {@code google.cloud.websecurityscanner.v1.ScanRunWarningTrace}
   */
  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.cloud.websecurityscanner.v1.ScanRunWarningTrace)
      com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceProto
          .internal_static_google_cloud_websecurityscanner_v1_ScanRunWarningTrace_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceProto
          .internal_static_google_cloud_websecurityscanner_v1_ScanRunWarningTrace_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.class,
              com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Builder.class);
    }

    // Construct using com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.newBuilder()
    private Builder() {}

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      code_ = 0;

      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.cloud.websecurityscanner.v1.ScanRunWarningTraceProto
          .internal_static_google_cloud_websecurityscanner_v1_ScanRunWarningTrace_descriptor;
    }

    @java.lang.Override
    public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace getDefaultInstanceForType() {
      return com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace build() {
      com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace buildPartial() {
      com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace result =
          new com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace(this);
      result.code_ = code_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace) {
        return mergeFrom((com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace other) {
      if (other == com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.getDefaultInstance())
        return this;
      if (other.code_ != 0) {
        setCodeValue(other.getCodeValue());
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                code_ = input.readEnum();

                break;
              } // case 8
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }

    private int code_ = 0;
    /**
     *
     *
     *

     * Output only. Indicates the warning code.
     *

     *
     * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
     *
     * @return The enum numeric value on the wire for code.
     */
    @java.lang.Override
    public int getCodeValue() {
      return code_;
    }
    /**
     *
     *
     *

     * Output only. Indicates the warning code.
     *

     *
     * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
     *
     * @param value The enum numeric value on the wire for code to set.
     * @return This builder for chaining.
     */
    public Builder setCodeValue(int value) {

      code_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Indicates the warning code.
     *

     *
     * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
     *
     * @return The code.
     */
    @java.lang.Override
    public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code getCode() {
      @SuppressWarnings("deprecation")
      com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code result =
          com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.valueOf(code_);
      return result == null
          ? com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code.UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     *

     * Output only. Indicates the warning code.
     *

     *
     * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
     *
     * @param value The code to set.
     * @return This builder for chaining.
     */
    public Builder setCode(com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code value) {
      if (value == null) {
        throw new NullPointerException();
      }

      code_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Indicates the warning code.
     *

     *
     * .google.cloud.websecurityscanner.v1.ScanRunWarningTrace.Code code = 1;
     *
     * @return This builder for chaining.
     */
    public Builder clearCode() {

      code_ = 0;
      onChanged();
      return this;
    }

    @java.lang.Override
    public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.cloud.websecurityscanner.v1.ScanRunWarningTrace)
  }

  // @@protoc_insertion_point(class_scope:google.cloud.websecurityscanner.v1.ScanRunWarningTrace)
  private static final com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE = new com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace();
  }

  public static com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<ScanRunWarningTrace> PARSER =
      new com.google.protobuf.AbstractParser<ScanRunWarningTrace>() {
        @java.lang.Override
        public ScanRunWarningTrace parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

  public static com.google.protobuf.Parser<ScanRunWarningTrace> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<ScanRunWarningTrace> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.cloud.websecurityscanner.v1.ScanRunWarningTrace getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
}


text:
static NSTimeInterval asyncSpecTimeout = 10.0;

static void spt_defineItBlock(NSString *name, NSString *fileName, NSUInteger lineNumber, BOOL focused, void (^block)(void)) {
  SPTReturnUnlessBlockOrNil(block);
  SPTCallSite *site = nil;
  if (lineNumber && fileName) {
    site = [SPTCallSite callSiteWithFile:fileName line:lineNumber];
  }
  [SPTCurrentGroup addExampleWithName:name callSite:site focused:focused block:block];
}

static void spt_defineDescribeBlock(NSString *name, BOOL focused, void (^block)(void)) {
  if (block) {
    [SPTGroupStack addObject:[SPTCurrentGroup addExampleGroupWithName:name focused:focused]];
    block();
    [SPTGroupStack removeLastObject];
  } else {
    spt_defineItBlock(name, nil, 0, focused, nil);
  }
}

void spt_it_(NSString *name, NSString *fileName, NSUInteger lineNumber, void (^block)(void)) {
  spt_defineItBlock(name, fileName, lineNumber, NO, block);
}

void spt_fit_(NSString *name, NSString *fileName, NSUInteger lineNumber, void (^block)(void)) {
  spt_defineItBlock(name, fileName, lineNumber, YES, block);
}

void spt_pending_(NSString *name, ...) {
  spt_defineItBlock(name, nil, 0, NO, nil);
}

void spt_itShouldBehaveLike_(NSString *fileName, NSUInteger lineNumber, NSString *name, id dictionaryOrBlock) {
  SPTDictionaryBlock block = [SPTSharedExampleGroups sharedExampleGroupWithName:name exampleGroup:SPTCurrentGroup];
  if (block) {
    if (SPTIsBlock(dictionaryOrBlock)) {
      id (^dataBlock)(void) = [dictionaryOrBlock copy];

      describe(name, ^{
        __block NSMutableDictionary *dataDict = [[NSMutableDictionary alloc] init];

        beforeEach(^{
          NSDictionary *blockData = dataBlock();
          [dataDict addEntriesFromDictionary:blockData];
        });

        block(dataDict);

        afterEach(^{
          [dataDict removeAllObjects];
        });
      });
    } else {
      NSDictionary *data = dictionaryOrBlock;

      describe(name, ^{
        block(data);
      });
    }
  } else {
    SPTSpec *currentSpec = SPTCurrentSpec;
    if (currentSpec) {
      [currentSpec recordFailureWithDescription:@"itShouldBehaveLike should not be invoked inside an example block!" inFile:fileName atLine:lineNumber expected:NO];
    } else {
      it(name, ^{
        [SPTCurrentSpec recordFailureWithDescription:[NSString stringWithFormat:@"Shared example group \"%@\" does not exist.", name] inFile:fileName atLine:lineNumber expected:NO];
      });
    }
  }
}

void spt_itShouldBehaveLike_block(NSString *fileName, NSUInteger lineNumber, NSString *name, NSDictionary *(^block)(void)) {
  spt_itShouldBehaveLike_(fileName, lineNumber, name, (id)block);
}

void describe(NSString *name, void (^block)(void)) {
  spt_defineDescribeBlock(name, NO, block);
}

void fdescribe(NSString *name, void (^block)(void)) {
  spt_defineDescribeBlock(name, YES, block);
}

void context(NSString *name, void (^block)(void)) {
  describe(name, block);
}

void fcontext(NSString *name, void (^block)(void)) {
  fdescribe(name, block);
}

void it(NSString *name, void (^block)(void)) {
  spt_defineItBlock(name, nil, 0, NO, block);
}

void fit(NSString *name, void (^block)(void)) {
  spt_defineItBlock(name, nil, 0, YES, block);
}

void example(NSString *name, void (^block)(void)) {
  it(name, block);
}

void fexample(NSString *name, void (^block)(void)) {
  fit(name, block);
}

void specify(NSString *name, void (^block)(void)) {
  it(name, block);
}

void fspecify(NSString *name, void (^block)(void)) {
  fit(name, block);
}

void beforeAll(void (^block)(void)) {
  SPTReturnUnlessBlockOrNil(block);
  [SPTCurrentGroup addBeforeAllBlock:block];
}

void afterAll(void (^block)(void)) {
  SPTReturnUnlessBlockOrNil(block);
  [SPTCurrentGroup addAfterAllBlock:block];
}

void beforeEach(void (^block)(void)) {
  SPTReturnUnlessBlockOrNil(block);
  [SPTCurrentGroup addBeforeEachBlock:block];
}

void afterEach(void (^block)(void)) {
  SPTReturnUnlessBlockOrNil(block);
  [SPTCurrentGroup addAfterEachBlock:block];
}

void before(void (^block)(void)) {
  beforeEach(block);
}

void after(void (^block)(void)) {
  afterEach(block);
}

void sharedExamplesFor(NSString *name, void (^block)(NSDictionary *data)) {
  [SPTSharedExampleGroups addSharedExampleGroupWithName:name block:block exampleGroup:SPTCurrentGroup];
}

void sharedExamples(NSString *name, void (^block)(NSDictionary *data)) {
  sharedExamplesFor(name, block);
}

void waitUntil(void (^block)(DoneCallback done)) {
  waitUntilTimeout(asyncSpecTimeout, block);
}

void waitUntilTimeout(NSTimeInterval timeout, void (^block)(DoneCallback done)) {
  __block atomic_bool complete = false;
  dispatch_async(dispatch_get_main_queue(), ^{
    block(^{
      complete = true;
    });
  });
  NSDate *timeoutDate = [NSDate dateWithTimeIntervalSinceNow:timeout];
  while (!complete && [timeoutDate timeIntervalSinceNow] > 0) {
    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
  }
  if (!complete) {
    NSString *message = [NSString stringWithFormat:@"failed to invoke done() callback before timeout (%f seconds)", timeout];
    SPTSpec *currentSpec = SPTCurrentSpec;
    SPTTestSuite *testSuite = [[currentSpec class] spt_testSuite];
    [currentSpec recordFailureWithDescription:message inFile:testSuite.fileName atLine:testSuite.lineNumber expected:YES];
  }
}

void setAsyncSpecTimeout(NSTimeInterval timeout) {
  asyncSpecTimeout = timeout;
}

redpajama_set_name: RedPajamaGithub


text:
module Merb

  module Rack

    class Adapter

      class << self
        # ==== Parameters
        # id<String>:: The identifier of the Rack adapter class to retrieve.
        #
        # ==== Returns.
        # Class:: The adapter class.
        def get(id)
          Object.full_const_get(@adapters[id])
        end

        # Registers a new Rack adapter.
        #
        # ==== Parameters
        # ids<Array>:: Identifiers by which this adapter is recognized by.
        # adapter_class<Class>:: The Rack adapter class.
        def register(ids, adapter_class)
          @adapters ||= Hash.new
          ids.each { |id| @adapters[id] = "Merb::Rack::#{adapter_class}" }
        end
      end # class << self

    end # Adapter

    # Register some Rack adapters
    Adapter.register %w{ebb},          :Ebb
    Adapter.register %w{emongrel},     :EventedMongrel
    Adapter.register %w{fastcgi fcgi}, :FastCGI
    Adapter.register %w{irb},          :Irb
    Adapter.register %w{mongrel},      :Mongrel
    Adapter.register %w{runner},       :Runner
    Adapter.register %w{thin},         :Thin
    Adapter.register %w{webrick},      :WEBrick

  end # Rack
end # Merb


text:
void* dostuff(void *);
int parse_request(char [],char [],char []);

void error(const char *msg)
{
	perror(msg);
	exit(1);
}

int main()
{
	pthread_t *wthread;
	int sockfd, newsockfd, portno,rc;
	socklen_t clilen;
	struct sockaddr_in serv_addr, cli_addr;

	sockfd = socket(AF_INET, SOCK_STREAM, 0);
	if (sockfd < 0)
		error("ERROR opening socket");

	bzero((char *) &serv_addr, sizeof(serv_addr));
	portno = myportno;
	serv_addr.sin_family = AF_INET;
	serv_addr.sin_addr.s_addr = INADDR_ANY;
	serv_addr.sin_port = htons(portno);

	if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
		error("ERROR on binding");

	listen(sockfd,5);
	clilen = sizeof(cli_addr);
	while(1) {
		newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
		if (newsockfd < 0)
			error("ERROR on accept");
		printf("Creating Thread...\n");
		wthread=malloc(sizeof(pthread_t));
		rc=pthread_create(wthread, NULL, dostuff,(void *)&newsockfd );
		if(rc) {
			printf("ERROR; return code from pthread_create() is %d\n", rc);
			exit(-1);
		}
	}
	return 0;
	close(sockfd);
}

void* dostuff (void *sck)
{
	int sock = *(int *)sck;
	int sockfd, portno=httpport;
	struct sockaddr_in serv_addr;
	struct hostent *server;
	int n=1;
	char buffer[buf_size],buffer2[buf_size],host[100],request[100];

	bzero(buffer,buf_size);
	n = read(sock,buffer,buf_size);
	if (n < 0)
		error("ERROR reading from socket");

	printf("Here is the message: %s\n",buffer);
	if(parse_request(buffer,host,request)==-1)
		return;

	sockfd = socket(AF_INET, SOCK_STREAM, 0);
	if (sockfd < 0)
		error("ERROR opening socket");

	server = gethostbyname(host);
	if (server == NULL) {
		bzero(buffer2,buf_size);
		strcpy(buffer2,"<h1>No Host Found...<h1>");
		n = write(sock,buffer2,buf_size);

		if (n < 0)
			error("ERROR reading from socket");

		fprintf(stderr,"ERROR, no such host\n");
		printf("\nHost--- %s\n",host);
		printf("Request--- %s\n",request);
		printf("Exiting Thread with errors...\n");
		close(sock);
		close(sockfd);
		return;
	}
	bzero((char *) &serv_addr, sizeof(serv_addr));
	serv_addr.sin_family = AF_INET;
	bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
	serv_addr.sin_port = htons(portno);
	if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
		error("ERROR connecting");

	n = write(sockfd,request,strlen(request));
	//n = write(sockfd, "GET /\n",  10);
	if (n < 0)
		error("ERROR writing to socket");

	bzero(buffer2,buf_size);
	while(read(sockfd,buffer2,buf_size)) {
		if (n < 0)
			error("ERROR reading from socket");
		//printf("\n%s\n",buffer2);
		n = write(sock,buffer2,buf_size);
		if (n < 0)
			error("ERROR writing to socket");
		bzero(buffer2,buf_size);
	}
	printf("\nHost--- %s\n",host);
	printf("Request--- %s\n",request);
	printf("Exiting Thread...\n");
	close(sock);
	close(sockfd);
	pthread_exit(NULL);
}

int parse_request(char buffer[],char host[],char request[])
{
	char *url,temp[100];
	int i=0;

	url=buffer;
	while(*url!='/')
		url++;

	url+=2;
	for(i=0;*url!='/';url++,i++)
		host[i]=*url;

	host[i]='\0';
	strcpy(host, "iitk.ac.in");
	strcpy(request,"GET ");

	for(i=4;*url!=' ';url++,i++)
		request[i]=*url;

	request[i]='\n';
	request[i+1]='\0';
	return 0;
}


text:
Your Ad has been updated successfully, your ad will be posted shortly. Please Check emails!

                            <button class="btn btn-primary btn-lg">ok</button>


text:
/* jshint node: true */
'use strict';

module.exports = {
  name: 'ui-code-highlight',
  description: 'Code highlighting on Ember-CLI projects using highlight.js',
  included: function(app) {
    this._super.included(app);
    var env = app.project.config().uiCodeHighlight || { }; // env or non-evn settings in environment.js file
    var emberCLIVersion = app.project.emberCLIVersion().split(',').map(function(item) {return Number(item);});
    var config = app.options['ui-code-highlight'] || { style: 'docco'}; // non-env specific settings set in Brocfile

    app.import('vendor/ui-code-highlight/ui-code-highlight.css');
    app.import('bower_components/highlightjs/highlight.pack.js');

    if(config.style)  {
      app.import('bower_components/highlightjs/styles/' + config.style + '.css');
    }
  }
};


text:
namespace taichi::lang {
namespace gfx {
namespace {
class FieldImpl : public aot::Field {
 public:
  explicit FieldImpl(GfxRuntime *runtime, const aot::CompiledFieldData &field)
      : runtime_(runtime), field_(field) {
  }

 private:
  GfxRuntime *const runtime_;
  aot::CompiledFieldData field_;
};

class AotModuleImpl : public aot::Module {
 public:
  explicit AotModuleImpl(const AotModuleParams &params, Arch device_api_backend)
      : module_path_(params.module_path),
        runtime_(params.runtime),
        device_api_backend_(device_api_backend) {
    const std::string bin_path =
        fmt::format("{}/metadata.tcb", params.module_path);
    if (!read_from_binary_file(ti_aot_data_, bin_path)) {
      mark_corrupted();
      return;
    }

    if (!params.enable_lazy_loading) {
      for (int i = 0; i < ti_aot_data_.kernels.size(); ++i) {
        auto k = ti_aot_data_.kernels[i];
        std::vector<std::vector<uint32_t>> spirv_sources_codes;
        for (int j = 0; j < k.tasks_attribs.size(); ++j) {
          std::vector<uint32_t> res =
              read_spv_file(params.module_path, k.tasks_attribs[j]);
          if (res.size() == 0) {
            mark_corrupted();
            return;
          }
          spirv_sources_codes.push_back(res);
        }
        ti_aot_data_.spirv_codes.push_back(spirv_sources_codes);
      }
    }

    const std::string graph_path =
        fmt::format("{}/graphs.tcb", params.module_path);
    if (!read_from_binary_file(graphs_, graph_path)) {
      mark_corrupted();
      return;
    }
  }

  std::unique_ptr<aot::CompiledGraph> get_graph(
      const std::string &name) override {
    auto it = graphs_.find(name);
    if (it == graphs_.end()) {
      TI_DEBUG("Cannot find graph {}", name);
      return nullptr;
    }

    std::vector<aot::CompiledDispatch> dispatches;
    for (auto &dispatch : it->second.dispatches) {
      dispatches.push_back({dispatch.kernel_name, dispatch.symbolic_args,
                            get_kernel(dispatch.kernel_name)});
    }
    aot::CompiledGraph graph{dispatches};
    return std::make_unique<aot::CompiledGraph>(std::move(graph));
  }

  size_t get_root_size() const override {
    return ti_aot_data_.root_buffer_size;
  }

  // Module metadata
  Arch arch() const override {
    return device_api_backend_;
  }
  uint64_t version() const override {
    TI_NOT_IMPLEMENTED;
  }

 private:
  bool get_field_data_by_name(const std::string &name,
                              aot::CompiledFieldData &field) {
    for (int i = 0; i < ti_aot_data_.fields.size(); ++i) {
      if (ti_aot_data_.fields[i].field_name.rfind(name, 0) == 0) {
        field = ti_aot_data_.fields[i];
        return true;
      }
    }
    return false;
  }

  bool get_kernel_params_by_name(const std::string &name,
                                 GfxRuntime::RegisterParams &kernel) {
    for (int i = 0; i < ti_aot_data_.kernels.size(); ++i) {
      // Offloaded task names encode more than the name of the function, but for
      // AOT, only use the name of the function which should be the first part
      // of the struct
      if (ti_aot_data_.kernels[i].name.rfind(name, 0) == 0) {
        if (!try_load_spv_kernel(i)) {
          return false;
        }
        kernel.kernel_attribs = ti_aot_data_.kernels[i];
        kernel.task_spirv_source_codes = ti_aot_data_.spirv_codes[i];
        // We don't have to store the number of SNodeTree in |ti_aot_data_| yet,
        // because right now we only support a single SNodeTree during AOT.
        // TODO: Support multiple SNodeTrees in AOT.
        kernel.num_snode_trees = 1;
        return true;
      }
    }
    return false;
  }

  std::unique_ptr<aot::Kernel> make_new_kernel(
      const std::string &name) override {
    GfxRuntime::RegisterParams kparams;
    if (!get_kernel_params_by_name(name, kparams)) {
      TI_DEBUG("Failed to load kernel {}", name);
      return nullptr;
    }
    return std::make_unique<KernelImpl>(runtime_, std::move(kparams));
  }

  std::unique_ptr<aot::KernelTemplate> make_new_kernel_template(
      const std::string &name) override {
    TI_NOT_IMPLEMENTED;
    return nullptr;
  }

  std::unique_ptr<aot::Field> make_new_field(const std::string &name) override {
    aot::CompiledFieldData field;
    if (!get_field_data_by_name(name, field)) {
      TI_DEBUG("Failed to load field {}", name);
      return nullptr;
    }
    return std::make_unique<FieldImpl>(runtime_, field);
  }

  bool try_load_spv_kernel(std::size_t index) {
    if (index >= ti_aot_data_.spirv_codes.size() ||
        ti_aot_data_.spirv_codes[index].empty()) {
      ti_aot_data_.spirv_codes.resize(index + 1);
      auto &codes = ti_aot_data_.spirv_codes[index];
      const auto &k = ti_aot_data_.kernels[index];
      for (const auto &t : k.tasks_attribs) {
        auto spv = read_spv_file(module_path_, t);
        if (spv.empty()) {
          mark_corrupted();
          return false;
        }
        codes.push_back(spv);
      }
    }
    return true;
  }

  static std::vector<uint32_t> read_spv_file(const std::string &output_dir,
                                             const TaskAttributes &k) {
    const std::string spv_path = fmt::format("{}/{}.spv", output_dir, k.name);
    std::vector<uint32_t> source_code;
    std::ifstream fs(spv_path, std::ios_base::binary | std::ios::ate);
    if (fs.is_open()) {
      size_t size = fs.tellg();
      fs.seekg(0, std::ios::beg);
      source_code.resize(size / sizeof(uint32_t));
      fs.read((char *)source_code.data(), size);
      fs.close();
    }
    return source_code;
  }

  std::string module_path_;
  TaichiAotData ti_aot_data_;
  GfxRuntime *runtime_{nullptr};
  Arch device_api_backend_;
};

}  // namespace

std::unique_ptr<aot::Module> make_aot_module(std::any mod_params,
                                             Arch device_api_backend) {
  AotModuleParams params = std::any_cast<AotModuleParams &>(mod_params);
  return std::make_unique<AotModuleImpl>(params, device_api_backend);
}

}  // namespace gfx
}  // namespace taichi::lang


text:
/**
 * Mnemonist Stack Unit Tests
 * ===========================
 */
var assert = require('assert'),
    Stack = require('../stack.js');

describe('Stack', function() {

  it('should be possible to push values.', function() {
    var stack = new Stack();

    stack.push('test');

    assert.strictEqual(stack.size, 1);
  });

  it('should be possible to clear the stack.', function() {
    var stack = new Stack();

    stack.push(2);
    stack.push(3);

    stack.clear();

    assert.strictEqual(stack.size, 0);
    assert.deepStrictEqual(stack.toArray(), []);
  });

  it('should be possible to peek.', function() {
    var stack = new Stack();

    assert.strictEqual(stack.peek(), undefined);

    stack.push(1);

    assert.strictEqual(stack.peek(), 1);

    stack.push(2);

    assert.strictEqual(stack.peek(), 2);
  });

  it('should be possible to pop the stack.', function() {
    var stack = new Stack();

    stack.push(1);
    stack.push(2);
    stack.push(3);

    assert.strictEqual(stack.pop(), 3);
    assert.strictEqual(stack.pop(), 2);
    assert.strictEqual(stack.pop(), 1);
    assert.strictEqual(stack.pop(), undefined);
  });

  it('should be possible to iterate over the stack.', function() {
    var stack = new Stack();

    stack.push(1);
    stack.push(2);
    stack.push(3);

    var times = 0;

    stack.forEach(function(item, i, l) {
      assert.strictEqual(item, 3 - i);
      assert.strictEqual(stack, l);
      times++;
    });

    assert.strictEqual(times, 3);
  });

  it('should be possible to convert the stack to an array.', function() {
    var stack = new Stack();

    stack.push(1);
    stack.push(2);
    stack.push(3);

    assert.deepStrictEqual(stack.toArray(), [3, 2, 1]);
  });

  it('should be possible to create a stack from an arbitrary iterable.', function() {
    var stack = Stack.from([1, 2, 3]);

    assert.deepStrictEqual(stack.toArray(), [3, 2, 1]);
  });

  it('should be possible to create a stack from arbitrary arguments.', function() {
    var stack = Stack.of(1, 2, 3);

    assert.deepStrictEqual(stack.toArray(), [3, 2, 1]);
  });

  it('should be possible to create a values iterator.', function() {
    var stack = Stack.from([1, 2, 3]);

    var iterator = stack.values();

    assert.strictEqual(iterator.next().value, 3);
    assert.strictEqual(iterator.next().value, 2);
    assert.strictEqual(iterator.next().value, 1);
    assert.strictEqual(iterator.next().done, true);
  });

  it('should be possible to create an entries iterator.', function() {
    var stack = Stack.from([1, 2, 3]);

    var iterator = stack.entries();

    assert.deepStrictEqual(iterator.next().value, [0, 3]);
    assert.deepStrictEqual(iterator.next().value, [1, 2]);
    assert.deepStrictEqual(iterator.next().value, [2, 1]);
    assert.strictEqual(iterator.next().done, true);
  });

  it('should be possible to iterate over the stack.', function() {
    var stack = Stack.from([1, 2, 3]),
        i = 4;

    for (var item of stack)
      assert.strictEqual(item, --i);
  });
});


text:
Blockly.PythonOcto['machine_vapourtec_R2R4'] = function(block) {
  var name = Blockly.PythonOcto.getVariableName_(block.variable_);
  var alias = (block.variable_ ? block.variable_.getVarName() : "_");
  var conn = Blockly.PythonOcto.valueToCode(block, 'CONNECTION',
      Blockly.PythonOcto.ORDER_NONE) || 'dummy()';
  return name + ' = vapourtec.R2R4(' + conn + ', alias = ' + Blockly.PythonOcto.quote_(alias) + ')';
};


text:
from ez_setup import use_setuptools
use_setuptools()

from setuptools import setup, find_packages

setup(
    name='activitysim',
    version='0.1dev',
    description='Travel modeling',
    author='Synthicity',
    author_email='pwaddell@synthicity.com',
    license='AGPL',
    url='https://github.com/synthicity/activitysim',
    classifiers=[
        'Development Status :: 4 - Beta',
        'Programming Language :: Python :: 2.7',
        'License :: OSI Approved :: GNU Affero General Public License v3'
    ],
    packages=find_packages(exclude=['*.tests']),
    install_requires=[
        'numpy>=1.8.0',
        'pandas>=0.13.1',
    ]
)


text:
ACCEPTED

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Fl. S. Austral. 248. 1924

#### Original name
Blennodia canescens var. pterosperma J.M. Black

### Remarks
null


text:
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns		= "http://www.w3.org/ns/widgets"
	id		= "com.alunny.confetti"
	version 	= "1.0.0">

	<name>Confetti Sample App</name>

	<description>
		This is a sample config.xml for integration testing with Confetti
	</description>

	<author href="http://alunny.github.com"
		email="hardeep.shoker@nitobi.com">
		Hardeep Shoker
	</author>

	<icon src="smallicon.png" height="100" width="100" />
	<icon src="bigicon.png"   height="200" width="200" />

	<feature name="http://api.phonegap.com/1.0/geolocation"/>
	<feature name="http://api.phonegap.com/1.0/network"/>
</widget>


text:
const Association = require("./Association");

let cached = {
  lastRefreshed: null,
  data: null
};

class BelongsTo extends Association {
  get() {
    if (!this.isValid()) throw new Error("Relation misconfigured");

    let query = this.getQueryBuilder().limit(1).toSql();

    return this.conn.query(query).then(collection => {
      if (collection.length < 1) return null;

      return collection[0];
    });
  }
}

module.exports = BelongsTo;


text:
'use strict';

var astUtil = require('../util/ast');

function newLayer() {
    return {
        describeTitles: [],
        testTitles: []
    };
}

function handlTestCaseTitles(context, titles, node, title) {
    if (astUtil.isTestCase(node)) {
        if (titles.indexOf(title) !== -1) {
            context.report({
                node: node,
                message: 'Test title is used multiple times in the same test suite.'
            });
        }
        titles.push(title);
    }
}

function handlTestSuiteTitles(context, titles, node, title) {
    if (!astUtil.isDescribe(node)) {
        return;
    }
    if (titles.indexOf(title) !== -1) {
        context.report({
            node: node,
            message: 'Test suite title is used multiple times.'
        });
    }
    titles.push(title);
}

function isFirstArgLiteral(node) {
    return node.arguments && node.arguments[0] && node.arguments[0].type === 'Literal';
}

module.exports = function (context) {
    var titleLayers = [
        newLayer()
    ];
    return {
        CallExpression: function (node) {
            var currentLayer = titleLayers[titleLayers.length - 1],
                title;
            if (astUtil.isDescribe(node)) {
                titleLayers.push(newLayer());
            }
            if (!isFirstArgLiteral(node)) {
                return;
            }

            title = node.arguments[0].value;
            handlTestCaseTitles(context, currentLayer.testTitles, node, title);
            handlTestSuiteTitles(context, currentLayer.describeTitles, node, title);
        },
        'CallExpression:exit': function (node) {
            if (astUtil.isDescribe(node)) {
                titleLayers.pop();
            }
        }
    };
};


text:
package write

import (
	"bufio"
	"bytes"
	"context"
	"fmt"
	"io"
	"time"

	platform "github.com/influxdata/influxdb/v2"
)

const (
	// DefaultMaxBytes is 500KB; this is typically 250 to 500 lines.
	DefaultMaxBytes = 500000
	// DefaultInterval will flush every 10 seconds.
	DefaultInterval = 10 * time.Second
)

// batcher is a write service that batches for another write service.
var _ platform.WriteService = (*Batcher)(nil)

// Batcher batches line protocol for sends to output.
type Batcher struct {
	MaxFlushBytes    int                   // MaxFlushBytes is the maximum number of bytes to buffer before flushing
	MaxFlushInterval time.Duration         // MaxFlushInterval is the maximum amount of time to wait before flushing
	Service          platform.WriteService // Service receives batches flushed from Batcher.
}

// Write reads r in batches and sends to the output.
func (b *Batcher) Write(ctx context.Context, org, bucket platform.ID, r io.Reader) error {
	ctx, cancel := context.WithCancel(ctx)
	defer cancel()

	if b.Service == nil {
		return fmt.Errorf("destination write service required")
	}

	lines := make(chan []byte)

	errC := make(chan error, 2)
	go b.write(ctx, org, bucket, lines, errC)
	go b.read(ctx, r, lines, errC)

	// we loop twice to check if both read and write have an error. if read exits
	// cleanly, then we still want to wait for write.
	for i := 0; i < 2; i++ {
		select {
		case <-ctx.Done():
			return ctx.Err()
		case err := <-errC:
			// onky if there is any error, exit immediately.
			if err != nil {
				return err
			}
		}
	}
	return nil
}

// read will close the line channel when there is no more data, or an error occurs.
// it is possible for an io.Reader to block forever; Write's context can be
// used to cancel, but, it's possible there will be dangling read go routines.
func (b *Batcher) read(ctx context.Context, r io.Reader, lines chan<- []byte, errC chan<- error) {
	defer close(lines)
	scanner := bufio.NewScanner(r)
	scanner.Split(ScanLines)
	for scanner.Scan() {
		// exit early if the context is done
		select {
		case lines <- []byte(scanner.Text()):
		case <-ctx.Done():
			errC <- ctx.Err()
			return
		}
	}
	errC <- scanner.Err()
}

// finishes when the lines channel is closed or context is done.
// if an error occurs while writing data to the write service, the error is send in the
// errC channel and the function returns.
func (b *Batcher) write(ctx context.Context, org, bucket platform.ID, lines <-chan []byte, errC chan<- error) {
	flushInterval := b.MaxFlushInterval
	if flushInterval == 0 {
		flushInterval = DefaultInterval
	}

	maxBytes := b.MaxFlushBytes
	if maxBytes == 0 {
		maxBytes = DefaultMaxBytes
	}

	timer := time.NewTimer(flushInterval)
	defer func() { _ = timer.Stop() }()

	buf := make([]byte, 0, maxBytes)
	r := bytes.NewReader(buf)

	var line []byte
	var more = true
	// if read closes the channel normally, exit the loop
	for more {
		select {
		case line, more = <-lines:
			if more {
				buf = append(buf, line...)
			}
			// write if we exceed the max lines OR read routine has finished
			if len(buf) >= maxBytes || (!more && len(buf) > 0) {
				r.Reset(buf)
				timer.Reset(flushInterval)
				if err := b.Service.Write(ctx, org, bucket, r); err != nil {
					errC <- err
					return
				}
				buf = buf[:0]
			}
		case <-timer.C:
			if len(buf) > 0 {
				r.Reset(buf)
				timer.Reset(flushInterval)
				if err := b.Service.Write(ctx, org, bucket, r); err != nil {
					errC <- err
					return
				}
				buf = buf[:0]
			}
		case <-ctx.Done():
			errC <- ctx.Err()
			return
		}
	}

	errC <- nil
}

// ScanLines is used in bufio.Scanner.Split to split lines of line protocol.
func ScanLines(data []byte, atEOF bool) (advance int, token []byte, err error) {
	if atEOF && len(data) == 0 {
		return 0, nil, nil
	}

	if i := bytes.IndexByte(data, '\n'); i >= 0 {
		// We have a full newline-terminated line.
		return i + 1, data[0 : i+1], nil

	}

	// If we're at EOF, we have a final, non-terminated line. Return it.
	if atEOF {
		return len(data), data, nil
	}

	// Request more data.
	return 0, nil, nil
}


text:
package org.postgresql.java.model.lexical;

public class SearchCondition {
}


text:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using Inbox2.Framework.Interfaces.Enumerations;
using Inbox2.Framework.Interfaces.Plugins;
using Inbox2.Platform.Channels;
using Inbox2.Plugins.StatusUpdates.Controls;

namespace Inbox2.Plugins.StatusUpdates.Helpers
{
	class ChannelSearchStreamToolbarPlugin : IToolbarPlugin
	{
		private readonly ChannelInstance channel;
        private ChannelSearchStreamToolbarElement element;

		public ChannelSearchStreamToolbarPlugin(ChannelInstance channel)
		{
			this.channel = channel;
		}

		public ToolbarAlignment ToolbarAlignment
		{
			get { return ToolbarAlignment.Left; }
		}

		public UIElement CreateToolbarElement()
		{
            if (element == null)
            {
                element = new ChannelSearchStreamToolbarElement(channel);
            }

            return element;
		}
	}
}


text:
import Component from '@ember/component';
import ValidationState from 'ghost-admin/mixins/validation-state';
import boundOneWay from 'ghost-admin/utils/bound-one-way';
import {computed} from '@ember/object';
import {readOnly} from '@ember/object/computed';
import {run} from '@ember/runloop';

export default Component.extend(ValidationState, {
    classNames: 'gh-blognav-item',
    classNameBindings: ['errorClass', 'navItem.isNew::gh-blognav-item--sortable'],

    new: false,

    // closure actions
    addItem() {},
    deleteItem() {},
    updateUrl() {},
    updateLabel() {},
    label: boundOneWay('navItem.label'),
    url: boundOneWay('navItem.url'),

    errors: readOnly('navItem.errors'),

    errorClass: computed('hasError', function () {
        return this.hasError ? 'gh-blognav-item--error' : '';
    }),

    actions: {
        addItem(item) {
            this.addItem(item);
        },

        deleteItem(item) {
            this.deleteItem(item);
        },

        updateUrl(value) {
            return this.updateUrl(value, this.navItem);
        },

        updateLabel(value) {
            this.set('label', value);
            return this.updateLabel(value, this.navItem);
        },

        clearLabelErrors() {
            this.get('navItem.errors').remove('label');
        },

        clearUrlErrors() {
            this.get('navItem.errors').remove('url');
        }
    },

    keyPress(event) {
        // enter key
        if (event.keyCode === 13 && this.get('navItem.isNew')) {
            event.preventDefault();
            run.scheduleOnce('actions', this, this.send, 'addItem', this.navItem);
        }
    }
});


text:
package jupiter;

import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;

class TestOne {

    @Test
    @Tag("fast")
    public void fast() {
        Reporter.report("one-fast");
    }

    @Test
    @Tag("slow")
    public void slow() {
        Reporter.report("one-slow");
    }

    @Test
    public void none() {
        Reporter.report("one-none");
    }

}


text:
var async = require('async');

var groups = {};
var packages = {};

// save us calls if at all possible
var checkGroups = [];

// hash of vocab name's to id's
var vocabMap = {};

var options, ckan;

exports.run = function(o, c) {
	options = o;
	ckan = c;
	if( !options ) options = {};

	if( options.key ) ckan.setKey(options.key);
	if( options.server ) ckan.setServer(options.server);

	ready();
}

function ready() {
	if( !options.groups ) {
		var index = 0;
		if( options.packageStartIndex ) index = options.packageStartIndex;
        createPackages(options.packages);
	} else {
		createGroups(options.groups, options.packages);
	}
}

function createGroups(groupList, packageList) {
	async.eachSeries(groupList,
		function(group, callback) {
			createGroup(group, callback);
		},
		function(err) {
			if( err ) error(err);
			createPackages(packageList);
		}
	);
}

function createPackages(packageList) {
	var index = 0;

	async.eachSeries(packageList,
		function(pkg, next) {
			var resources = pkg.resources;
			delete pkg.resources;

			createPackage(pkg, function(pkgId){
				if( resources && resources.length > 0 ) {
					// now create the resources
					// this is done one at a time in case of files

					createResources(pkg.name, pkgId, resources, function(){
						if(options.debug) console.log("CKAN IMPORT: finished package index: "+index+" of "+packageList.length+"\n");
						index++;
						next();
					});
				} else {
					if(options.debug) console.log("CKAN IMPORT: finished package index: "+index+" of "+packageList.length+"\n");
					index++;
					next();
				}
			});
		},
		function(err) {
			if( err ) {
				error(err);
			} else {
				if( options.debug ) console.log("CKAN IMPORT: Done.");
				if( options.callback ) options.callback();
			}
		}
	);
}

function createResources(pkgName, pkgId, resourceList, callback) {
	async.eachSeries(resourceList,
		function(resource, callback) {
			resource.package_id = pkgId;
			createResource(pkgName, resource, callback);
		},
		function(err) {
			if( err ) error(err);
			callback();
		}
	);
}

function createGroup(group, callback) {
	if( !group.name ) error("Attempting to create a group w/o a name: "+JSON.stringify(group));

	if( checkGroups.indexOf(group.name) > -1 ) return callback();
	checkGroups.push(group.name);

	ckan.exec("group_show", {id:group.name}, function(err, resp) {
		if( !err && !resp.error ) return callback();

		create("group", group, function(resp){
			callback();
		});
	});
}

function createPackage(pkg, callback) {
	if( !pkg.name ) error("Attempting to create a package w/o a name: "+JSON.stringify(pkg));
	if( packages[pkg.name] ) return callback(packages[pkg.name].id);

	checkPackage(pkg, callback);
}

function checkPackage(pkg, callback) {
	ckan.exec("package_show", {id:pkg.name}, function(err, resp) {
		// already exists
		if( !err && !resp.error ) {
			if( options.debug ) console.log("CKAN IMPORT: "+pkg.name+" already created");
			packages[resp.result.name] = resp.result;

			if( options.update ) {

				pkg.resources = resp.result.resources;
				setVocabIds(0, pkg, function(){
					update("package", resp.result.id, pkg, function(resp){
						callback(resp.result.id);
					});
				});
			/*} else if ( options.replace ) {
				replace("package", resp.result.id, pkg, function(resp){
					packages[resp.result.name] = resp.result;
					callback(resp.result.id);
				});*/
			} else {
				callback(resp.result.id);
			}
			return;
		}

		setVocabIds(0, pkg, function(){
			create("package", pkg, function(resp){
				packages[resp.result.name] = resp.result;
				callback(resp.result.id);
			});
		});

	});
}

// we are going to assume people pass names in the vocabulary_id column
// to which point we need to look up the id from the name so package_create
// does the correct association
function setVocabIds(index, pkg, callback) {
	if(!pkg.tags) return callback();

	if( index == pkg.tags.length ) {
		callback();
	} else {
		getVocabId(pkg.tags[index].vocabulary_id, function(id) {
			pkg.tags[index].vocabulary_id = id;
			index++;
			setVocabIds(index, pkg, callback);
		});
	}
}

// if the id doesn't exist, create it
function getVocabId(name, callback) {
	if( vocabMap[name] ) return callback(vocabMap[name]);

	ckan.exec("vocabulary_show", {id: name}, function(err, resp) {
		if( err && JSON.parse(err.body).error.__type == 'Not Found Error' ) {
			create("vocabulary", {name: name, tags: []}, function(err, resp){
					if( err ) error("Unable to create vocabulary: "+name);
					vocabMap[name] = resp.result.id;
					callback(resp.result.id);
			});
			return;
		} else if( err ) {
			error("Unable to access vocabulary 'id:"+name+"'");
		}

		if( !resp.success ) {
			if( name.match(/.*-.*-.*-.*-.*/) ) {
				if( err ) error("No vocabulary found for passed id");

				create("vocabulary", {name: name, tags: []}, function(err, resp){
					if( err ) error("Unable to create vocabulary: "+name);
					vocabMap[name] = resp.result.id;
					callback(resp.result.id);
				});
			}
		} else {
			vocabMap[name] = resp.result.id;
			callback(resp.result.id);
		}
	});
}

function createResource(pkgName, resource, callback) {
	if( !resource.name &&  !resource.url ) error("Attempting to create a resource w/o a name or url: "+JSON.stringify(resource));

	// first check this resource has not already been created
	if( packages[pkgName].resources ) {
		for( var i = 0; i < packages[pkgName].resources.length; i++ ) {

			if( (resource.name && packages[pkgName].resources[i].name == resource.name ) ||
				(resource.url && packages[pkgName].resources[i].url == resource.url) ) {

				if( options.update && !packages[pkgName].resources[i].file ) {
					update("resource", packages[pkgName].resources[i].id, resource, function(resp){
						callback();
					});
				} else if ( options.update && packages[pkgName].resources[i].file &&
							(options.updateFile === true || options.updateFile == null) ) {

					update("resource", packages[pkgName].resources[i].id, resource, function(resp){
						callback();
					});
				/*} else if ( options.replace ) {
					replace("resource", packages[pkgName].resources[i].id, resource, function(resp){
						callback();
					});*/
				} else {
					callback();
				}
				return;
			}

		}
	}

	create("resource", resource, function(resp){
		callback();
	});
}

function update(type, id, obj, callback) {
	if( options.debug ) console.log("CKAN IMPORT: Updating "+type+" '"+(obj.name ? obj.name : obj.url)+"'");
	obj.id = id;
	var t = new Date().getTime();

	ckan.exec(type+"_update", obj, function(err, resp) {
		if( options.debug ) console.log("  --"+(new Date().getTime()-t)+"ms");
		if( err ) return error(err);
		if( resp.error ) return error(resp.error);
		callback(resp);
	});
}

// does a full delete an insert of the object
// Currently there is no package purge... can this even be done?
/*function replace(type, id, obj, callback) {
	if( options.debug ) console.log("CKAN IMPORT: Replacing "+type+" '"+obj.name+"'");

	ckan.exec(type+"_delete",{id:id}, function(err, resp){
		if( err ) return error(err);
		if( resp.error ) return error(resp.error);

		create(type, obj, callback);
	});
}*/

function create(type, obj, callback) {
	if( options.debug ) console.log("CKAN IMPORT: Creating "+type+" '"+(obj.name ? obj.name : obj.url)+"'");
	var t = new Date().getTime();

	ckan.exec(type+"_create", obj, function(err, resp) {
		if( options.debug ) console.log("  --"+(new Date().getTime()-t)+"ms");
		if( err ) return error(err);
		if( resp.error ) return error(resp.error);

		callback(resp);
	});
}

function error(msg) {
	console.log(msg);
	process.exit(1);
}


text:
'use strict';

const bad = require('../validation/badRequest');
const vaultRequest = require('../util').vaultRequest;

/**
 * Get token timing information
 * @param {string} accessor
 * @param {Object} vault
 * @return {Promise}
 */
function getTokenTiming(accessor, vault) {
  Log.log('DEBUG', 'Retrieving token timing information');
  let creation_time = null,
    explicit_max_ttl = null;

  return vaultRequest(vault, `/v1/auth/token/lookup-accessor/${accessor}`, 'POST').then((resp) => {
    creation_time = resp.data.creation_time * 1000;
    explicit_max_ttl = resp.data.explicit_max_ttl * 1000;
  }).then(() => {
    if (explicit_max_ttl === 0) {
      // We have to query the /sys/mounts/auth/token/tune endpoint
      return vaultRequest(vault, '/v1/sys/mounts/auth/token/tune', 'GET').then((resp) => {
        explicit_max_ttl = resp.max_lease_ttl * 1000;
      });
    }
  }).then(() => { // eslint-disable-line arrow-body-style
    Log.log('DEBUG', 'Token timing information retrieved');

    return {
      creation_time: new Date(creation_time).toISOString(),
      expiration_time: new Date(creation_time + explicit_max_ttl).toISOString()
    };
  });
}

exports.create = function(req, res, next, vault) {
  Log.log('DEBUG', 'Generating Vault token');

  const tokenProps = Config.get('vault:tokenParams');

  // ttl and explicit_max_ttl have special handling
  // rules because they need a duration suffix
  let ttl = Config.get('vault:tokenParams:ttl'),
    explicit_max_ttl = Config.get('vault:tokenParams:explicit_max_ttl');

  if (typeof ttl !== 'undefined') {
    ttl = `${ttl}s`;
  }

  if (typeof explicit_max_ttl !== 'undefined') {
    explicit_max_ttl = `${explicit_max_ttl}s`;
  }

  const tokenParams = Object.assign(tokenProps, {ttl, explicit_max_ttl});

  // If any of the tunables don't exist in Config
  // and return `undefined`, delete them
  Object.keys(tokenParams).forEach((k) => {
    if (typeof tokenParams[k] === 'undefined') {
      delete tokenParams[k];
    }
  });

  return vaultRequest(vault, '/v1/auth/token/create', 'POST', tokenParams, {imageId: req.document.imageId}).then((status) => {
    if (!status.hasOwnProperty('auth')) {
      throw Error('Token Error');
    }
    req.auth = status.auth;

    return getTokenTiming(status.auth.accessor, vault);
  }).then((data) => {
    if (data.expiration_time <= data.creation_time) {
      throw new Error('Token has already expired');
    }

    req.auth = Object.assign(req.auth, data);
    Log.log('DEBUG', 'Vault token generated');

    return next();
  }).catch((err) => bad.request(res, [err.message]));
};


text:
<script>
  if (window.location.hash) {
    window.location.href = "https://michaelsboost.github.io/kodeWeave/editor" + window.location.hash
  } else {
    window.location.href = "https://michaelsboost.github.io/kodeWeave/editor"
  }
</script>


text:
<?xml version="1.0"?>
<mapping>
	<dbms product="VERTICA" id="vertica_id" label="Mapping Vertica" default="true">
		<dbTypes>
			<dbType type="BOOLEAN" ignoreLen="true" ignorePre="true"/>
			<dbType type="CHAR" defaultLength="200" ignorePre="true"/>
			<dbType type="CHARACTER" defaultLength="200" ignorePre="true"/>
			<dbType type="VARCHAR" defaultLength="300" ignorePre="true"/>
			<dbType type="CHARACTER VARYING" defaultLength="200" ignorePre="true"/>
			<dbType type="INTEGER" ignoreLen="true" ignorePre="true"/>
			<dbType type="BIGINT" ignoreLen="true" ignorePre="true"/>
			<dbType type="FLOAT" ignoreLen="true" ignorePre="true"/>
			<dbType type="DOUBLE PRECISION" ignoreLen="true" ignorePre="true"/>
			<dbType type="DATE" ignoreLen="true" ignorePre="true"/>
			<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
			<dbType type="INTERVAL DAY TO SECOND" ignoreLen="true" ignorePre="true"/>
			<dbType type="INTERVAL YEAR TO MONTH" ignoreLen="true" ignorePre="true"/>
			<dbType type="BINARY" ignorePre="true"/>
			<dbType type="VARBINARY" ignorePre="true" />
			<dbType type="NUMERIC" defaultLength="10" defaultPrecision="5"/>
			<dbType type="INT8" ignoreLen="true" ignorePre="true"/>
			<dbType type="FLOAT8" ignoreLen="true" ignorePre="true"/>
			<dbType type="UUID" ignoreLen="true" ignorePre="true"/>
		</dbTypes>

		<language name="java">
			<talendToDbTypes><!-- Adviced mappings  -->
				<talendType type="id_List">
				</talendType>
				<talendType type="id_BigDecimal">
					<dbType type="DOUBLE PRECISION" default="true"/>
					<dbType type="NUMERIC" />
				</talendType>
				<talendType type="id_Boolean">
					<dbType type="BOOLEAN" default="true"/>
				</talendType>
				<talendType type="id_Byte">
					<dbType type="BIGINT" default="true" />
					<dbType type="INTEGER"/>
				</talendType>
				<talendType type="id_byte[]">
					<dbType type="BINARY" default="true"/>
					<dbType type="VARBINARY"/>
				</talendType>
				<talendType type="id_Character">
					<dbType type="CHAR" default="true"/>
					<dbType type="CHARACTER"/>
				</talendType>
				<talendType type="id_Date">
					<dbType type="DATE" default="true" />
					<dbType type="TIMESTAMP"/>
					<dbType type="INTERVAL DAY TO SECOND"/>
					<dbType type="INTERVAL YEAR TO MONTH"/>
				</talendType>
				<talendType type="id_Double">
					<dbType type="DOUBLE PRECISION" default="true" />
					<dbType type="NUMERIC" />
				</talendType>
				<talendType type="id_Float">
					<dbType type="FLOAT" default="true" />
					<dbType type="FLOAT8"/>
				</talendType>
				<talendType type="id_Integer">
					<dbType type="BIGINT" default="true" />
					<dbType type="INTEGER"/>
					<dbType type="INT8" />
				</talendType>
				<talendType type="id_Long">
					<dbType type="BIGINT" default="true" />
				</talendType>
				<talendType type="id_Object">
					<dbType type="UUID" default="true" />
				</talendType>
				<talendType type="id_Short">
					<dbType type="BIGINT" default="true" />
					<dbType type="INTEGER" />
				</talendType>
				<talendType type="id_String">
					<dbType type="VARCHAR" default="true" />
					<dbType type="CHARACTER VARYING"/>
					<dbType type="UUID" />
					<dbType type="CHAR" />
				</talendType>
			</talendToDbTypes>
			<dbToTalendTypes><!-- Adviced mappings  -->
				<dbType type="BOOLEAN">
					<talendType type="id_Boolean" default="true" />
				</dbType>
				<dbType type="CHAR">
					<talendType type="id_String" default="true" />
				</dbType>
				<dbType type="CHARACTER">
					<talendType type="id_String" default="true" />
				</dbType>
				<dbType type="VARCHAR">
					<talendType type="id_String" default="true" />
				</dbType>
				<dbType type="CHARACTER VARYING">
					<talendType type="id_String" default="true" />
				</dbType>
				<dbType type="INTEGER">
					<talendType type="id_Long" default="true" />
					<talendType type="id_Integer" />
					<talendType type="id_Short" />
					<talendType type="id_Byte" />
				</dbType>
				<dbType type="INT8">
					<talendType type="id_Long" default="true" />
					<talendType type="id_Integer" />
					<talendType type="id_Short" />
					<talendType type="id_Byte" />
				</dbType>
				<dbType type="BIGINT">
					<talendType type="id_Long" default="true" />
				</dbType>
				<dbType type="FLOAT">
					<talendType type="id_Float" default="true" />
				</dbType>
				<dbType type="FLOAT8">
					<talendType type="id_Float" default="true" />
				</dbType>
				<dbType type="DOUBLE PRECISION">
					<talendType type="id_Double" default="true" />
					<talendType type="id_BigDecimal" />
				</dbType>
				<dbType type="DATE">
					<talendType type="id_Date" default="true" />
				</dbType>
				<dbType type="TIMESTAMP">
					<talendType type="id_Date" default="true" />
				</dbType>
				<dbType type="INTERVAL DAY TO SECOND">
					<talendType type="id_Date" default="true" />
				</dbType>
				<dbType type="INTERVAL YEAR TO MONTH">
					<talendType type="id_Date" default="true" />
				</dbType>
				<dbType type="BINARY">
					<talendType type="id_byte[]" default="true" />
				</dbType>
				<dbType type="VARBINARY">
					<talendType type="id_byte[]" default="true" />
				</dbType>
				<dbType type="NUMERIC">
					<talendType type="id_Double"/>
					<talendType type="id_BigDecimal" default="true"/>
				</dbType>
				<dbType type="UUID">
					<talendType type="id_Object" default="true"/>
					<talendType type="id_String"/>
				</dbType>
			</dbToTalendTypes>
		</language>
	</dbms>

</mapping>


text:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.iot.nero.facade_sso.dao.DeveloperDao">

    <select id="getDeveloperByEmail" resultType="com.iot.nero.parent_sso.entity.Developer">
          select D.id as Id,
          D.d_name as Name,
          D.d_company as Company,
          D.d_email as Email,
          D.d_phone as Phone,
          D.d_pwd as Pwd,
          D.d_token as Token,
          D.d_createtime as CreateTime
          from developers D where D.d_email = '${email}';
    </select>

    <select id="getDeveloperById" resultType="com.iot.nero.parent_sso.entity.Developer">
        select D.id as Id,
        D.d_name as Name,
        D.d_company as Company,
        D.d_email as Email,
        D.d_phone as Phone,
        D.d_pwd as Pwd,
        D.d_token as Token,
        D.d_createtime as CreateTime
        from developers D where D.id = '${uid}';
    </select>

    <select id="getDeveloperInfoByEmail" resultType="com.iot.nero.parent_sso.dto.DeveloperInfo">
        select D.id as Id,
        D.d_name as Name,
        D.d_company as Company,
        D.d_email as Email,
        D.d_phone as Phone,
        D.d_token as Token,
        D.d_createtime as CreateTime
        from developers D where D.d_email = '${email}';
    </select>

    <select id="getDeveloperByToken" resultType="com.iot.nero.parent_sso.entity.Developer" parameterType="java.lang.String">
        select D.id as Id,
        D.d_name as Name,
        D.d_company as Company,
        D.d_email as Email,
        D.d_phone as Phone,
        D.d_pwd as Pwd,
        D.d_token as Token,
        D.d_createtime as CreateTime
        from developers D where D.d_token = '${tt}';
    </select>

    <update id="updateDeveloperToken">
        update developers D set D.d_token = '${ta}' where D.d_email = '${email}';
    </update>

    <insert id="addDeveloperBase">
        insert into developers (d_name,d_email,d_pwd,d_token)
        VALUES
        ('${name}','${email}','${pwd}','${token}') ;
    </insert>

    <update id="updateDeveloperBase">
      update developers set d_name = '${name}',d_pwd = '${pwd}',d_token = '${token}'
      where d_email='${email}';
    </update>

    <select id="getDeveloperAdds" resultType="com.iot.nero.parent_sso.entity.DeveloperAdds">
        SELECT
          id as  Id,
          d_id as DId,
          d_profession as DProfession,
          d_bussiness as DBussiness,
          d_website as DWebsite,
          d_country as DCountry,
          d_address as DAddress,
          d_street as DStreet,
          d_tel as DTel,
          d_fax as DFax,
          d_adds_createtime as DAddsCreateTime
        from developer_adds where d_id = ${did};
    </select>

    <insert id="insertDeveloperAdds">
        insert into developer_adds
        (d_id,d_profession,d_bussiness ,d_website ,d_country ,d_address ,d_street,d_tel,d_fax)
        VALUES
        ('${did}','${dprofessionession}','${dbussiness}','${dwebsite}','${dcountry}','${daddress}','${dstreet}','${dtel}','${dfax}');
    </insert>

    <update id="updateDeveloperAdds">
        update developer_adds SET
          d_profession='${dprofessionession}',
          d_bussiness ='${dbussiness}',
          d_website ='${dwebsite}',
          d_country ='${dcountry}',
          d_address ='${daddress}',
          d_street='${dstreet}',
          d_tel='${dtel}',
          d_fax =  '${dfax}'
        from developer_adds where d_id = ${did};
    </update>

    <update id="changeName">
        UPDATE  developers set
        d_name = '${name}',
        d_company = '${company}'
        where d_id = ${did};
    </update>

    <update id="changePwd">
        update developers set d_pwd= '${pwd}'
        where d_id = ${did};
    </update>

</mapper>


text:
<?php

/**
 * PHPExcel_Shared_Escher_DggContainer_BstoreContainer
 *
 * @category   PHPExcel
 * @package    PHPExcel_Writer_Excel5
 * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
 */
class PHPExcel_Writer_Excel5_Escher
{
	/**
	 * The object we are writing
	 */
	private $_object;

	/**
	 * The written binary data
	 */
	private $_data;

	/**
	 * Shape offsets. Positions in binary stream where a new shape record begins
	 *
	 * @var array
	 */
	private $_spOffsets;

	/**
	 * Shape types.
	 *
	 * @var array
	 */
	private $_spTypes;

	/**
	 * Constructor
	 *
	 * @param mixed
	 */
	public function __construct($object)
	{
		$this->_object = $object;
	}

	/**
	 * Process the object to be written
	 */
	public function close()
	{
		// initialize
		$this->_data = '';

		switch (get_class($this->_object)) {

		case 'PHPExcel_Shared_Escher':
			if ($dggContainer = $this->_object->getDggContainer()) {
				$writer = new PHPExcel_Writer_Excel5_Escher($dggContainer);
				$this->_data = $writer->close();
			} else if ($dgContainer = $this->_object->getDgContainer()) {
				$writer = new PHPExcel_Writer_Excel5_Escher($dgContainer);
				$this->_data = $writer->close();
				$this->_spOffsets = $writer->getSpOffsets();
				$this->_spTypes = $writer->getSpTypes();
			}
			break;

		case 'PHPExcel_Shared_Escher_DggContainer':
			// this is a container record

			// initialize
			$innerData = '';

			// write the dgg
			$recVer			= 0x0;
			$recInstance	= 0x0000;
			$recType		= 0xF006;

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			// dgg data
			$dggData =
				pack('VVVV'
					, $this->_object->getSpIdMax() // maximum shape identifier increased by one
					, $this->_object->getCDgSaved() + 1 // number of file identifier clusters increased by one
					, $this->_object->getCSpSaved()
					, $this->_object->getCDgSaved() // count total number of drawings saved
				);

			// add file identifier clusters (one per drawing)
			$IDCLs = $this->_object->getIDCLs();

			foreach ($IDCLs as $dgId => $maxReducedSpId) {
				$dggData .= pack('VV', $dgId, $maxReducedSpId + 1);
			}

			$header = pack('vvV', $recVerInstance, $recType, strlen($dggData));
			$innerData .= $header . $dggData;

			// write the bstoreContainer
			if ($bstoreContainer = $this->_object->getBstoreContainer()) {
				$writer = new PHPExcel_Writer_Excel5_Escher($bstoreContainer);
				$innerData .= $writer->close();
			}

			// write the record
			$recVer			= 0xF;
			$recInstance	= 0x0000;
			$recType		= 0xF000;
			$length			= strlen($innerData);

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header . $innerData;
			break;

		case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer':
			// this is a container record

			// initialize
			$innerData = '';

			// treat the inner data
			if ($BSECollection = $this->_object->getBSECollection()) {
				foreach ($BSECollection as $BSE) {
					$writer = new PHPExcel_Writer_Excel5_Escher($BSE);
					$innerData .= $writer->close();
				}
			}

			// write the record
			$recVer			= 0xF;
			$recInstance	= count($this->_object->getBSECollection());
			$recType		= 0xF001;
			$length			= strlen($innerData);

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header . $innerData;
			break;

		case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE':
			// this is a semi-container record

			// initialize
			$innerData = '';

			// here we treat the inner data
			if ($blip = $this->_object->getBlip()) {
				$writer = new PHPExcel_Writer_Excel5_Escher($blip);
				$innerData .= $writer->close();
			}

			// initialize
			$data = '';

			$btWin32 = $this->_object->getBlipType();
			$btMacOS = $this->_object->getBlipType();
			$data .= pack('CC', $btWin32, $btMacOS);

			$rgbUid = pack('VVVV', 0,0,0,0); // todo
			$data .= $rgbUid;

			$tag = 0;
			$size = strlen($innerData);
			$cRef = 1;
			$foDelay = 0; //todo
			$unused1 = 0x0;
			$cbName = 0x0;
			$unused2 = 0x0;
			$unused3 = 0x0;
			$data .= pack('vVVVCCCC', $tag, $size, $cRef, $foDelay, $unused1, $cbName, $unused2, $unused3);

			$data .= $innerData;

			// write the record
			$recVer			= 0x2;
			$recInstance	= $this->_object->getBlipType();
			$recType		= 0xF007;
			$length			= strlen($data);

			$recVerInstance  = $recVer;
			$recVerInstance |=	$recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header;

			$this->_data .= $data;
			break;

		case 'PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE_Blip':
			// this is an atom record

			// write the record
			switch ($this->_object->getParent()->getBlipType()) {

			case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_JPEG:
				// initialize
				$innerData = '';

				$rgbUid1 = pack('VVVV', 0,0,0,0); // todo
				$innerData .= $rgbUid1;

				$tag = 0xFF; // todo
				$innerData .= pack('C', $tag);

				$innerData .= $this->_object->getData();

				$recVer			= 0x0;
				$recInstance	= 0x46A;
				$recType		= 0xF01D;
				$length			= strlen($innerData);

				$recVerInstance  = $recVer;
				$recVerInstance |=	$recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);

				$this->_data = $header;

				$this->_data .= $innerData;
				break;

			case PHPExcel_Shared_Escher_DggContainer_BstoreContainer_BSE::BLIPTYPE_PNG:
				// initialize
				$innerData = '';

				$rgbUid1 = pack('VVVV', 0,0,0,0); // todo
				$innerData .= $rgbUid1;

				$tag = 0xFF; // todo
				$innerData .= pack('C', $tag);

				$innerData .= $this->_object->getData();

				$recVer			= 0x0;
				$recInstance	= 0x6E0;
				$recType		= 0xF01E;
				$length			= strlen($innerData);

				$recVerInstance  = $recVer;
				$recVerInstance |=	$recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);

				$this->_data = $header;

				$this->_data .= $innerData;
				break;

			}
			break;

		case 'PHPExcel_Shared_Escher_DgContainer':
			// this is a container record

			// initialize
			$innerData = '';

			// write the dg
			$recVer			= 0x0;
			$recInstance	= $this->_object->getDgId();
			$recType		= 0xF008;
			$length			= 8;

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			// number of shapes in this drawing (including group shape)
			$countShapes = count($this->_object->getSpgrContainer()->getChildren());
			$innerData .= $header . pack('VV', $countShapes, $this->_object->getLastSpId());
			//$innerData .= $header . pack('VV', 0, 0);

			// write the spgrContainer
			if ($spgrContainer = $this->_object->getSpgrContainer()) {
				$writer = new PHPExcel_Writer_Excel5_Escher($spgrContainer);
				$innerData .= $writer->close();

				// get the shape offsets relative to the spgrContainer record
				$spOffsets = $writer->getSpOffsets();
				$spTypes   = $writer->getSpTypes();

				// save the shape offsets relative to dgContainer
				foreach ($spOffsets as & $spOffset) {
					$spOffset += 24; // add length of dgContainer header data (8 bytes) plus dg data (16 bytes)
				}

				$this->_spOffsets = $spOffsets;
				$this->_spTypes = $spTypes;
			}

			// write the record
			$recVer			= 0xF;
			$recInstance	= 0x0000;
			$recType		= 0xF002;
			$length			= strlen($innerData);

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header . $innerData;
			break;

		case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer':
			// this is a container record

			// initialize
			$innerData = '';

			// initialize spape offsets
			$totalSize = 8;
			$spOffsets = array();
			$spTypes   = array();

			// treat the inner data
			foreach ($this->_object->getChildren() as $spContainer) {
				$writer = new PHPExcel_Writer_Excel5_Escher($spContainer);
				$spData = $writer->close();
				$innerData .= $spData;

				// save the shape offsets (where new shape records begin)
				$totalSize += strlen($spData);
				$spOffsets[] = $totalSize;

				$spTypes = array_merge($spTypes, $writer->getSpTypes());
			}

			// write the record
			$recVer			= 0xF;
			$recInstance	= 0x0000;
			$recType		= 0xF003;
			$length			= strlen($innerData);

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header . $innerData;
			$this->_spOffsets = $spOffsets;
			$this->_spTypes = $spTypes;
			break;

		case 'PHPExcel_Shared_Escher_DgContainer_SpgrContainer_SpContainer':
			// initialize
			$data = '';

			// build the data

			// write group shape record, if necessary?
			if ($this->_object->getSpgr()) {
				$recVer			= 0x1;
				$recInstance	= 0x0000;
				$recType		= 0xF009;
				$length			= 0x00000010;

				$recVerInstance  = $recVer;
				$recVerInstance |= $recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);

				$data .= $header . pack('VVVV', 0,0,0,0);
			}
			$this->_spTypes[] = ($this->_object->getSpType());

			// write the shape record
			$recVer			= 0x2;
			$recInstance	= $this->_object->getSpType(); // shape type
			$recType		= 0xF00A;
			$length			= 0x00000008;

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$data .= $header . pack('VV', $this->_object->getSpId(), $this->_object->getSpgr() ? 0x0005 : 0x0A00);

			// the options
			if ($this->_object->getOPTCollection()) {
				$optData = '';

				$recVer			= 0x3;
				$recInstance	= count($this->_object->getOPTCollection());
				$recType		= 0xF00B;
				foreach ($this->_object->getOPTCollection() as $property => $value) {
					$optData .= pack('vV', $property, $value);
				}
				$length			= strlen($optData);

				$recVerInstance  = $recVer;
				$recVerInstance |= $recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);
				$data .= $header . $optData;
			}

			// the client anchor
			if ($this->_object->getStartCoordinates()) {
				$clientAnchorData = '';

				$recVer			= 0x0;
				$recInstance	= 0x0;
				$recType		= 0xF010;

				// start coordinates
				list($column, $row) = PHPExcel_Cell::coordinateFromString($this->_object->getStartCoordinates());
				$c1 = PHPExcel_Cell::columnIndexFromString($column) - 1;
				$r1 = $row - 1;

				// start offsetX
				$startOffsetX = $this->_object->getStartOffsetX();

				// start offsetY
				$startOffsetY = $this->_object->getStartOffsetY();

				// end coordinates
				list($column, $row) = PHPExcel_Cell::coordinateFromString($this->_object->getEndCoordinates());
				$c2 = PHPExcel_Cell::columnIndexFromString($column) - 1;
				$r2 = $row - 1;

				// end offsetX
				$endOffsetX = $this->_object->getEndOffsetX();

				// end offsetY
				$endOffsetY = $this->_object->getEndOffsetY();

				$clientAnchorData = pack('vvvvvvvvv', $this->_object->getSpFlag(),
					$c1, $startOffsetX, $r1, $startOffsetY,
					$c2, $endOffsetX, $r2, $endOffsetY);

				$length			= strlen($clientAnchorData);

				$recVerInstance  = $recVer;
				$recVerInstance |= $recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);
				$data .= $header . $clientAnchorData;
			}

			// the client data, just empty for now
			if (!$this->_object->getSpgr()) {
				$clientDataData = '';

				$recVer			= 0x0;
				$recInstance	= 0x0;
				$recType		= 0xF011;

				$length = strlen($clientDataData);

				$recVerInstance  = $recVer;
				$recVerInstance |= $recInstance << 4;

				$header = pack('vvV', $recVerInstance, $recType, $length);
				$data .= $header . $clientDataData;
			}

			// write the record
			$recVer			= 0xF;
			$recInstance	= 0x0000;
			$recType		= 0xF004;
			$length			= strlen($data);

			$recVerInstance  = $recVer;
			$recVerInstance |= $recInstance << 4;

			$header = pack('vvV', $recVerInstance, $recType, $length);

			$this->_data = $header . $data;
			break;

		}

		return $this->_data;
	}

	/**
	 * Gets the shape offsets
	 *
	 * @return array
	 */
	public function getSpOffsets()
	{
		return $this->_spOffsets;
	}

	/**
	 * Gets the shape types
	 *
	 * @return array
	 */
	public function getSpTypes()
	{
		return $this->_spTypes;
	}

}


text:
<!DOCTYPE html>

      <meta charset='utf-8'>
      <meta name='viewport' content='width=device-width'>
      <title>Privacy Policy</title>

Privacy Policy

                    Danielius Ašmontas built the Foodless app as
                    a Freemium app. This SERVICE is provided by
                    Danielius Ašmontas at no cost and is intended for
                    use as is.

                    This page is used to inform visitors regarding
                    my policies with the collection, use, and
                    disclosure of Personal Information if anyone decided to use
                    my Service.

                    If you choose to use my Service, then you agree
                    to the collection and use of information in relation to this
                    policy. The Personal Information that I collect is
                    used for providing and improving the Service.
                    I will not use or share your
                    information with anyone except as described in this Privacy
                    Policy.

                    The terms used in this Privacy Policy have the same meanings
                    as in our Terms and Conditions, which is accessible at
                    Foodless unless otherwise defined in this Privacy
                    Policy.

Information Collection and Use

                    For a better experience, while using our Service,
                    I may require you to provide us with certain
                    personally identifiable information, including but not limited to dan.asmontas@gmail.com. The
                    information that I request will be
                    retained on your device and is not collected by me in any way.

                    The app does use third party services that may collect
                    information used to identify you.

                      Link to privacy policy of third party service providers
                      used by the app

Google Play Services

Firebase Analytics

Firebase Crashlytics

Log Data

                    I want to inform you that whenever
                    you use my Service, in a case of an error in the
                    app I collect data and information (through third
                    party products) on your phone called Log Data. This Log Data
                    may include information such as your device Internet
                    Protocol ("IP") address, device name, operating system
                    version, the configuration of the app when utilizing
                    my Service, the time and date of your use of the
                    Service, and other statistics.

Cookies

                    Cookies are files with a small amount of data that are
                    commonly used as anonymous unique identifiers. These are
                    sent to your browser from the websites that you visit and
                    are stored on your device's internal memory.

                    This Service does not use these "cookies" explicitly.
                    However, the app may use third party code and libraries that
                    use "cookies" to collect information and improve their
                    services. You have the option to either accept or refuse
                    these cookies and know when a cookie is being sent to your
                    device. If you choose to refuse our cookies, you may not be
                    able to use some portions of this Service.

Service Providers

                    I may employ third-party companies
                    and individuals due to the following reasons:

To facilitate our Service;

To provide the Service on our behalf;

To perform Service-related services; or

To assist us in analyzing how our Service is used.

                    I want to inform users of this
                    Service that these third parties have access to your
                    Personal Information. The reason is to perform the tasks
                    assigned to them on our behalf. However, they are obligated
                    not to disclose or use the information for any other
                    purpose.

Security

                    I value your trust in providing us
                    your Personal Information, thus we are striving to use
                    commercially acceptable means of protecting it. But remember
                    that no method of transmission over the internet, or method
                    of electronic storage is 100% secure and reliable, and
                    I cannot guarantee its absolute security.

Links to Other Sites

                    This Service may contain links to other sites. If you click
                    on a third-party link, you will be directed to that site.
                    Note that these external sites are not operated by
                    me. Therefore, I strongly advise you to
                    review the Privacy Policy of these websites.
                    I have no control over and assume no
                    responsibility for the content, privacy policies, or
                    practices of any third-party sites or services.

Children's Privacy

                    These Services do not address anyone under the age of 13.
                    I do not knowingly collect personally
                    identifiable information from children under 13. In the case
                    I discover that a child under 13 has provided
                    me with personal information,
                    I immediately delete this from our servers. If you
                    are a parent or guardian and you are aware that your child
                    has provided us with personal information, please contact
                    me so that I will be able to do
                    necessary actions.

Open Food Facts

The food products data and pictures that are scanned by Foodless app comes from the collaborative, free and open Open Food Facts database.
					This data is available under the Open Database License
					and the product photos are licensed under the
					Creative Commons Attribution Share-Alike.
					The brands quoted are the property of their respective owners.

The database is built in a collaborative way by people contributing, it is not possible to guarantee that it
					does not contain any error. We are not responsible if some products might have incorrect or outdated information.
					If you see any incorrect information, you can correct it yourself on Open Food Facts

Changes to This Privacy Policy

                    I may update our Privacy Policy from
                    time to time. Thus, you are advised to review this page
                    periodically for any changes. I will
                    notify you of any changes by posting the new Privacy Policy
                    on this page. These changes are effective immediately after
                    they are posted on this page.

Contact Us

                    If you have any questions or suggestions about
                    my Privacy Policy, do not hesitate to contact
                    me at dan.asmontas@gmail.com.

                    This privacy policy page was created at
                    privacypolicytemplate.net
                    and modified/generated by
                    App Privacy Policy Generator