See <https://ci-beam.apache.org/job/beam_LoadTests_Java_GBK_Dataflow_V2_Streaming_Java17/157/display/redirect?page=changes>
Changes: [Robert Bradshaw] [BEAM-14426] Allow skipping of any output when writing an empty [Robert Bradshaw] Add skip_if_empty attribute to base class to fix test. [Jan Lukavský] [BEAM-14492] add flinkConfDir to FlinkPipelineOptions [noreply] Bump cloud.google.com/go/storage from 1.22.0 to 1.22.1 in /sdks [noreply] [BEAM-14139] Remove unused Flink 1.11 directory (#17750) [noreply] [BEAM-14044] Allow ModelLoader to forward BatchElements args (#17527) [noreply] [BEAM-14481] Remove unnecessary context (#17737) [noreply] [BEAM-9324] Fix incompatibility of direct runner with cython (#17728) [noreply] [BEAM-14503] Add support for Flink 1.15 (#17739) [noreply] Update Beam website to release 2.39.0 (#17690) [noreply] [BEAM-14509] Add several flags to dataflow runner (#17752) [Yichi Zhang] Fix 2.38.0 download page. [noreply] [BEAM-14494] Fix publish_docker_images.sh (#17756) ------------------------------------------ [...truncated 106.87 KB...] - Gradle detected a problem with the following location: '<https://ci-beam.apache.org/job/beam_LoadTests_Java_GBK_Dataflow_V2_Streaming_Java17/ws/src/sdks/java/container/build/target'.> Reason: Task ':sdks:java:container:java17:copySdkHarnessLauncher' uses this output of task ':sdks:java:container:pullLicenses' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Please refer to https://docs.gradle.org/7.4/userguide/validation_problems.html#implicit_dependency for more details about this problem. > Task :sdks:java:io:google-cloud-platform:compileJava UP-TO-DATE > Task :sdks:java:io:google-cloud-platform:classes UP-TO-DATE > Task :sdks:java:io:google-cloud-platform:jar UP-TO-DATE > Task :sdks:java:io:kafka:compileJava UP-TO-DATE > Task :sdks:java:io:kafka:classes UP-TO-DATE > Task :sdks:java:io:kafka:jar UP-TO-DATE > Task :sdks:java:harness:shadowJar UP-TO-DATE > Task :sdks:java:testing:load-tests:compileJava UP-TO-DATE > Task :sdks:java:testing:load-tests:classes UP-TO-DATE > Task :sdks:java:testing:load-tests:jar UP-TO-DATE > Task :sdks:java:container:java17:copyDockerfileDependencies UP-TO-DATE > Task :runners:google-cloud-dataflow-java:compileJava UP-TO-DATE > Task :runners:google-cloud-dataflow-java:classes UP-TO-DATE > Task :runners:google-cloud-dataflow-java:jar UP-TO-DATE > Task :sdks:java:container:java17:dockerPrepare > Task :sdks:java:container:java17:docker > Task :runners:google-cloud-dataflow-java:buildAndPushDockerJavaContainer WARNING: `gcloud docker` will not be supported for Docker client versions above 18.03. As an alternative, use `gcloud auth configure-docker` to configure `docker` to use `gcloud` as a credential helper, then use `docker` as you would for non-GCR registries, e.g. `docker pull gcr.io/project-id/my-image`. Add `--verbosity=error` to silence this warning: `gcloud docker --verbosity=error -- pull gcr.io/project-id/my-image`. See: https://cloud.google.com/container-registry/docs/support/deprecation-notices#gcloud-docker The push refers to repository [us.gcr.io/apache-beam-testing/java-postcommit-it/java] 482c3d9326ff: Preparing 74f79edc6670: Preparing dc43e5409a49: Preparing 7aed6188a29b: Preparing 9cabb97b947b: Preparing 68fcd6b2dc4f: Preparing 14272fb2104d: Preparing a12ca58fba30: Preparing 785c1c4059f9: Preparing d9f133bc9dd8: Preparing be1a7208bdcd: Preparing 2c33e4997091: Preparing ff7d966a7537: Preparing 18a6c8c6c083: Preparing bc319d110988: Preparing 3bc383470c05: Preparing e93827457889: Preparing 08fa02ce37eb: Preparing a037458de4e0: Preparing bafdbe68e4ae: Preparing be1a7208bdcd: Waiting a13c519c6361: Preparing 2c33e4997091: Waiting 18a6c8c6c083: Waiting a12ca58fba30: Waiting ff7d966a7537: Waiting 68fcd6b2dc4f: Waiting 785c1c4059f9: Waiting d9f133bc9dd8: Waiting 08fa02ce37eb: Waiting bafdbe68e4ae: Waiting a13c519c6361: Waiting bc319d110988: Waiting e93827457889: Waiting 7aed6188a29b: Pushed dc43e5409a49: Pushed 74f79edc6670: Pushed 9cabb97b947b: Pushed 482c3d9326ff: Pushed a12ca58fba30: Pushed 14272fb2104d: Pushed d9f133bc9dd8: Pushed 785c1c4059f9: Pushed 68fcd6b2dc4f: Pushed 2c33e4997091: Pushed 3bc383470c05: Layer already exists e93827457889: Layer already exists be1a7208bdcd: Pushed 08fa02ce37eb: Layer already exists a037458de4e0: Layer already exists bafdbe68e4ae: Layer already exists a13c519c6361: Layer already exists bc319d110988: Pushed 18a6c8c6c083: Pushed ff7d966a7537: Pushed 20220526141617: digest: sha256:3179a49ff88de68251a1c96277dd606d8c13f91baf8924ac0d4a8651dac3c3ff size: 4729 > Task :sdks:java:testing:load-tests:run May 26, 2022 2:16:48 PM org.apache.beam.runners.dataflow.options.DataflowPipelineOptions$StagingLocationFactory create INFO: No stagingLocation provided, falling back to gcpTempLocation May 26, 2022 2:16:48 PM org.apache.beam.runners.dataflow.DataflowRunner fromOptions INFO: PipelineOptions.filesToStage was not specified. Defaulting to files from the classpath: will stage 222 files. Enable logging at DEBUG level to see which files will be staged. May 26, 2022 2:16:49 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: Executing pipeline on the Dataflow Service, which will have billing implications related to Google Compute Engine usage and other Google Cloud Services. May 26, 2022 2:16:51 PM org.apache.beam.runners.dataflow.util.PackageUtil stageClasspathElements INFO: Uploading 222 files from PipelineOptions.filesToStage to staging location to prepare for execution. May 26, 2022 2:16:52 PM org.apache.beam.runners.dataflow.util.PackageUtil stageClasspathElements INFO: Staging files complete: 222 files cached, 0 files newly uploaded in 0 seconds May 26, 2022 2:16:52 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: Staging portable pipeline proto to gs://temp-storage-for-perf-tests/loadtests/staging/ May 26, 2022 2:16:52 PM org.apache.beam.runners.dataflow.util.PackageUtil tryStagePackage INFO: Uploading <98342 bytes, hash 0f2e179f61f98e0e41e6a9d98284aa03cdddf55a65329576b9c454af999db8a0> to gs://temp-storage-for-perf-tests/loadtests/staging/pipeline-Dy4Xn2H5jg5B5qnZgoSqA83d9VplMpV2ucRUr5mduKA.pb May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Read input/DataflowRunner.StreamingUnboundedRead.ReadWithIds as step s1 May 26, 2022 2:16:54 PM org.apache.beam.sdk.io.synthetic.SyntheticUnboundedSource split INFO: Split into 20 bundles: [SyntheticUnboundedSource{startOffset=0, endOffset=1000000}, SyntheticUnboundedSource{startOffset=1000000, endOffset=2000000}, SyntheticUnboundedSource{startOffset=2000000, endOffset=3000000}, SyntheticUnboundedSource{startOffset=3000000, endOffset=4000000}, SyntheticUnboundedSource{startOffset=4000000, endOffset=5000000}, SyntheticUnboundedSource{startOffset=5000000, endOffset=6000000}, SyntheticUnboundedSource{startOffset=6000000, endOffset=7000000}, SyntheticUnboundedSource{startOffset=7000000, endOffset=8000000}, SyntheticUnboundedSource{startOffset=8000000, endOffset=9000000}, SyntheticUnboundedSource{startOffset=9000000, endOffset=10000000}, SyntheticUnboundedSource{startOffset=10000000, endOffset=11000000}, SyntheticUnboundedSource{startOffset=11000000, endOffset=12000000}, SyntheticUnboundedSource{startOffset=12000000, endOffset=13000000}, SyntheticUnboundedSource{startOffset=13000000, endOffset=14000000}, SyntheticUnboundedSource{startOffset=14000000, endOffset=15000000}, SyntheticUnboundedSource{startOffset=15000000, endOffset=16000000}, SyntheticUnboundedSource{startOffset=16000000, endOffset=17000000}, SyntheticUnboundedSource{startOffset=17000000, endOffset=18000000}, SyntheticUnboundedSource{startOffset=18000000, endOffset=19000000}, SyntheticUnboundedSource{startOffset=19000000, endOffset=20000000}] May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Read input/StripIds as step s2 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Collect start time metrics as step s3 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Total bytes monitor as step s4 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Window.Into()/Window.Assign as step s5 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Group by key (0) as step s6 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Ungroup and reiterate (0) as step s7 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowPipelineTranslator$Translator addStep INFO: Adding Collect end time metrics (0) as step s8 May 26, 2022 2:16:54 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: Dataflow SDK version: 2.40.0-SNAPSHOT May 26, 2022 2:16:55 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: To access the Dataflow monitoring console, please navigate to https://console.cloud.google.com/dataflow/jobs/us-central1/2022-05-26_07_16_54-2124524257198426798?project=apache-beam-testing May 26, 2022 2:16:55 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: Submitted job: 2022-05-26_07_16_54-2124524257198426798 May 26, 2022 2:16:55 PM org.apache.beam.runners.dataflow.DataflowRunner run INFO: To cancel the job using the 'gcloud' tool, run: > gcloud dataflow jobs --project=apache-beam-testing cancel > --region=us-central1 2022-05-26_07_16_54-2124524257198426798 May 26, 2022 2:17:01 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process WARNING: 2022-05-26T14:17:00.965Z: The workflow name is not a valid Cloud Label. Labels applied to Cloud resources (such as GCE Instances) for monitoring will be labeled with this modified job name: load0tests0java170dataflow0v20streaming0gbk02-jenkins-0526-sa2p. For the best monitoring experience, please name your job with a valid Cloud Label. For details, see: https://cloud.google.com/compute/docs/labeling-resources#restrictions May 26, 2022 2:17:07 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:06.574Z: Worker configuration: e2-standard-2 in us-central1-b. May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.277Z: Expanding SplittableParDo operations into optimizable parts. May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.309Z: Expanding CollectionToSingleton operations into optimizable parts. May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.383Z: Expanding CoGroupByKey operations into optimizable parts. May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.487Z: Expanding SplittableProcessKeyed operations into optimizable parts. May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.531Z: Expanding GroupByKey operations into streaming Read/Write steps May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.612Z: Lifting ValueCombiningMappingFns into MergeBucketsMappingFns May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.727Z: Fusing adjacent ParDo, Read, Write, and Flatten operations May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.788Z: Fusing consumer Read input/ParDo(OutputSingleSource)/ParMultiDo(OutputSingleSource) into Read input/Impulse May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.832Z: Fusing consumer Read-input-ParDo-UnboundedSourceAsSDFWrapper--ParMultiDo-UnboundedSourceAsSDFWrapper-/PairWithRestriction into Read input/ParDo(OutputSingleSource)/ParMultiDo(OutputSingleSource) May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.858Z: Fusing consumer Read-input-ParDo-UnboundedSourceAsSDFWrapper--ParMultiDo-UnboundedSourceAsSDFWrapper-/SplitWithSizing into Read-input-ParDo-UnboundedSourceAsSDFWrapper--ParMultiDo-UnboundedSourceAsSDFWrapper-/PairWithRestriction May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.896Z: Fusing consumer Read input/ParDo(StripIds)/ParMultiDo(StripIds) into Read-input-ParDo-UnboundedSourceAsSDFWrapper--ParMultiDo-UnboundedSourceAsSDFWrapper-/ProcessElementAndRestrictionWithSizing May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.923Z: Fusing consumer Collect start time metrics/ParMultiDo(TimeMonitor) into Read input/ParDo(StripIds)/ParMultiDo(StripIds) May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:07.951Z: Fusing consumer Total bytes monitor/ParMultiDo(ByteMonitor) into Collect start time metrics/ParMultiDo(TimeMonitor) May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.035Z: Fusing consumer Window.Into()/Window.Assign into Total bytes monitor/ParMultiDo(ByteMonitor) May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.072Z: Fusing consumer Group by key (0)/WriteStream into Window.Into()/Window.Assign May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.106Z: Fusing consumer Group by key (0)/MergeBuckets into Group by key (0)/ReadStream May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.159Z: Fusing consumer Ungroup and reiterate (0)/ParMultiDo(UngroupAndReiterate) into Group by key (0)/MergeBuckets May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.194Z: Fusing consumer Collect end time metrics (0)/ParMultiDo(TimeMonitor) into Ungroup and reiterate (0)/ParMultiDo(UngroupAndReiterate) May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.352Z: Running job using Streaming Engine May 26, 2022 2:17:08 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:08.624Z: Starting 5 ****s in us-central1-b... May 26, 2022 2:17:20 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:19.871Z: Your project already contains 100 Dataflow-created metric descriptors, so new user metrics of the form custom.googleapis.com/* will not be created. However, all user metrics are also available in the metric dataflow.googleapis.com/job/user_counter. If you rely on the custom metrics, you can delete old / unused metric descriptors. See https://developers.google.com/apis-explorer/#p/monitoring/v3/monitoring.projects.metricDescriptors.list and https://developers.google.com/apis-explorer/#p/monitoring/v3/monitoring.projects.metricDescriptors.delete May 26, 2022 2:17:31 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:30.964Z: Autoscaling: Raised the number of ****s to 1 so that the pipeline can catch up with its backlog and keep up with its input rate. May 26, 2022 2:17:31 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:31.026Z: Resized **** pool to 1, though goal was 5. This could be a quota issue. May 26, 2022 2:17:42 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:17:41.197Z: Autoscaling: Raised the number of ****s to 5 so that the pipeline can catch up with its backlog and keep up with its input rate. May 26, 2022 2:18:42 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T14:18:41.567Z: Workers have started successfully. May 26, 2022 3:06:34 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T15:06:33.795Z: Cleaning up. May 26, 2022 3:06:34 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T15:06:33.913Z: Stopping **** pool... May 26, 2022 3:06:34 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T15:06:33.978Z: Stopping **** pool... May 26, 2022 3:07:05 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T15:07:05.048Z: Autoscaling: Reduced the number of ****s to 0 based on low average **** CPU utilization, and the pipeline having sufficiently low backlog and keeping up with input rate. May 26, 2022 3:07:05 PM org.apache.beam.runners.dataflow.util.MonitoringUtil$LoggingHandler process INFO: 2022-05-26T15:07:05.113Z: Worker pool stopped. May 26, 2022 3:07:12 PM org.apache.beam.runners.dataflow.DataflowPipelineJob logTerminalState INFO: Job 2022-05-26_07_16_54-2124524257198426798 finished with status DONE. Load test results for test (ID): 99e8063f-8f7f-4856-b031-446bcd853fd8 and timestamp: 2022-05-26T14:16:49.277000000Z: Metric: Value: dataflow_v2_java17_runtime_sec 2769.289 dataflow_v2_java17_total_bytes_count 1.999998E9 > Task :runners:google-cloud-dataflow-java:cleanUpDockerJavaImages Untagged: us.gcr.io/apache-beam-testing/java-postcommit-it/java:20220526141617 Untagged: us.gcr.io/apache-beam-testing/java-postcommit-it/java@sha256:3179a49ff88de68251a1c96277dd606d8c13f91baf8924ac0d4a8651dac3c3ff Tag: [us.gcr.io/apache-beam-testing/java-postcommit-it/java:20220526141617] - referencing digest: [us.gcr.io/apache-beam-testing/java-postcommit-it/java@sha256:3179a49ff88de68251a1c96277dd606d8c13f91baf8924ac0d4a8651dac3c3ff] Deleted [[us.gcr.io/apache-beam-testing/java-postcommit-it/java:20220526141617] (referencing [us.gcr.io/apache-beam-testing/java-postcommit-it/java@sha256:3179a49ff88de68251a1c96277dd606d8c13f91baf8924ac0d4a8651dac3c3ff])]. Removing untagged image us.gcr.io/apache-beam-testing/java-postcommit-it/java@sha256:f5b0d713fc604af8a7aece2e8cc8fa50c5babc54da3a0a9da805cc05815fa40a Digests: - us.gcr.io/apache-beam-testing/java-postcommit-it/java@sha256:f5b0d713fc604af8a7aece2e8cc8fa50c5babc54da3a0a9da805cc05815fa40a ERROR: (gcloud.container.images.delete) Not found: response: {'docker-distribution-api-version': 'registry/2.0', 'content-type': 'application/json', 'date': 'Thu, 26 May 2022 15:07:18 GMT', 'server': 'Docker Registry', 'cache-control': 'private', 'x-xss-protection': '0', 'x-frame-options': 'SAMEORIGIN', 'transfer-encoding': 'chunked', 'status': '404', 'content-length': '168', '-content-encoding': 'gzip'} Failed to compute blob liveness for manifest: 'sha256:f5b0d713fc604af8a7aece2e8cc8fa50c5babc54da3a0a9da805cc05815fa40a': None > Task :runners:google-cloud-dataflow-java:cleanUpDockerJavaImages FAILED FAILURE: Build failed with an exception. * Where: Build file '<https://ci-beam.apache.org/job/beam_LoadTests_Java_GBK_Dataflow_V2_Streaming_Java17/ws/src/runners/google-cloud-dataflow-java/build.gradle'> line: 297 * What went wrong: Execution failed for task ':runners:google-cloud-dataflow-java:cleanUpDockerJavaImages'. > Process 'command './scripts/cleanup_untagged_gcr_images.sh'' finished with > non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.4/userguide/command_line_interface.html#sec:command_line_warnings Execution optimizations have been disabled for 1 invalid unit(s) of work during this build to ensure correctness. Please consult deprecation warnings for more details. BUILD FAILED in 51m 2s 105 actionable tasks: 8 executed, 97 up-to-date Publishing build scan... https://gradle.com/s/46g7qqhkonepi Build step 'Invoke Gradle script' changed build result to FAILURE Build step 'Invoke Gradle script' marked build as failure --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
