Commit graph

15 commits

Author SHA1 Message Date
Tinkoff DWH
4d398ef2a6 [ZEPPELIN-2297] improvements to jdbc autocompleter
### What is this PR for?
PR contains some improvements for completion (JDBC Interpreter):
- types of completion
- display of long values
- refactoring of search of completions
- uniqness of completions with type `keyword`
- updating data in completer by pressing `Ctrl + .`
- setting the schema filter to generate completions
- fix highlighting code when used not default data source

### What type of PR is it?
Improvement

### What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-2297

### How should this be tested?
try to work with new completer

### Screenshots (if appropriate)
**1. Types of completion**
![1](https://cloud.githubusercontent.com/assets/25951039/24449367/758eeeac-1490-11e7-863f-bf1b313a3f4d.png)

**2. Display of long values**
before
![2297_before_long_caption](https://cloud.githubusercontent.com/assets/25951039/24449397/8ecd3072-1490-11e7-8fd4-415424ef337e.gif)
after
![2297_after_long_caption](https://cloud.githubusercontent.com/assets/25951039/24449413/9c7a36b6-1490-11e7-9d7c-cbbdac71cbe7.gif)

**3. Refactoring of search of completions. Updating data in completer by pressing `Ctrl + .`**
before
![2297_before_refactoring_search](https://cloud.githubusercontent.com/assets/25951039/24449463/c1801214-1490-11e7-84a8-25c887b68d65.gif)
after
![2297_after_refactoring_search](https://cloud.githubusercontent.com/assets/25951039/24449567/1079bdc0-1491-11e7-8409-5187aeceb428.gif)

**4. uniqness of completions with type keyword**
before
![2297_before_uniq](https://cloud.githubusercontent.com/assets/25951039/24449615/4e20c8d0-1491-11e7-94cc-c86aab886c53.gif)
after
![2297_after_uniq](https://cloud.githubusercontent.com/assets/25951039/24449635/5cf59aca-1491-11e7-8ee1-31ea3cdacb3e.gif)

**5. fix highlighting code when used not default data source**
before
![2297_before_inrpret_name](https://cloud.githubusercontent.com/assets/25951039/24449730/b6c8d62a-1491-11e7-8dc3-39fa6975c8c3.gif)
after
![2297_after_inrpret_name](https://cloud.githubusercontent.com/assets/25951039/24449738/baf63e18-1491-11e7-8711-12557a674212.gif)

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no

Author: Tinkoff DWH <tinkoff.dwh@gmail.com>

Closes #2203 from tinkoff-dwh/ZEPPELIN-2297 and squashes the following commits:

b86b57a [Tinkoff DWH] [ZEPPELIN-2297] small fix to compute caption
8552049 [Tinkoff DWH] [ZEPPELIN-2297] schema filters
5308f1e [Tinkoff DWH] [ZEPPELIN-2297] updating completions
ef6c9cb [Tinkoff DWH] Merge remote-tracking branch 'origin/ZEPPELIN-2297' into ZEPPELIN-2297
1e05a68 [Tinkoff DWH] [ZEPPELIN-2297] fix uniqueness keywords
ec3cd3b [Tinkoff DWH] [ZEPPELIN-2297] fix uniqueness keywords
2b58cc5 [Tinkoff DWH] [ZEPPELIN-2297] refactoring search completions
7b5835d [Tinkoff DWH] [ZEPPELIN-2297] compute caption of copletion
1c74384 [Tinkoff DWH] [ZEPPELIN-2297] add type of completion
2017-04-17 14:18:32 +09:00
Mina Lee
61aeeaf10f Bump up version to 0.8.0-SNAPSHOT
### What is this PR for?
Bump up version to 0.8.0-SNAPSHOT

Author: Mina Lee <minalee@apache.org>

Closes #1883 from minahlee/0.8.0-SNAPSHOT and squashes the following commits:

b28ebe8 [Mina Lee] Bump up table/visualization plugin package version
fcaaa46 [Mina Lee] Bump up helium-dev version
180d2c6 [Mina Lee] Bump up version to 0.8.0-SNAPSHOT
2017-01-19 02:04:24 +09:00
1ambda
ad3586450a [ZEPPELIN-1695] Centralize libs, plugin versions in all pom.xml
### What is this PR for?

**First of all, this PR doesn't affect on runtime application behaivor and existing build processes. Just abstracting variables in pom.xml**

The main goal of this PR is bringing consistency and maintainability in all pom.xml.  I referred these 2 projects.

- [apache/spark: pom.xml](https://github.com/apache/spark/blob/master/pom.xml)
- [apache/storm: pom.xml](https://github.com/apache/storm/blob/master/pom.xml)

Currently, all libraries and plugins have duplicated version fields since we are not using `dependencyManagement`, `pluginManagement` efficiently in pom.xml

This results in

- unmanaged plugin, library versions (someone might update only a child's library version. it happend in our pom.xml files)
- so many duplicated code blocks (bad)
- fragmented plugin, library versions (some project uses junit 4.11 while another uses 4.12)

These are some examples

```xml
// hard coded, non consistent version management

      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${libthrift.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.3.3</version>
      </dependency>
```

```xml
// a/pom.xml
              <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.3.1</version>

              <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>

// b/pom.xml
              <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.3.1</version>

              <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>

// c/pom.xml
              <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.3.1</version>

              <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
```

### What type of PR is it?

[Refactoring]

### Todos

- [x] refactor all pom.xml

### What is the Jira issue?

[ZEPPELIN-1695](https://issues.apache.org/jira/browse/ZEPPELIN-1695)

### How should this be tested?

Since this PR doesn't affect runtime behavior at all, CI test would be enough.

### Questions:
* Does the licenses files need update - NO
* Is there breaking changes for older versions - NO
* Does this needs documentation - NO

Author: 1ambda <1amb4a@gmail.com>

Closes #1668 from 1ambda/chore/centralize-maven-pom-versions and squashes the following commits:

5a9c966 [1ambda] fix: Use shared download plugin version
7ef8a7b [1ambda] fix: Clean zeppelin-zengine/pom.xml
dee3723 [1ambda] fix: Clean zeppelin-web/pom.xml
4f8ecc9 [1ambda] fix: Clean zeppelin-server/pom.xml
b9f3a78 [1ambda] fix: Clean interpreter/pom.xml
c0d6ff2 [1ambda] fix: Clean distribution/pom.xml
acf59fa [1ambda] fix: Clean zeppelin-display/pom.xml
9301585 [1ambda] fix: Clean spark-dependencies/pom.xml
893bffa [1ambda] fix: Clean spark/pom.xml
ff91207 [1ambda] fix: Clean shell/pom.xml
5b37857 [1ambda] fix: Clean scio/pom.xml
c0dbe9b [1ambda] fix: Clean scalding/pom.xml
e6c661b [1ambda] fix: Clean r/pom.xml
e80388e [1ambda] fix: Clean postgres/pom.xml
cc61c68 [1ambda] fix: Clean pig/pom.xml
1fe71f9 [1ambda] fix: Clean markdown/pom.xml
96a9f07 [1ambda] fix: Clean livy/pom.xml
4cc4e37 [1ambda] fix: Clean lens/pom.xml
6d834bc [1ambda] fix: Clean kylin/pom.xml
b14bb3f [1ambda] fix: Clean jdbc/pom.xml
8b3a3ed [1ambda] fix: Clean ignite/pom.xml
1b3fdbb [1ambda] fix: Clean hbase/pom.xml
faad4be [1ambda] fix: Clean geode/pom.xml
c9e42e7 [1ambda] fix: Clean flink/pom.xml
647249d [1ambda] fix: Clean file/pom.xml
be0a4e7 [1ambda] fix: Clean elasticsearch/pom.xml
f80c172 [1ambda] fix: Clean cassandra/pom.xml
1b9c8c1 [1ambda] fix: Clean bigquery/pom.xml
b6749a6 [1ambda] fix: library versions in beam/pom.xml
fd01b3a [1ambda] fix: Remove plugin versions in beam/pom.xml
ec75b40 [1ambda] fix: Clean angular/pom.xml
c61b56e [1ambda] fix: Clean alluxio/pom.xml
28d10a7 [1ambda] fix: Clean root pom.xml
2016-12-01 14:56:50 +09:00
Mina Lee
60089f0f58 [ZEPPELIN-1566] Make paragraph editable with double click
### What is this PR for?
This PR enables edit on double click for markdown/angular paragraph.  Users can change `editOnDblClick` field to be `false` by editting `interpreter/md/interpreter-setting.json` or  `conf/interpreter.json`. In the same context, users can set other type paragraphs to be editable on double click by setting `editOnDblClick` to be true.

This PR also fixes bug that syntax highlight doesn't work on pasted code.

### What type of PR is it?
Feature

### Todos
* [x] Create test
* [x] Update docs

### What is the Jira issue?
[ZEPPELIN-1566](https://issues.apache.org/jira/browse/ZEPPELIN-1566)

### How should this be tested?
1. Create new markdown interpreter
2. Create notebook and run markdown paragraph
3. Double click markdown paragraph to edit

### Screenshots (if appropriate)

**Edit on double click and hide editor on paragraph run**
![oct-20-2016 12-28-54](https://cloud.githubusercontent.com/assets/8503346/19545401/ca2a69a8-96c0-11e6-9e70-ca930fd7cc8e.gif)

**Syntax highlight on paste**

Before
![oct-20-2016 12-24-54](https://cloud.githubusercontent.com/assets/8503346/19545333/46a2f2a8-96c0-11e6-910a-2a216da5603b.gif)

After
![oct-20-2016 12-25-06](https://cloud.githubusercontent.com/assets/8503346/19545338/4d3bb852-96c0-11e6-8dc4-ff839234876a.gif)

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? yes

Author: Mina Lee <minalee@apache.org>

Closes #1540 from minahlee/ZEPPELIN-1566 and squashes the following commits:

89ea628 [Mina Lee] Remove redundant code
4ffc446 [Mina Lee] Enable focus first paragraph on note reload
c566706 [Mina Lee] Check null condition of editor setting and return default setting
38d5e35 [Mina Lee] Update document about how to make paragraph editable on double click
b42039e [Mina Lee] Add integration test for editOnDblClick
0a26207 [Mina Lee] Add editOnDblClick field in interpreter-setting.json
93abe6a [Mina Lee] Make paragraph editable on doubleclick if editOnDblClick set true in interpreter-setting.json
359dc0b [Mina Lee] Split getAndSetEditorSetting method into getEditorSetting and setEditorLanguage method
2016-10-29 10:30:22 +09:00
Kai Jiang
702666480b [Zeppelin-907] Apply new mechanism to AngularInterpreter
### What is this PR for?
This PR applies the new interpreter registration mechanism to Angular interpreter.

### What type of PR is it?
Improvement

### Todos
* [x] Remove static property definition code lines in `AngularInterpreter.java` and create `interpreter-setting.json` under `angular/src/main/resources` directory

### What is the Jira issue?
[ZEPPELIN-907](https://issues.apache.org/jira/browse/ZEPPELIN-907)

### How should this be tested?
- apply this patch
- `rm -r interpreter/angular/` and `rm conf/interpreter.json`
- build source with maven
- `bin/zeppelin-daemon.sh start`
- Run with Angular

### Screenshots (if appropriate)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: Kai Jiang <jiangkai@gmail.com>

Closes #1496 from vectorijk/zeppelin-907 and squashes the following commits:

e6a263d [Kai Jiang] Apply new mechanism to AngularInterpreter
2016-10-10 00:06:28 +09:00
Mina Lee
04da56403b [MINOR] Change url in pom.xml files
### What is this PR for?
Set project url to `http://zeppelin.apache.org` in pom.xml files

### What type of PR is it?
Refactoring

### Questions:
* Does the licenses files need update? no
* Is there breaking changes for older versions? no
* Does this needs documentation? no

Author: Mina Lee <minalee@apache.org>

Closes #1221 from minahlee/pom_url and squashes the following commits:

10de8cb [Mina Lee] Remove child url
ef0ef04 [Mina Lee] Change main class package name
ead4064 [Mina Lee] Use consistent url in pom.xml
2016-07-31 16:41:56 +09:00
Mina Lee
e0f77d68e8 Bump up version to 0.7.0-SNAPSHOT
### What is this PR for?
Bump up version to 0.7.0-SNAPSHOT

Author: Mina Lee <minalee@apache.org>

Closes #1016 from minahlee/0.7.0-SNAPSHOT and squashes the following commits:

541e1b3 [Mina Lee] Bump up zeppelin-examples version to 0.7.0-SNAPSHOT
ea8c0ad [Mina Lee] Bump up version to 0.7.0-SNAPSHOT
2016-07-06 04:45:48 +09:00
Mina Lee
85d70579f5 [ZEPPELIN-986] Create publish release script
### What is this PR for?
This PR is to automate release publish to maven repository.
We used to use maven-deploy-plugin and maven-release-plugin for release but somehow it didn't work well with Zeppelin so 0.5.5 and 0.5.6 haven't been published to maven repository.

Publishing release to maven repository will eventually help zeppelin to reduce binary package size by leading users to use Dynamic interpreter loading(#908).
Originally below modules were skipped for maven release
 - all interpreters(except spark)
 - zeppelin-display
 - zeppelin-server
 - zeppelin-distribution

on the other hand this pr will skip only:
 - zeppelin-distribution

### What type of PR is it?
Infra

### Todos
- [x] Include SparkR/R interpreter in release
- [x] Create common_release.sh to remove build configuration duplication
- [x] Check curl networking failure

### What is the Jira issue?
[ZEPPELIN-986](https://issues.apache.org/jira/browse/ZEPPELIN-986)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? Yes, https://cwiki.apache.org/confluence/display/ZEPPELIN/Preparing+Zeppelin+Release will be updated accordingly once this pr is merged.

Author: Mina Lee <minalee@apache.org>

Closes #994 from minahlee/ZEPPELIN-986 and squashes the following commits:

b0e8e67 [Mina Lee] Revert "Add geode, scalding profile in maven artifact build"
cd4cbcd [Mina Lee] curl failure check
c0ea07c [Mina Lee] Fix wrong indentation
a88bc1d [Mina Lee] Add geode, scalding profile in maven artifact build
2cced61 [Mina Lee] Add r to binary package and maven build
903bc12 [Mina Lee] Move duplicate code to common_release.sh
a3eb676 [Mina Lee] Include zeppelin-server module in publish artifiact
48d338f [Mina Lee] Rollback mistakenly removed plugin
aafaf42 [Mina Lee] Follow google shell  style guide
30dcc65 [Mina Lee] remove deploy plugin from pom since custom script will be used instead for deploy
cd1f08c [Mina Lee] Refactor create release script
e764f5f [Mina Lee] Add maven publish release script
2016-06-22 21:22:07 -07:00
AhyoungRyu
7b00dffd98 [ZEPPELIN-982] Improve interpreter completion API
### What is this PR for?
When people implement a new interpreter, they extend [interpreter.java](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java) as described in [here](https://zeppelin.apache.org/docs/0.6.0-SNAPSHOT/development/writingzeppelininterpreter.html). Among the several methods in [interpreter.java](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java), [completion API](https://github.com/apache/zeppelin/blob/master/zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/Interpreter.java#L109) enables auto-completion.

However this API is too simple compared to other project's auto-completion and hard to add more at the moment. So for the aspect of further expansion, it would be better to separate and restructure this API before the this release( 0.6.0 ).

### What type of PR is it?
Improvement

### Todos
* [x] - Create new structure : `InterpreterCompletion` in `RemoteInterpreterService.thrift` and regenerate `zeppelin-interpreter/src/main/java/org/apache/zeppelin/interpreter/thrift/*` files
* [x] - Change all existing `List<String> completion` -> `List<InterpreterCompletion> completion`
* [x] - Change `paragraph.controller.js` to point real `name` and `value`

### What is the Jira issue?
[ZEPPELIN-982](https://issues.apache.org/jira/browse/ZEPPELIN-982)

### How should this be tested?
Since this improvement is just API change, it should work same as before. So after applying this patch, and check whether auto-completion works well or not.

Use `. + ctrl` for auto-completion. For example,

```
%spark
sc.version
```

When after typing `sc.` and pushing  `. + ctrl` down, `version` should be shown in the auto-completion list.

### Screenshots (if appropriate)
![auto_completion](https://cloud.githubusercontent.com/assets/10060731/15952521/72937782-2e76-11e6-8246-4faf0dd77a5b.gif)

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: AhyoungRyu <fbdkdud93@hanmail.net>

Closes #984 from AhyoungRyu/ZEPPELIN-982 and squashes the following commits:

311dc29 [AhyoungRyu] Fix travis
9d384ec [AhyoungRyu] Address @minalee feedback
fdfae8f [AhyoungRyu] Address @jongyoul review
bd4f8c0 [AhyoungRyu] Remove abstract and make it return null by default
f8352c7 [AhyoungRyu] Fix travis error
43d81f6 [AhyoungRyu] Remove console.log
24912fa [AhyoungRyu] Fix type casting error in SparkInterpreter
80e295b [AhyoungRyu] Change return type
bd04c22 [AhyoungRyu] Apply new InterpreterCompletion class to all interpreter class files
c283043 [AhyoungRyu] Apply new InterpreterCompletion class under zeppelin-zengine/
dbecc51 [AhyoungRyu] Apply new InterpreterCompletion class under zeppelin-server/
6449455 [AhyoungRyu] Apply new InterpreterCompletion class under zeppelin-interpreter/
919b159 [AhyoungRyu] Add automatically generated thrift class
9e69e11 [AhyoungRyu] Change v -> v.name & v.value in front
73e374e [AhyoungRyu] Define InterpreterCompletion structure to thrift file
2016-06-16 08:06:07 -07:00
Mina Lee
5af7747798 Remove incubating from pom files
### What is this PR for?
Remove `incubating` term from pom files

### Questions:
* Does the licenses files need update? No
* Is there breaking changes for older versions? No
* Does this needs documentation? No

Author: Mina Lee <minalee@nflabs.com>

Closes #942 from minahlee/tlp/removeIncubating and squashes the following commits:

e605b54 [Mina Lee] Remove incubating from pom files
2016-06-02 12:51:44 -07:00
Luciano Resende
803ebc2539 [ZEPPELIN-898] Update resources to use Zeppelin TLP links
### What is this PR for?
Update resources to use Zeppelin TLP links

### What type of PR is it?
[Bug Fix]

### What is the Jira issue?
[ZEPPELIN-898](https://issues.apache.org/jira/browse/ZEPPELIN-898)

Author: Luciano Resende <lresende@apache.org>

Closes #927 from lresende/incubator-links and squashes the following commits:

8fca07c [Luciano Resende] [ZEPPELIN-898] Update resources to use Zeppelin TLP links
2016-05-30 11:00:14 -07:00
caofangkun
8ade54ee12 ZEPPELIN-206: provide shell genthrift.sh to generate java code and auto insert license header
Author: caofangkun <caofangkun@gmail.com>

Closes #185 from caofangkun/zeppelin-206 and squashes the following commits:

347dbf7 [caofangkun] ZEPPELIN-206: modify pom.xml add relativePath
7a204dc [caofangkun] ZEPPELIN-206: update libthrift version from 0.9.0 to 0.9.2
498ad4d [caofangkun] ZEPPELIN-206: provide shell genthrift.sh to generate java code and auto insert license header
2015-08-13 08:37:35 -07:00
Lee moon soo
955d6aa3bc ZEPPELIN-122 Bump up version to 0.6.0-incubating-SNAPSHOT
Bump up version to 0.6.0-incubating-SNAPSHOT. https://issues.apache.org/jira/browse/ZEPPELIN-122

Author: Lee moon soo <moon@apache.org>

Closes #112 from Leemoonsoo/ZEPPELIN-122 and squashes the following commits:

c115995 [Lee moon soo] ZEPPELIN-122 Bump up version to 0.6.0-incubating-SNAPSHOT
2015-06-24 13:17:41 -07:00
Lee moon soo
5caace75e5 ZEPPELIN-65 add -incubation label to version id
Add -incubation label to version id in pom.xml
https://issues.apache.org/jira/browse/ZEPPELIN-65

Author: Lee moon soo <moon@apache.org>

Closes #59 from Leemoonsoo/ZEPPELIN-65 and squashes the following commits:

82b5f88 [Lee moon soo] ZEPPELIN-65 add -incubation label to version id
2015-05-09 12:47:42 +09:00
Lee moon soo
58b70e3bc0 ZEPPELIN-25 Ability to create rich gui inside of Notebook
This PR implements https://issues.apache.org/jira/browse/ZEPPELIN-25

Here's a short video demo of this feature.
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/xU5TBS_MsAs/0.jpg)](http://www.youtube.com/watch?v=xU5TBS_MsAs)

for someone who want to try, here's api
```scala

// bind 'varName' variable with 'v' value
z.angularBind(varName: String, v: Object)

// unbind 'varName'
z.angularUnbind(varName: String)

// get value of 'varName'
z.angular(varName:String)

// add watcher to 'varName' variable.
// that is monitoring change and run 'func' when it is changed.
z.angularWatch(varName:String, func: (Object, Object) => Unit))

// remove watcher from 'varName'
z.angularUnwatch(varName:String)
```

Any paragraph's output starting with '%angular'  will be considered as angular code. %angular as a interpreter also available.
![image](https://cloud.githubusercontent.com/assets/1540981/7003457/a1e6fe2a-dc95-11e4-8272-380f11c6ae81.png)

Any feedback is welcome!

Author: Lee moon soo <moon@apache.org>

Closes #27 from Leemoonsoo/angular and squashes the following commits:

04d7175 [Lee moon soo] Remove implicit conversion because of side effect
34fa298 [Lee moon soo] jquery to angular
8076098 [Lee moon soo] Remove unnecessary type information
88fd635 [Lee moon soo] catch and print watcher user provided routine exception
46dba2f [Lee moon soo] Catch sql syntax error
2ebfa59 [Lee moon soo] Let z.run optionally take InterpreterContext
ee29866 [Lee moon soo] ZEPPELIN-32 implement z.show()
dac416d [Lee moon soo] Implement z.run()
0899011 [Lee moon soo] Fix test
0033d32 [Lee moon soo] Add angular interpreter
42ee479 [Lee moon soo] com.nflabs -> org.apache
4d32d19 [Lee moon soo] ZEPPELIN-25 prevent watcher called multiple times
d4d270e [Lee moon soo] ZEPPELIN-25 add unittest
6ce8f36 [Lee moon soo] ZEPPELIN-25 implement watcher
6df7f23 [Lee moon soo] ZEPPELIN-25 broadcast angular object change to related notes
5954e29 [Lee moon soo] ZEPPELIN-25 save/restore angular object registry snapshot to the notebook file
c288198 [Lee moon soo] ZEPPELIN-25 send scope variables when loading note
67f6926 [Lee moon soo] ZEPPELIN-25 impelemnet JS(angular) -JVM(scala) two-way binding
bb52d7b [Lee moon soo] Add %angular display system
a7c77b8 [Lee moon soo] Update license of ScreenCaptureHtmlUnitDriver.java
6d7e063 [Lee moon soo] Add source file license header
2015-04-12 14:58:32 +09:00