// Code generated by go-bindata.
// sources:
// resources/de-de.all.json
// resources/en-us.all.json
// resources/es-es.all.json
// resources/fr-fr.all.json
// resources/it-it.all.json
// resources/ja-jp.all.json
// resources/ko-kr.all.json
// resources/pt-br.all.json
// resources/zh-hans.all.json
// resources/zh-hant.all.json
// DO NOT EDIT!

package resources

import (
	"bytes"
	"compress/gzip"
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

func bindataRead(data []byte, name string) ([]byte, error) {
	gz, err := gzip.NewReader(bytes.NewBuffer(data))
	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}

	var buf bytes.Buffer
	_, err = io.Copy(&buf, gz)
	clErr := gz.Close()

	if err != nil {
		return nil, fmt.Errorf("Read %q: %v", name, err)
	}
	if clErr != nil {
		return nil, err
	}

	return buf.Bytes(), nil
}

type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _resourcesDeDeAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\x4d\x6f\xd4\x30\x10\x86\xef\xfd\x15\xaf\xf6\x92\x4b\xb5\x3f\x20\xb7\xa8\xda\x45\x48\xa5\x42\xf4\xe3\x42\x11\x1d\xe2\x69\xd6\x52\xe2\x31\xf6\x84\x80\xa2\xfc\x77\x64\x96\x8a\x6d\xc1\x8b\x5b\xf5\x12\x45\x33\xe3\xe7\x7d\x26\x1f\x1f\x4f\x00\xcc\xe9\x02\x60\x65\xcd\xaa\xc6\xea\xd6\x35\xde\x23\x2a\x05\x65\x73\xeb\x56\xa7\x0f\x6d\x0d\xe4\x62\x4f\x6a\xc5\xfd\x99\xeb\x78\x3f\xa9\x87\x93\x83\x18\x7b\x6f\x39\xe1\xee\xa9\x8f\x9c\xea\xcb\x69\x36\x6b\x9e\xd7\x8d\xf7\x17\x34\xf0\xb2\x60\xa2\xf8\x10\x8e\x31\x5a\xd7\x41\x77\x36\xa2\x95\x61\x20\x67\x70\x37\xcf\xeb\xb3\xfd\xfd\xb2\xdc\xfd\x57\xef\x75\xd0\xcf\xd8\xe7\xea\xed\xfb\x1a\xd7\x91\x51\x1d\xd2\x2a\xa8\x40\x29\x74\xac\x70\x3c\x41\x42\x77\x44\xfc\x05\x8c\x62\x43\x00\x37\x96\x27\x50\xdf\xcb\x44\x5f\x7a\xc6\xd7\x51\x94\x22\x26\xab\x3b\x54\x67\xdb\xcf\x17\xcd\xbb\xcd\xef\x62\x95\x95\x7c\x29\xa6\xd8\x33\xad\x7e\xc3\x21\x5a\x71\x97\x3b\x09\x9a\xf6\x4f\x2f\xe9\xa0\x7e\x2e\xae\xfb\x55\x0e\x0c\xea\xa3\x80\xda\x96\xbd\xb2\x59\x67\xb5\x5f\x89\x5a\xbc\x45\x93\x00\x86\x7b\x56\x06\xb9\x1f\x18\xc8\x7b\x36\x08\x32\x2a\xc7\xac\x65\xe1\xa9\x72\x8b\xa7\x3f\x82\x11\x8e\x70\xa2\xe0\xef\x36\x6a\xfe\x71\x95\x1f\x2c\x76\xd9\x6e\x9a\xab\xeb\x0f\x1b\x6c\xcf\x9b\x37\x97\xd9\xe0\xcc\x54\x71\x4a\xd2\xcd\xc2\x1f\x37\x8b\x99\xe4\x2d\xd8\x19\x2f\xd6\x69\x9d\x85\x67\xa6\x9e\x95\xf2\x6d\xff\x25\x1e\x0f\xf9\x7b\xa8\x38\x43\x42\x97\x67\x3f\x6e\x16\x33\xa3\xa7\x96\xeb\x22\xfb\x63\xa3\xc5\x79\x63\xe4\x90\x8f\x78\xd2\xfd\x27\xf5\xe4\xd3\xcf\x00\x00\x00\xff\xff\xf6\x15\xfb\x1f\xfe\x06\x00\x00")

func resourcesDeDeAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesDeDeAllJson,
		"resources/de-de.all.json",
	)
}

func resourcesDeDeAllJson() (*asset, error) {
	bytes, err := resourcesDeDeAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/de-de.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesEnUsAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x93\xcd\x6e\xdb\x30\x10\x84\xef\x7a\x8a\x81\x2f\xbe\x04\x7e\x00\xdf\x84\xc0\x2e\x0a\xa4\x41\xd0\xfc\x5c\x9a\xa2\xd9\x9a\x1b\x99\x00\x45\xb2\xdc\x75\xd5\x42\xd0\xbb\x17\xb2\x93\x22\x86\xc8\xfc\xc0\x57\xce\xcc\xb7\x2b\xed\xee\xb7\x0a\xe8\x2b\x00\x98\x59\x33\x5b\x62\x76\xef\xeb\x18\x21\x4a\x49\xd9\xdc\xfb\xd9\xd9\x41\xd4\x44\x5e\x1c\xa9\x0d\x3e\xe7\xaa\x80\xe1\x6c\x8a\xba\xf9\x7c\xb5\xc4\xad\x30\xe6\x7d\xbf\x38\x0f\x6d\x4b\xde\x0c\xc3\x1c\x1a\xa0\x94\x1a\x56\x78\xee\x10\x52\x53\x2c\xf3\x7e\x42\xb6\x85\x4b\x6a\xb9\xc0\xde\x4b\xd9\xd0\xf8\x69\x7d\xbf\xa8\x63\x1c\x3d\xc3\x00\x13\x58\xe0\x83\x82\xff\x58\xd1\x45\x01\xf8\x66\x2c\x5b\x6c\xbd\xaa\x6f\x6e\xbf\xae\xb0\xbe\xa8\x3f\x5d\x17\xc8\xc7\x9e\x2c\x06\xc0\x9d\xe5\x0e\xe4\x5c\xe8\xe8\xa7\x63\xfc\xda\x05\x25\x41\x67\x75\x8b\xf9\xf9\xfa\xc7\x65\xfd\x65\xf5\xf4\x38\x2f\xd4\xf9\x20\x24\xdb\xc8\x38\xa7\x3b\x4e\x62\x83\xbf\xde\x86\xa4\xe3\xb0\xc8\x1b\xbc\x78\xbf\x08\xbe\xd9\x3f\x27\x06\x39\x09\xa0\xcd\x86\xa3\xb2\x29\xfd\xd9\xd3\x98\xf9\x19\x8f\x1e\xc3\x8e\x95\x41\xfe\x2f\x5a\x8a\x91\x0d\x52\xd8\x29\x4b\x69\xc0\xaf\x66\x0a\x27\x30\xd9\x8a\x8e\xe4\xf9\x70\xb0\x13\xeb\x1b\xe8\xd6\x0a\x36\x87\xdd\xc6\xc3\xcb\x3d\x7f\x78\xe3\x00\x4f\x02\x67\x1b\xa6\x68\xc1\xde\xc4\x60\xbd\x2e\x0b\xb5\x8f\x3d\x45\xcc\xef\xc3\x64\x5e\xa3\xfc\xb7\x64\x21\x3b\xe1\x54\x4a\x1f\xb4\x6c\x2c\xa4\xa6\x94\xda\x4b\xd9\x90\x44\xda\xf0\xf2\x1d\x6d\x67\x8c\xc7\xc0\x67\xe2\xaa\x25\xeb\x9e\x20\x13\xca\xb1\xd8\x06\x63\x1f\x2d\x8f\xb1\x47\x72\xc2\x79\xe0\x15\x89\x74\x21\x99\x12\x73\xa2\x4f\xb1\x43\xf5\xbd\xfa\x17\x00\x00\xff\xff\xcf\x2f\x17\x9b\xf2\x05\x00\x00")

func resourcesEnUsAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesEnUsAllJson,
		"resources/en-us.all.json",
	)
}

func resourcesEnUsAllJson() (*asset, error) {
	bytes, err := resourcesEnUsAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/en-us.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesEsEsAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\xcd\x6a\xdb\x40\x10\xc7\xef\x79\x8a\x3f\xbe\xf8\x12\xfc\x00\xbe\x09\x63\x97\x42\x1a\x42\xf3\x71\x69\x4a\x33\xd5\x4e\xec\x05\x69\x67\xbb\x33\xae\x5a\x84\x1e\xaa\xf4\x11\xf2\x62\x45\x4d\x43\x9d\x84\x75\x36\x26\x17\x21\x66\x66\x7f\xff\xdf\xe8\xe3\xd3\x11\x80\x7e\xbc\x00\x98\x78\x37\x99\x63\x72\x1d\xaa\x18\xa1\x46\xc9\xd8\x5d\x87\xc9\xf1\x43\xdb\x12\x05\x6d\xc8\xbc\x84\xff\x73\x3e\xf8\xda\x93\xa3\xdd\xc1\x56\x9c\xbf\xf5\x3c\xd2\x6e\xa9\x51\x1e\xeb\xc3\x71\x36\xaa\xef\x67\x55\x8c\xa7\xd4\xf2\x30\xa0\x23\x7d\xc8\xc6\x56\x7d\x58\xc3\x36\x5e\x51\x4b\xdb\x52\x70\xb8\xe9\xfb\xd9\xe2\xfe\x7e\x18\x6e\x5e\xb4\x7b\x1b\xf4\x2b\xf6\xb9\x78\x7f\x36\xc7\xa5\x32\xa6\xbb\xb4\x29\x4c\x60\x94\xd6\x6c\x08\xdc\x41\xd2\x7a\x8f\xf8\x01\x8c\x62\x43\x00\x57\x9e\x3b\x50\xd3\x48\x47\x5f\x1b\xc6\xb7\xad\x18\x29\x3a\x6f\x1b\x4c\x17\xab\x2f\xa7\xd5\x87\xe5\xbf\xe2\x34\x2b\x79\x28\xa6\xd8\x73\x5c\xfd\x8a\x93\x7a\x09\xe7\x1b\x49\x36\xee\x3f\xbe\xa4\x9d\xfa\x89\x84\xf5\xdf\x72\x62\x50\xa3\x02\xaa\x6b\x8e\xc6\x6e\x96\xd5\x7e\x23\x6a\xf1\x16\xd5\x08\x70\xdc\xb0\x31\x28\xfc\x44\x4b\x31\xb2\x43\x92\xad\xb1\x66\x2d\x0b\x4f\x95\x5b\x3c\xfd\x11\x9c\xb0\x22\x88\x81\x7f\x78\xb5\xfc\xe3\x2a\x3f\x58\xec\xb2\x5a\x56\x17\x97\x1f\x97\x58\x9d\x54\xef\xce\xb3\xc1\x99\xa9\xe2\x94\x51\x37\x0b\x7f\xdc\x2c\x66\x52\xf4\xe0\xe0\xa2\xf8\x60\xf3\x2c\x3c\x33\xf5\xaa\x94\xef\xf7\x5f\xe2\xfe\x90\xe7\x43\xc5\x19\x92\xd6\x79\xf6\xe3\x66\x31\x53\x23\xd5\x3c\x2f\xb2\xdf\x37\x5a\x9c\xb7\x55\x4e\xf9\x88\x27\xdd\x62\xea\xb2\x25\xdf\x64\xa9\x0b\x49\x89\x05\xdc\x70\x6d\xe9\xee\x77\xf0\xb5\x1c\x90\x71\x46\xaa\x9d\x24\xb7\x27\x26\x58\x22\xe5\xbb\x5f\xf4\x02\xfe\xe8\xf3\x9f\x00\x00\x00\xff\xff\xd2\x34\xa6\x99\xc0\x07\x00\x00")

func resourcesEsEsAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesEsEsAllJson,
		"resources/es-es.all.json",
	)
}

func resourcesEsEsAllJson() (*asset, error) {
	bytes, err := resourcesEsEsAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/es-es.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesFrFrAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x95\xc1\x6e\xdb\x46\x10\x86\xef\x7e\x8a\x1f\xba\xe8\x92\xf8\x01\x74\x23\x14\x3a\x30\xe0\x2a\x46\x24\x05\x2d\x9a\xa2\x1e\x93\x23\x71\x01\x72\x77\xbb\xb3\x2b\xd7\x16\xf4\x2e\x3d\x96\x7d\x0d\xbe\x58\xb1\x94\xdc\x48\xae\x56\x51\x74\x31\xc4\xe5\xcc\xf7\xff\x33\x9c\x59\xff\x7a\x05\x60\x1d\xff\x00\x18\xa8\x72\x30\xc2\xe0\x3e\x48\x05\x82\xe6\x27\x90\xb5\x30\x0e\xf2\xac\x0b\x14\x15\xe9\x25\x0b\xbc\x01\x69\xf0\x9f\x4a\xbc\xd2\xcb\x18\x32\x78\xf7\x0a\xf0\x8e\xb4\xd4\xe4\x95\xd1\x91\x94\xeb\x95\x79\x66\x07\x4b\x0e\x85\x69\x1a\xd2\x25\xc3\x46\x7c\xd0\x0c\x6d\xc2\x8a\xeb\x9a\x23\xa2\x56\x45\x9f\x05\x13\x7a\xb5\xca\x19\xad\x84\x1d\x6a\x16\x34\xa6\x54\x8b\x5d\x80\xa0\x24\x2d\x7d\xfe\x7e\x5a\x6f\x87\xb4\xe7\x41\xb4\xb2\x79\x77\xa4\xac\xf9\x34\xfb\x98\x8f\x92\x5e\xa7\xbf\x4c\x66\xd9\xcf\x39\x46\x69\xc2\x3d\xf9\xaa\x2f\xdf\x5a\x94\xca\x71\xe1\x8d\x7b\x8e\xfd\x89\x67\x78\x51\x16\x0b\x55\x33\xcc\x02\xbe\x62\x14\x46\x7b\xd6\x5e\x5e\x9f\x0f\xb2\x92\x36\xc6\x15\x37\x4a\xa3\x1c\x52\x51\x74\x7f\x0b\x28\xc0\x75\xad\x65\xe7\x8d\x72\x8c\x92\x51\x0f\xdf\xf4\xab\xfb\x0b\x41\x63\xa1\x8a\x4a\xb1\xeb\x6d\x94\x61\xa7\x1e\xe2\xcf\x53\xf9\xe9\x62\x27\xa1\x79\x64\x17\xcd\x2b\x1d\x5b\x5b\xb0\x24\x4d\x4f\x4c\xf3\x18\xe1\xc3\x6f\xa1\x49\xee\x57\x9d\x59\x0b\xf1\xe4\x3c\x97\x5f\x75\x92\xd9\xc7\xfd\x57\x66\xd9\xb5\x0d\x39\xd7\xb5\xbc\x9f\xb2\x1d\x0c\x8e\xdc\x05\xd5\xc2\xdf\x11\x5d\xaf\xaf\x33\x6b\x27\xd4\xf0\x66\x83\x27\x92\x57\x17\x08\x12\x27\xd9\x57\x4a\x5e\xc7\x14\x0f\xeb\xf5\xf5\x78\xfb\x7b\xb3\x79\x38\xe9\xf3\xee\xe0\x83\x1c\x88\x10\xba\xd6\x77\xed\x9e\x7d\xd0\x8a\x0b\xd4\xf4\x6d\x1f\x1e\xc4\x34\xfc\x7e\xf7\xf8\x5e\x53\xc3\x0f\x17\xd6\x38\xbb\xbd\x1f\x61\x2e\x8c\xe1\xbe\xf9\x61\x1c\x4f\x4f\x6e\xc9\xbe\xdf\x69\xe3\x96\xa7\x9a\x3e\x9d\xcd\xc7\x39\x46\x08\x5e\xd5\x4a\xf8\xe5\x2d\xcc\x9a\xe0\x50\xa8\xc7\x9a\xdd\xe1\x16\x1b\xb7\x24\xad\x64\xcb\xfa\x71\xfb\x00\xbe\xa8\x78\xe5\xd4\xb5\x79\xa2\xc7\x9a\xf1\x47\x30\x9e\x04\x4f\xca\x57\x18\x8e\x6f\x7e\x9f\x64\x3f\xe5\xbb\xc3\x61\xb2\x02\x00\xd9\x22\xee\x02\xbf\xf4\x77\xc7\x0e\x62\x4d\x58\x91\xf6\xe8\xfe\xf1\x8e\x7b\x8d\xd0\xb5\xb2\xfd\x18\x69\xf6\xd9\xe6\x63\x8f\xbe\xb0\x13\x65\xf4\xb4\x32\xce\xc7\x46\xc5\x29\xda\x3b\xbf\x33\x7a\xd9\x1f\xf7\xfa\x62\x40\x45\xc1\xd6\x73\x79\x9d\xac\xe5\x18\x95\xfd\x31\xa8\x98\x58\x5b\xbb\xa4\x9a\x1b\xd6\x7e\xc7\xee\x5a\xb9\xbe\x68\x94\xb2\xe8\xaf\xe4\x9a\x3d\x83\xf4\x33\x1a\xb2\x96\x4b\x38\x13\xfc\x89\x5b\x60\x1a\xac\x75\xaa\x61\x07\x0a\x22\xaa\x6f\xff\x36\xa5\x07\x74\x2d\xcb\x65\x6e\xde\xae\x6e\x69\x58\xa0\x8d\xdf\xde\xfa\xe9\xfe\x9d\x58\x4c\x3d\xec\x73\x19\x96\x2e\xec\xd1\x4d\x9e\xcd\xe6\x9f\x73\xdc\xdc\x65\x1f\xa7\x49\x0b\xb7\x93\x0f\xb7\xe3\x6c\x96\xcf\x3f\x4f\xf1\x21\xc7\xcd\xa7\xc9\x78\x76\xfb\x69\x72\x81\x5e\x34\x7e\xea\x02\xbe\x00\x49\x56\x81\x75\x69\x8d\xd2\x3e\xfd\x8f\x31\x11\xf5\x43\x2a\xab\xed\xb8\x9e\x16\xf9\x7f\xd0\xd9\x1a\xc6\x2d\xd3\xec\xc3\x97\x67\x33\xc5\x52\xc1\xa3\xb3\xdc\x9f\x0a\x3d\x5b\x2f\x08\xbb\xb4\xc4\x9b\xb7\x47\xa9\x57\xbf\x5d\xfd\x1b\x00\x00\xff\xff\xe5\x46\x71\xdf\xd0\x09\x00\x00")

func resourcesFrFrAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesFrFrAllJson,
		"resources/fr-fr.all.json",
	)
}

func resourcesFrFrAllJson() (*asset, error) {
	bytes, err := resourcesFrFrAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/fr-fr.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesItItAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\x4d\x6f\x13\x31\x10\x86\xef\xfd\x15\xaf\x72\xc9\xa5\xca\x0f\xc8\x6d\x55\x25\x08\xa9\x54\x88\x7e\x5c\x28\xa2\xc3\x7a\xba\xb1\xe4\xf5\x18\x7b\x92\x05\x56\xfb\xdf\x91\x29\x45\x69\xc1\xc1\xad\x72\x59\xad\x66\xc6\xcf\xfb\xcc\x7e\x7c\x3c\x01\x30\xe6\x0b\x80\x99\x35\xb3\x25\x66\xb7\xbe\x09\x01\x49\x29\x2a\x9b\x5b\x3f\x3b\x7d\x6c\x6b\x24\x9f\x1c\xa9\x15\xff\x67\xce\xd9\x96\x7e\x58\xf1\x0c\xda\xed\x2c\x29\xed\x1f\xe8\xc5\xd8\x7b\xcb\x99\x7a\x4f\x2e\x71\xae\x4f\xa7\xc5\xc8\x71\x5c\x34\x21\x5c\x50\xcf\xd3\x84\x81\xd2\xa3\x03\xb6\xc9\xfa\x0e\xba\xb1\x09\xad\xf4\x3d\x79\x83\xbb\x71\x5c\x9c\x3d\xdc\x4f\xd3\xdd\xff\x2c\x8f\x84\x7e\xc1\x3e\x57\x6f\xdf\x2f\x71\x9d\x18\xf3\x7d\xda\x1c\x2a\x50\x8a\x1d\x2b\x3c\x0f\x90\xd8\x1d\x10\x7f\x05\xa3\xda\x10\xc0\x8d\xe5\x01\xe4\x9c\x0c\xf4\xc5\x31\xbe\x6e\x45\x29\x61\xb0\xba\xc1\xfc\x6c\xfd\xf9\xa2\x79\xb7\xfa\x5d\x9c\x17\x25\x5f\x8b\xa9\xf6\xcc\xab\xdf\x70\x4c\x56\xfc\xe5\x46\xa2\xe6\xfd\xf3\x4b\xda\xab\x9f\x8b\xef\x7e\x95\x23\x83\x5c\x12\x50\xdb\x72\x50\x36\x8b\xa2\xf6\x91\xa8\xd5\x5b\x34\x19\x60\xd8\xb1\x32\xc8\x7f\x47\x4f\x21\xb0\x41\x94\xad\x72\x2a\x5a\x56\x9e\xaa\xb7\x78\xfe\x23\x18\xe1\x04\x2f\x0a\xfe\x66\x93\x96\x1f\x57\xfd\xc1\x6a\x97\xf5\xaa\xb9\xba\xfe\xb0\xc2\xfa\xbc\x79\x73\x59\x0c\x2e\x4c\x55\xa7\x64\xdd\x22\xfc\x69\xb3\x9a\x49\xc1\x82\xbd\x09\x62\xbd\x2e\x8b\xf0\xc2\xd4\x8b\x52\x76\x0f\x5f\xe2\xe1\x90\xbf\x87\xaa\x33\x24\x76\x65\xf6\xd3\x66\x35\x33\x05\x6a\x79\x59\x65\x7f\x68\xb4\x3a\x6f\x9b\x38\x96\x23\x9e\x75\xff\x49\x3d\xf9\xf4\x33\x00\x00\xff\xff\xdc\xca\x3a\xfd\x05\x07\x00\x00")

func resourcesItItAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesItItAllJson,
		"resources/it-it.all.json",
	)
}

func resourcesItItAllJson() (*asset, error) {
	bytes, err := resourcesItItAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/it-it.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesJaJpAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\xcd\x6a\x14\x4d\x14\x86\xf7\xb9\x8a\x97\xd9\xcc\x26\xcc\x05\xcc\xae\x09\x33\x1f\x1f\xc4\x20\xe6\x67\x63\xc4\x1c\xa7\x4e\x7a\x0a\xba\xab\xca\xaa\x33\xb6\xd2\xf4\xa2\x93\x65\xb2\xd5\x2c\x05\x37\x82\x17\xe1\xcd\x14\x2e\xbc\x0b\x69\xc7\xc0\x24\x5a\x43\x25\x64\xd3\x34\xe7\x9c\x7a\xde\xe7\xf4\xcf\xcb\x1d\x00\xed\x70\x01\x30\xd2\x6a\x34\xc5\xe8\xd4\x14\xce\x21\x08\x79\x61\x75\x6a\x46\xbb\xb7\x6d\xf1\x64\x42\x45\xa2\xad\x59\xcf\xc5\x8b\x2f\xf1\xf2\x26\x5e\x7e\x8b\xfd\xf5\xcf\x4f\x57\x3f\xbe\x5e\xc5\xfe\x63\xbc\xb8\x8e\xfd\xf7\xd8\xdf\xc4\xfe\xf3\xe6\xe9\xda\x2a\x7d\xae\x79\x88\x38\xa7\x2a\xf0\x50\xef\x76\x93\xf9\x6d\x3b\x29\x9c\x3b\xa0\x9a\xbb\x0e\x0d\x85\x5b\x21\xac\x82\x36\x25\x64\xa9\x03\x16\xb6\xae\xc9\x28\x9c\xb5\xed\x64\x6f\x7d\xdf\x75\x67\x5b\x95\x9f\x0e\xfd\x80\x7d\x8e\xfe\x7f\x3e\xc5\x71\x60\x8c\x37\x69\x63\x88\x85\x90\x2f\x59\x60\xb8\x81\xf5\xe5\x16\xf1\x47\x30\xb2\x0d\x01\x9c\x68\x6e\x40\x55\x65\x1b\x7a\x53\x31\xde\xae\xac\x50\x40\xa3\x65\x89\xf1\xde\xfc\xf5\x41\xf1\x6c\xf6\xa7\x38\x4e\x4a\x3e\x16\x93\xed\x39\xac\x7e\xc2\x3e\x68\x6b\x0e\x97\xd6\xcb\xb0\xff\xf0\x92\x36\xea\xfb\xd6\x94\xbf\xcb\x9e\x41\x55\xb0\xa0\xc5\x82\x9d\xb0\x9a\x24\xb5\x9f\x88\x9a\xbd\x45\x31\x00\x14\x57\x2c\x0c\x32\x1f\x50\x93\x73\xac\xe0\xed\x4a\x38\x24\x2d\x33\x4f\xe5\x5b\xdc\xff\x11\x94\xe5\x00\x63\x05\xfc\x5e\x07\x49\x3f\xae\xfc\x83\xd9\x2e\xf3\x59\x71\x74\xfc\x62\x86\xf9\x7e\xf1\xdf\x61\x32\x38\x31\x95\x9d\x32\xe8\x26\xe1\x77\x9b\xd9\x4c\x72\x1a\x6c\x94\xb3\xda\xc8\x34\x09\x4f\x4c\x3d\x28\xe5\xdd\xfa\x4b\xdc\x1e\xf2\xf7\x50\x76\x86\xf5\x65\x9a\x7d\xb7\x99\xcd\x0c\x8e\x16\x3c\xcd\xb2\xdf\x36\x9a\x9d\xb7\x0a\xec\xd3\x11\xf7\xba\xff\xa4\xee\xbc\xfa\x15\x00\x00\xff\xff\x04\xa3\x79\xe1\x12\x07\x00\x00")

func resourcesJaJpAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesJaJpAllJson,
		"resources/ja-jp.all.json",
	)
}

func resourcesJaJpAllJson() (*asset, error) {
	bytes, err := resourcesJaJpAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/ja-jp.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesKoKrAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\xbd\x6e\x13\x41\x10\xc7\xfb\x3c\xc5\x5f\x6e\xdc\x44\x7e\x00\x77\xa7\xc8\x46\x48\x21\x42\xe4\xa3\x21\x88\x0c\xde\xc9\x79\xa5\xbb\x9d\x65\x77\xcc\x81\x4e\xf7\x04\x34\x50\xd0\x21\x6a\x5a\x9e\x0b\x3f\x04\x5a\x4c\x24\x27\x64\x4f\x9b\x28\xcd\xe9\x34\x33\xfb\xfb\xff\xe6\x3e\x5e\x1f\x00\xe8\xd3\x05\xc0\xc4\x9a\xc9\x1c\x93\x4b\x57\x79\x8f\xa8\x14\x94\xcd\xa5\x9b\x1c\xde\xb4\x35\x90\x8b\x0d\xa9\x15\xb7\x9b\xdb\x7e\xfb\x85\xed\xe7\xef\xdb\x1f\x5f\x7f\x7f\xf9\xb9\x3f\xd9\x8a\xb1\xd7\x96\x13\xee\x9a\x9a\xc8\xa9\x3e\x1c\x66\xb3\xfa\x7e\x56\x79\x7f\x42\x2d\x0f\x03\x3a\x8a\x37\xe1\xd8\x44\xeb\x6a\xe8\xda\x46\xac\xa4\x6d\xc9\x19\x5c\xf5\xfd\xec\x68\x77\x3f\x0c\x57\xa3\x7a\x4f\x87\x7e\xc0\x3e\x67\xcf\x5f\xce\x71\x1e\x19\xd3\x7d\xda\x14\x2a\x50\x0a\x35\x2b\x1c\x77\x90\x50\x8f\x88\x3f\x82\x51\x6c\x08\xe0\xc2\x72\x07\x6a\x1a\xe9\xe8\x5d\xc3\x78\xbf\x11\xa5\x88\xce\xea\x1a\xd3\xa3\xe5\xdb\x93\xea\xc5\xe2\x5f\x71\x9a\x95\x7c\x2c\xa6\xd8\x33\xad\x7e\xc1\x21\x5a\x71\xa7\x6b\x09\x9a\xf6\x4f\x2f\x69\xaf\x7e\x2c\xae\xfe\x5b\x0e\x0c\x6a\xa2\x80\x56\x2b\xf6\xca\x66\x96\xd5\x7e\x22\x6a\xf1\x16\x55\x02\x18\x6e\x58\x19\xe4\x3e\xa1\x25\xef\xd9\x20\xc8\x46\x39\x66\x2d\x0b\x4f\x95\x5b\xdc\xfd\x11\x8c\x70\x84\x13\x05\x7f\xb4\x51\xf3\x8f\xab\xfc\x60\xb1\xcb\x72\x51\x9d\x9d\xbf\x5a\x60\x79\x5c\x3d\x3b\xcd\x06\x67\xa6\x8a\x53\x92\x6e\x16\x7e\xbb\x59\xcc\x24\x6f\xc1\xce\x78\xb1\x4e\xe7\x59\x78\x66\xea\x41\x29\x1f\x76\x5f\xe2\x78\xc8\xff\x43\xc5\x19\x12\xea\x3c\xfb\x76\xb3\x98\x19\x3d\xad\x78\x5e\x64\x3f\x36\x5a\x9c\xb7\x89\x1c\xf2\x11\x77\xba\xf7\x52\x0f\xde\xfc\x09\x00\x00\xff\xff\xc9\xe7\x7a\x82\xfe\x06\x00\x00")

func resourcesKoKrAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesKoKrAllJson,
		"resources/ko-kr.all.json",
	)
}

func resourcesKoKrAllJson() (*asset, error) {
	bytes, err := resourcesKoKrAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/ko-kr.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesPtBrAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\x4d\x6f\xd4\x30\x10\x86\xef\xfd\x15\xaf\xf6\x92\x4b\xb5\x3f\x20\xb7\xa8\xda\x45\x48\xa5\x42\xf4\xe3\x42\x11\x1d\xe2\x69\xd6\x52\xe2\x31\xf6\x84\x80\xa2\xfc\x77\x64\x4a\xc5\xb6\xe0\xc5\xad\xf6\x12\x45\x33\xe3\xe7\x7d\x26\x1f\x1f\x4f\x00\xcc\xe9\x02\x60\x65\xcd\xaa\xc6\xea\xd6\x35\xde\x23\x2a\x05\x65\x73\xeb\x56\xa7\x8f\x6d\x0d\xe4\x62\x4f\x6a\xc5\xfd\x99\xb3\xce\xb6\x96\x8c\xec\x0f\x0e\x62\xec\xbd\xe5\x44\xbb\xa7\x3e\x72\xaa\x2f\xa7\xd9\xa8\x79\x5e\x37\xde\x5f\xd0\xc0\xcb\x82\x89\xe2\x63\x36\xc6\x68\x5d\x07\xdd\xd9\x88\x56\x86\x81\x9c\xc1\xdd\x3c\xaf\xcf\x1e\xee\x97\xe5\xee\xbf\x76\xc7\x41\xbf\x60\x9f\xab\xb7\xef\x6b\x5c\x47\x46\xb5\x4f\xab\xa0\x02\xa5\xd0\xb1\xc2\xf1\x04\x09\xdd\x01\xf1\x57\x30\x8a\x0d\x01\xdc\x58\x9e\x40\x7d\x2f\x13\x7d\xe9\x19\x5f\x47\x51\x8a\x98\xac\xee\x50\x9d\x6d\x3f\x5f\x34\xef\x36\xbf\x8b\x55\x56\xf2\xb5\x98\x62\xcf\xb4\xfa\x0d\x87\x68\xc5\x5d\xee\x24\x68\xda\x3f\xbd\xa4\xbd\xfa\xb9\xb8\xee\x57\x39\x30\xa8\x8f\x02\x6a\x5b\xf6\xca\x66\x9d\xd5\x3e\x12\xb5\x78\x8b\x26\x01\x0c\xf7\xac\x0c\x72\x3f\x30\x90\xf7\x6c\x10\x64\x54\x8e\x59\xcb\xc2\x53\xe5\x16\xcf\x7f\x04\x23\x1c\xe1\x44\xc1\xdf\x6d\xd4\xfc\xe3\x2a\x3f\x58\xec\xb2\xdd\x34\x57\xd7\x1f\x36\xd8\x9e\x37\x6f\x2e\xb3\xc1\x99\xa9\xe2\x94\xa4\x9b\x85\x3f\x6d\x16\x33\xc9\x5b\xb0\x33\x5e\xac\xd3\x3a\x0b\xcf\x4c\xbd\x28\xe5\xdb\xc3\x97\x78\x38\xe4\xef\xa1\xe2\x0c\x09\x5d\x9e\xfd\xb4\x59\xcc\x8c\x9e\x5a\xae\x8b\xec\x0f\x8d\x16\xe7\x8d\x91\x43\x3e\xe2\x59\xf7\x9f\xd4\x93\x4f\x3f\x03\x00\x00\xff\xff\xbc\x94\x72\xe2\xfd\x06\x00\x00")

func resourcesPtBrAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesPtBrAllJson,
		"resources/pt-br.all.json",
	)
}

func resourcesPtBrAllJson() (*asset, error) {
	bytes, err := resourcesPtBrAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/pt-br.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesZhHansAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\xcd\x6a\xdb\x40\x10\xc7\xef\x79\x8a\x3f\xbe\xf8\x12\xfc\x00\xbe\x89\x60\x97\x42\x1a\x4a\xf3\x71\x69\x4a\x33\xf5\x4e\xe4\x05\x69\x67\xbb\x3b\xae\x5a\x84\x5e\xa0\x3d\xb4\x87\x3c\x84\x6f\x85\x5e\x0a\x79\x1f\x91\xd7\x28\xaa\x1b\x70\xd2\xac\xd9\x84\x5c\x84\x98\x99\xfd\xfd\x7f\xa3\x8f\xb7\x7b\x00\xda\xe1\x02\x60\x64\xcd\x68\x8a\xd1\xb9\x2b\xbc\x47\x54\x0a\xca\xe6\xdc\x8d\xf6\x6f\xdb\x1a\xc8\xc5\x8a\xd4\x8a\xdb\xcc\xf5\xd7\x57\x37\x57\xeb\x9b\xf5\xb7\xfe\xfa\x7b\xff\xfb\x57\xff\xe3\x67\xff\x75\xbd\x7d\xa2\x16\x63\x2f\x2d\x0f\xd8\x4b\xaa\x22\x0f\xf5\x6e\x3f\x99\xd9\xb6\x93\xc2\xfb\x23\xaa\xb9\xeb\xd0\x50\xbc\x95\xc0\x2a\x5a\x57\x42\x97\x36\x62\x21\x75\x4d\xce\xe0\xa2\x6d\x27\x07\x9b\xfb\xae\xbb\xd8\xa9\xf9\x7c\xe8\x47\xec\x73\xf2\xf2\xf5\x14\xa7\x91\x31\xde\xa6\x8d\xa1\x02\xa5\x50\xb2\xc2\x71\x03\x09\xe5\x0e\xf1\x27\x30\xb2\x0d\x01\x9c\x59\x6e\x40\x55\x25\x0d\x7d\xa8\x18\x1f\x57\xa2\x14\xd1\x58\x5d\x62\x7c\x30\x7f\x7f\x54\xbc\x9a\xfd\x2b\x8e\x93\x92\x4f\xc5\x64\x7b\x0e\xab\x9f\x71\x88\x56\xdc\xf1\x52\x82\x0e\xfb\x0f\x2f\x69\xab\x7e\x28\xae\xfc\x5b\x0e\x0c\xaa\xa2\x80\x16\x0b\xf6\xca\x66\x92\xd4\x7e\x26\x6a\xf6\x16\xc5\x00\x30\x5c\xb1\x32\xc8\x7d\x41\x4d\xde\xb3\x41\x90\x95\x72\x4c\x5a\x66\x9e\xca\xb7\xb8\xff\x23\x18\xe1\x08\x27\x0a\xfe\x6c\xa3\xa6\x1f\x57\xfe\xc1\x6c\x97\xf9\xac\x38\x39\x7d\x33\xc3\xfc\xb0\x78\x71\x9c\x0c\x4e\x4c\x65\xa7\x0c\xba\x49\xf8\xdd\x66\x36\x93\xbc\x05\x3b\xe3\xc5\x3a\x9d\x26\xe1\x89\xa9\x47\xa5\x7c\xda\x7c\x89\xbb\x43\xfe\x1f\xca\xce\x90\x50\xa6\xd9\x77\x9b\xd9\xcc\xe8\x69\xc1\xd3\x2c\xfb\x5d\xa3\xd9\x79\xab\xc8\x21\x1d\x71\xaf\xfb\x20\x75\xef\xdd\x9f\x00\x00\x00\xff\xff\x0c\xe7\xa4\xba\x06\x07\x00\x00")

func resourcesZhHansAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesZhHansAllJson,
		"resources/zh-hans.all.json",
	)
}

func resourcesZhHansAllJson() (*asset, error) {
	bytes, err := resourcesZhHansAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/zh-hans.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _resourcesZhHantAllJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x93\xbd\x6e\x13\x41\x10\xc7\xfb\x3c\xc5\x5f\x6e\xdc\x44\x7e\x00\x77\xa7\xc8\x46\x48\x21\x42\xe4\xa3\x21\x88\x0c\xde\xc9\x79\xa5\xbb\x9d\x65\x77\xcc\x81\x4e\x57\x23\x94\x82\x86\xd4\xb4\xa9\x69\x68\x78\x1d\x93\xd7\x40\x87\x89\xe4\x84\xec\x69\x13\xa5\x39\x9d\x66\x66\x7f\xff\xdf\xdc\xc7\xeb\x1d\x00\x6d\x7f\x01\x30\xb2\x66\x34\xc5\xe8\xd4\x15\xde\x23\x2a\x05\x65\x73\xea\x46\xbb\x37\x6d\x0d\xe4\x62\x45\x6a\xc5\x6d\xe6\xd6\x3f\x7f\xac\x2f\xbf\xaf\x2f\x2e\x7f\x7f\xfe\x72\xfd\xed\xea\xfa\xea\x62\xfd\xeb\xeb\xf6\x89\x5a\x8c\x3d\xb7\xdc\x63\xcf\xa9\x8a\xdc\xd7\xbb\xdd\x64\x66\xdb\x4e\x0a\xef\x0f\xa8\xe6\xae\x43\x43\xf1\x46\x02\xab\x68\x5d\x09\x5d\xda\x88\x85\xd4\x35\x39\x83\xb3\xb6\x9d\xec\x6d\xee\xbb\xee\x6c\x50\xf3\xe9\xd0\x0f\xd8\xe7\xe8\xf9\xcb\x29\x8e\x23\x63\xbc\x4d\x1b\x43\x05\x4a\xa1\x64\x85\xe3\x06\x12\xca\x01\xf1\x47\x30\xb2\x0d\x01\x9c\x58\x6e\x40\x55\x25\x0d\xbd\xab\x18\xef\x57\xa2\x14\xd1\x58\x5d\x62\xbc\x37\x7f\x7b\x50\xbc\x98\xfd\x2b\x8e\x93\x92\x8f\xc5\x64\x7b\xf6\xab\x9f\x70\x88\x56\xdc\xe1\x52\x82\xf6\xfb\xf7\x2f\x69\xab\xbe\x2f\xae\xfc\x5b\x0e\x0c\xaa\xa2\x80\x16\x0b\xf6\xca\x66\x92\xd4\x7e\x22\x6a\xf6\x16\x45\x0f\x30\x5c\xb1\x32\xc8\x7d\x42\x4d\xde\xb3\x41\x90\x95\x72\x4c\x5a\x66\x9e\xca\xb7\xb8\xfb\x23\x18\xe1\x08\x27\x0a\xfe\x68\xa3\xa6\x1f\x57\xfe\xc1\x6c\x97\xf9\xac\x38\x3a\x7e\x35\xc3\x7c\xbf\x78\x76\x98\x0c\x4e\x4c\x65\xa7\xf4\xba\x49\xf8\xed\x66\x36\x93\xbc\x05\x3b\xe3\xc5\x3a\x9d\x26\xe1\x89\xa9\x07\xa5\x7c\xd8\x7c\x89\xc3\x21\xff\x0f\x65\x67\x48\x28\xd3\xec\xdb\xcd\x6c\x66\xf4\xb4\xe0\x69\x96\xfd\xd0\x68\x76\xde\x2a\x72\x48\x47\xdc\xe9\xde\x4b\xdd\x79\xf3\x27\x00\x00\xff\xff\xa1\x62\x3d\xd9\x06\x07\x00\x00")

func resourcesZhHantAllJsonBytes() ([]byte, error) {
	return bindataRead(
		_resourcesZhHantAllJson,
		"resources/zh-hant.all.json",
	)
}

func resourcesZhHantAllJson() (*asset, error) {
	bytes, err := resourcesZhHantAllJsonBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "resources/zh-hant.all.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
		}
		return a.bytes, nil
	}
	return nil, fmt.Errorf("Asset %s not found", name)
}

// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
	a, err := Asset(name)
	if err != nil {
		panic("asset: Asset(" + name + "): " + err.Error())
	}

	return a
}

// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	if f, ok := _bindata[canonicalName]; ok {
		a, err := f()
		if err != nil {
			return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
		}
		return a.info, nil
	}
	return nil, fmt.Errorf("AssetInfo %s not found", name)
}

// AssetNames returns the names of the assets.
func AssetNames() []string {
	names := make([]string, 0, len(_bindata))
	for name := range _bindata {
		names = append(names, name)
	}
	return names
}

// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
	"resources/de-de.all.json":   resourcesDeDeAllJson,
	"resources/en-us.all.json":   resourcesEnUsAllJson,
	"resources/es-es.all.json":   resourcesEsEsAllJson,
	"resources/fr-fr.all.json":   resourcesFrFrAllJson,
	"resources/it-it.all.json":   resourcesItItAllJson,
	"resources/ja-jp.all.json":   resourcesJaJpAllJson,
	"resources/ko-kr.all.json":   resourcesKoKrAllJson,
	"resources/pt-br.all.json":   resourcesPtBrAllJson,
	"resources/zh-hans.all.json": resourcesZhHansAllJson,
	"resources/zh-hant.all.json": resourcesZhHantAllJson,
}

// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
//
//	data/
//	  foo.txt
//	  img/
//	    a.png
//	    b.png
//
// then AssetDir("data") would return []string{"foo.txt", "img"}
// AssetDir("data/img") would return []string{"a.png", "b.png"}
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
	node := _bintree
	if len(name) != 0 {
		canonicalName := strings.Replace(name, "\\", "/", -1)
		pathList := strings.Split(canonicalName, "/")
		for _, p := range pathList {
			node = node.Children[p]
			if node == nil {
				return nil, fmt.Errorf("Asset %s not found", name)
			}
		}
	}
	if node.Func != nil {
		return nil, fmt.Errorf("Asset %s not found", name)
	}
	rv := make([]string, 0, len(node.Children))
	for childName := range node.Children {
		rv = append(rv, childName)
	}
	return rv, nil
}

type bintree struct {
	Func     func() (*asset, error)
	Children map[string]*bintree
}

var _bintree = &bintree{nil, map[string]*bintree{
	"resources": &bintree{nil, map[string]*bintree{
		"de-de.all.json":   &bintree{resourcesDeDeAllJson, map[string]*bintree{}},
		"en-us.all.json":   &bintree{resourcesEnUsAllJson, map[string]*bintree{}},
		"es-es.all.json":   &bintree{resourcesEsEsAllJson, map[string]*bintree{}},
		"fr-fr.all.json":   &bintree{resourcesFrFrAllJson, map[string]*bintree{}},
		"it-it.all.json":   &bintree{resourcesItItAllJson, map[string]*bintree{}},
		"ja-jp.all.json":   &bintree{resourcesJaJpAllJson, map[string]*bintree{}},
		"ko-kr.all.json":   &bintree{resourcesKoKrAllJson, map[string]*bintree{}},
		"pt-br.all.json":   &bintree{resourcesPtBrAllJson, map[string]*bintree{}},
		"zh-hans.all.json": &bintree{resourcesZhHansAllJson, map[string]*bintree{}},
		"zh-hant.all.json": &bintree{resourcesZhHantAllJson, map[string]*bintree{}},
	}},
}}

// RestoreAsset restores an asset under the given directory
func RestoreAsset(dir, name string) error {
	data, err := Asset(name)
	if err != nil {
		return err
	}
	info, err := AssetInfo(name)
	if err != nil {
		return err
	}
	err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
	if err != nil {
		return err
	}
	err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
	if err != nil {
		return err
	}
	err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
	if err != nil {
		return err
	}
	return nil
}

// RestoreAssets restores an asset under the given directory recursively
func RestoreAssets(dir, name string) error {
	children, err := AssetDir(name)
	// File
	if err != nil {
		return RestoreAsset(dir, name)
	}
	// Dir
	for _, child := range children {
		err = RestoreAssets(dir, filepath.Join(name, child))
		if err != nil {
			return err
		}
	}
	return nil
}

func _filePath(dir, name string) string {
	canonicalName := strings.Replace(name, "\\", "/", -1)
	return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}
